@Override public Map<String, String> getQueryParams() { Map<String, String> queryMap = super.getQueryParams(); if (limit != null) queryMap.put(S3Constants.PARAM_LIMIT, limit.toString()); if (marker != null) queryMap.put(S3Constants.PARAM_MARKER, marker); return queryMap; }
/** * @deprecated (2.0.4) use {@link #getRawQueryString()} instead */ public final String getQueryString() { return getRawQueryString(); }
protected WebResource.Builder buildRequest(Client client, ObjectRequest request) { URI uri = objectConfig.resolvePath(request.getPath(), request.getRawQueryString()); WebResource resource = client.resource(uri); // set properties for (Map.Entry<String, Object> entry : request.getProperties().entrySet()) { resource.setProperty(entry.getKey(), entry.getValue()); } // set namespace String namespace = request.getNamespace() != null ? request.getNamespace() : objectConfig.getNamespace(); if (namespace != null) resource.setProperty(RestUtil.PROPERTY_NAMESPACE, namespace); WebResource.Builder builder = resource.getRequestBuilder(); // set headers for (String name : request.getHeaders().keySet()) { for (Object value : request.getHeaders().get(name)) { builder = builder.header(name, value); } } return builder; }
@SuppressWarnings("unchecked") protected ClientResponse executeRequest(Client client, ObjectRequest request) { try { if (request.getMethod().isRequiresEntity()) { String contentType = RestUtil.DEFAULT_CONTENT_TYPE; Object entity = new byte[0]; request.property(ApacheHttpClient4Config.PROPERTY_ENABLE_BUFFERING, Boolean.TRUE); request.property(ClientConfig.PROPERTY_CHUNKED_ENCODING_SIZE, null); request.property(ApacheHttpClient4Config.PROPERTY_ENABLE_BUFFERING, Boolean.TRUE); String headerContentType = RestUtil.getFirstAsString(request.getHeaders(), RestUtil.HEADER_CONTENT_TYPE); if (headerContentType != null) contentType = headerContentType; return builder.method(request.getMethod().toString(), ClientResponse.class, entity); } else { // non-entity request method throw new UnsupportedOperationException("an entity request is using a non-entity method (" + request.getMethod() + ")"); return builder.method(request.getMethod().toString(), ClientResponse.class);
@Override public MetadataSearchList listSystemMetadataSearchKeys() { ObjectRequest request = new ObjectRequest(Method.GET, "", S3Constants.PARAM_SEARCH_METADATA); return executeRequest(client, request, MetadataSearchList.class); }
@Override public ListDataNode listDataNodes() { return executeRequest(client, new ObjectRequest(Method.GET, "", "endpoint"), ListDataNode.class); }
public final String getRawQueryString() { String paramString = RestUtil.generateRawQueryString(getQueryParams()); String queryString = ""; if (subresource != null) queryString += subresource; if (paramString.length() > 0) queryString += "&" + paramString; if (queryString.startsWith("&")) queryString = queryString.substring(1); return (queryString.length() > 0) ? queryString : null; }