populateRequesterPaysHeader(request, isRequesterPays);
request.addHeader(Headers.S3_CANNED_ACL, cannedAcl.toString()); if (versionId != null) request.addParameter("versionId", versionId); populateRequesterPaysHeader(request, isRequesterPays);
private Request<RestoreObjectRequest> createRestoreObjectRequest(RestoreObjectRequest restoreObjectRequest) { String bucketName = restoreObjectRequest.getBucketName(); String key = restoreObjectRequest.getKey(); String versionId = restoreObjectRequest.getVersionId(); Request<RestoreObjectRequest> request = createRequest( bucketName, key, restoreObjectRequest, HttpMethodName.POST); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RestoreObject"); request.addParameter("restore", null); if (versionId != null) { request.addParameter("versionId", versionId); } populateRequesterPaysHeader(request, restoreObjectRequest.isRequesterPays()); byte[] content = RequestXmlFactory.convertToXmlByteArray(restoreObjectRequest); setContent(request, content, "application/xml", true); return request; }
request.addParameter("versionId", versionId); populateRequesterPaysHeader(request, isRequesterPays);
@Override public GetObjectLegalHoldResult getObjectLegalHold(GetObjectLegalHoldRequest getObjectLegalHoldRequest) { getObjectLegalHoldRequest = beforeClientExecution(getObjectLegalHoldRequest); rejectNull(getObjectLegalHoldRequest, "The request parameter must be specified"); String bucketName = getObjectLegalHoldRequest.getBucketName(); String key = getObjectLegalHoldRequest.getKey(); rejectNull(bucketName, "The bucket name parameter must be specified when getting the object legal hold."); rejectNull(key, "The key parameter must be specified when getting the object legal hold."); Request<GetObjectLegalHoldRequest> request = createRequest(bucketName, key, getObjectLegalHoldRequest, HttpMethodName.GET); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetObjectLegalHold"); request.addParameter("legal-hold", null); addParameterIfNotNull(request, "versionId", getObjectLegalHoldRequest.getVersionId()); populateRequesterPaysHeader(request, getObjectLegalHoldRequest.isRequesterPays()); return invoke(request, new Unmarshallers.GetObjectLegalHoldResultUnmarshaller(), bucketName, key); }
@Override public GetObjectRetentionResult getObjectRetention(GetObjectRetentionRequest getObjectRetentionRequest) { getObjectRetentionRequest = beforeClientExecution(getObjectRetentionRequest); rejectNull(getObjectRetentionRequest, "The request parameter must be specified"); String bucketName = getObjectRetentionRequest.getBucketName(); String key = getObjectRetentionRequest.getKey(); rejectNull(bucketName, "The bucket name parameter must be specified when getting the object retention."); rejectNull(key, "The key parameter must be specified when getting the object retention."); Request<GetObjectRetentionRequest> request = createRequest(bucketName, key, getObjectRetentionRequest, HttpMethodName.GET); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetObjectRetention"); request.addParameter("retention", null); addParameterIfNotNull(request, "versionId", getObjectRetentionRequest.getVersionId()); // Note: the model has a requester pays member on the request but no requester charged on the result... populateRequesterPaysHeader(request, getObjectRetentionRequest.isRequesterPays()); return invoke(request, new Unmarshallers.GetObjectRetentionResultUnmarshaller(), bucketName, key); }
@Override public ObjectListing listObjects(ListObjectsRequest listObjectsRequest) throws SdkClientException, AmazonServiceException { listObjectsRequest = beforeClientExecution(listObjectsRequest); rejectNull(listObjectsRequest.getBucketName(), "The bucket name parameter must be specified when listing objects in a bucket"); /** * This flag shows whether we need to url decode S3 key names. This flag is enabled * only when the customers don't explicitly call {@link ListObjectsRequest#setEncodingType(String)}, * otherwise, it will be disabled for maintaining backwards compatibility. */ final boolean shouldSDKDecodeResponse = listObjectsRequest.getEncodingType() == null; Request<ListObjectsRequest> request = createRequest(listObjectsRequest.getBucketName(), null, listObjectsRequest, HttpMethodName.GET); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListObjects"); addParameterIfNotNull(request, "prefix", listObjectsRequest.getPrefix()); addParameterIfNotNull(request, "marker", listObjectsRequest.getMarker()); addParameterIfNotNull(request, "delimiter", listObjectsRequest.getDelimiter()); if (listObjectsRequest.getMaxKeys() != null && listObjectsRequest.getMaxKeys().intValue() >= 0) request.addParameter("max-keys", listObjectsRequest.getMaxKeys().toString()); request.addParameter("encoding-type", shouldSDKDecodeResponse ? Constants.URL_ENCODING : listObjectsRequest.getEncodingType()); populateRequesterPaysHeader(request, listObjectsRequest.isRequesterPays()); return invoke(request, new Unmarshallers.ListObjectsUnmarshaller(shouldSDKDecodeResponse), listObjectsRequest.getBucketName(), null); }
@Override public void abortMultipartUpload(AbortMultipartUploadRequest abortMultipartUploadRequest) throws SdkClientException, AmazonServiceException { abortMultipartUploadRequest = beforeClientExecution(abortMultipartUploadRequest); rejectNull(abortMultipartUploadRequest, "The request parameter must be specified when aborting a multipart upload"); rejectNull(abortMultipartUploadRequest.getBucketName(), "The bucket name parameter must be specified when aborting a multipart upload"); rejectNull(abortMultipartUploadRequest.getKey(), "The key parameter must be specified when aborting a multipart upload"); rejectNull(abortMultipartUploadRequest.getUploadId(), "The upload ID parameter must be specified when aborting a multipart upload"); String bucketName = abortMultipartUploadRequest.getBucketName(); String key = abortMultipartUploadRequest.getKey(); Request<AbortMultipartUploadRequest> request = createRequest(bucketName, key, abortMultipartUploadRequest, HttpMethodName.DELETE); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AbortMultipartUpload"); request.addParameter("uploadId", abortMultipartUploadRequest.getUploadId()); populateRequesterPaysHeader(request, abortMultipartUploadRequest.isRequesterPays()); invoke(request, voidResponseHandler, bucketName, key); }
@Override public ObjectMetadata getObjectMetadata(GetObjectMetadataRequest getObjectMetadataRequest) throws SdkClientException, AmazonServiceException { getObjectMetadataRequest = beforeClientExecution(getObjectMetadataRequest); rejectNull(getObjectMetadataRequest, "The GetObjectMetadataRequest parameter must be specified when requesting an object's metadata"); String bucketName = getObjectMetadataRequest.getBucketName(); String key = getObjectMetadataRequest.getKey(); String versionId = getObjectMetadataRequest.getVersionId(); rejectNull(bucketName, "The bucket name parameter must be specified when requesting an object's metadata"); rejectNull(key, "The key parameter must be specified when requesting an object's metadata"); Request<GetObjectMetadataRequest> request = createRequest(bucketName, key, getObjectMetadataRequest, HttpMethodName.HEAD); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "HeadObject"); if (versionId != null) request.addParameter("versionId", versionId); populateRequesterPaysHeader(request, getObjectMetadataRequest.isRequesterPays()); addPartNumberIfNotNull(request, getObjectMetadataRequest.getPartNumber()); populateSSE_C(request, getObjectMetadataRequest.getSSECustomerKey()); return invoke(request, new S3MetadataResponseHandler(), bucketName, key); }
populateRequesterPaysHeader(request, deleteObjectsRequest.isRequesterPays());
@Override public ListObjectsV2Result listObjectsV2(ListObjectsV2Request listObjectsV2Request) throws SdkClientException, AmazonServiceException { listObjectsV2Request = beforeClientExecution(listObjectsV2Request); rejectNull(listObjectsV2Request.getBucketName(), "The bucket name parameter must be specified when listing objects in a bucket"); Request<ListObjectsV2Request> request = createRequest(listObjectsV2Request.getBucketName(), null, listObjectsV2Request, HttpMethodName.GET); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListObjectsV2"); /** * List type '2' is required to opt-in to listObjectsV2. */ request.addParameter("list-type", "2"); addParameterIfNotNull(request, "start-after", listObjectsV2Request.getStartAfter()); addParameterIfNotNull(request, "continuation-token", listObjectsV2Request.getContinuationToken()); addParameterIfNotNull(request, "delimiter", listObjectsV2Request.getDelimiter()); addParameterIfNotNull(request, "max-keys", listObjectsV2Request.getMaxKeys()); addParameterIfNotNull(request, "prefix", listObjectsV2Request.getPrefix()); addParameterIfNotNull(request, "encoding-type", listObjectsV2Request.getEncodingType()); request.addParameter("fetch-owner", Boolean.toString(listObjectsV2Request.isFetchOwner())); populateRequesterPaysHeader(request, listObjectsV2Request.isRequesterPays()); /** * If URL encoding has been requested from S3 we'll automatically decode the response. */ final boolean shouldSDKDecodeResponse = Constants.URL_ENCODING.equals(listObjectsV2Request.getEncodingType()); return invoke(request, new Unmarshallers.ListObjectsV2Unmarshaller(shouldSDKDecodeResponse), listObjectsV2Request.getBucketName(), null); }
request.addHeader(Headers.CONTENT_LENGTH, Long.toString(partSize)); populateRequesterPaysHeader(request, uploadPartRequest.isRequesterPays());
@Override public SetObjectLockConfigurationResult setObjectLockConfiguration(SetObjectLockConfigurationRequest setObjectLockConfigurationRequest) { setObjectLockConfigurationRequest = beforeClientExecution(setObjectLockConfigurationRequest); rejectNull(setObjectLockConfigurationRequest, "The request parameter must be specified"); String bucketName = setObjectLockConfigurationRequest.getBucketName(); rejectNull(bucketName, "The bucket name parameter must be specified when setting the object lock configuration"); Request<SetObjectLockConfigurationRequest> request = createRequest(bucketName, null, setObjectLockConfigurationRequest, HttpMethodName.PUT); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutObjectLockConfiguration"); request.addParameter("object-lock", null); addHeaderIfNotNull(request, Headers.OBJECT_LOCK_TOKEN, setObjectLockConfigurationRequest.getToken()); populateRequesterPaysHeader(request, setObjectLockConfigurationRequest.isRequesterPays()); setContent(request, new ObjectLockConfigurationXmlFactory().convertToXmlByteArray(setObjectLockConfigurationRequest.getObjectLockConfiguration()), ContentType.APPLICATION_XML.toString(), true); ResponseHeaderHandlerChain<SetObjectLockConfigurationResult> responseHandler = new ResponseHeaderHandlerChain<SetObjectLockConfigurationResult>( new Unmarshallers.SetObjectLockConfigurationResultUnmarshaller(), new S3RequesterChargedHeaderHandler<SetObjectLockConfigurationResult>()); return invoke(request, responseHandler, bucketName, null); }
@Override public SetObjectLegalHoldResult setObjectLegalHold(SetObjectLegalHoldRequest setObjectLegalHoldRequest) { setObjectLegalHoldRequest = beforeClientExecution(setObjectLegalHoldRequest); rejectNull(setObjectLegalHoldRequest, "The request parameter must be specified"); String bucketName = setObjectLegalHoldRequest.getBucketName(); String key = setObjectLegalHoldRequest.getKey(); rejectNull(bucketName, "The bucket name parameter must be specified when setting the object legal hold."); rejectNull(key, "The key parameter must be specified when setting the object legal hold."); Request<SetObjectLegalHoldRequest> request = createRequest(bucketName, key, setObjectLegalHoldRequest, HttpMethodName.PUT); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutObjectLegalHold"); setContent(request, new ObjectLockLegalHoldXmlFactory().convertToXmlByteArray(setObjectLegalHoldRequest.getLegalHold()), ContentType.APPLICATION_XML.toString(), true); request.addParameter("legal-hold", null); addParameterIfNotNull(request, "versionId", setObjectLegalHoldRequest.getVersionId()); populateRequesterPaysHeader(request, setObjectLegalHoldRequest.isRequesterPays()); ResponseHeaderHandlerChain<SetObjectLegalHoldResult> responseHandler = new ResponseHeaderHandlerChain<SetObjectLegalHoldResult>( new Unmarshallers.SetObjectLegalHoldResultUnmarshaller(), new S3RequesterChargedHeaderHandler<SetObjectLegalHoldResult>()); return invoke(request, responseHandler, bucketName, key); }
@Override public PartListing listParts(ListPartsRequest listPartsRequest) throws SdkClientException, AmazonServiceException { listPartsRequest = beforeClientExecution(listPartsRequest); rejectNull(listPartsRequest, "The request parameter must be specified when listing parts"); rejectNull(listPartsRequest.getBucketName(), "The bucket name parameter must be specified when listing parts"); rejectNull(listPartsRequest.getKey(), "The key parameter must be specified when listing parts"); rejectNull(listPartsRequest.getUploadId(), "The upload ID parameter must be specified when listing parts"); Request<ListPartsRequest> request = createRequest(listPartsRequest.getBucketName(), listPartsRequest.getKey(), listPartsRequest, HttpMethodName.GET); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListParts"); request.addParameter("uploadId", listPartsRequest.getUploadId()); if (listPartsRequest.getMaxParts() != null) request.addParameter("max-parts", listPartsRequest.getMaxParts().toString()); if (listPartsRequest.getPartNumberMarker() != null) request.addParameter("part-number-marker", listPartsRequest.getPartNumberMarker().toString()); if (listPartsRequest.getEncodingType() != null) request.addParameter("encoding-type", listPartsRequest.getEncodingType()); populateRequesterPaysHeader(request, listPartsRequest.isRequesterPays()); @SuppressWarnings("unchecked") ResponseHeaderHandlerChain<PartListing> responseHandler = new ResponseHeaderHandlerChain<PartListing>( // xml payload unmarshaller new Unmarshallers.ListPartsResultUnmarshaller(), // header handler new S3RequesterChargedHeaderHandler<PartListing>(), new ListPartsHeaderHandler()); return invoke(request, responseHandler, listPartsRequest.getBucketName(), listPartsRequest.getKey()); }
@Override public SetObjectRetentionResult setObjectRetention(SetObjectRetentionRequest setObjectRetentionRequest) { setObjectRetentionRequest = beforeClientExecution(setObjectRetentionRequest); rejectNull(setObjectRetentionRequest, "The request parameter must be specified"); String bucketName = setObjectRetentionRequest.getBucketName(); String key = setObjectRetentionRequest.getKey(); rejectNull(bucketName, "The bucket name parameter must be specified when setting the object retention."); rejectNull(key, "The key parameter must be specified when setting the object retention."); Request<SetObjectRetentionRequest> request = createRequest(bucketName, key, setObjectRetentionRequest, HttpMethodName.PUT); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutObjectRetention"); request.addParameter("retention", null); if (setObjectRetentionRequest.getBypassGovernanceRetention()) { request.addHeader(Headers.BYPASS_GOVERNANCE_RETENTION, "true"); } addParameterIfNotNull(request, "versionId", setObjectRetentionRequest.getVersionId()); populateRequesterPaysHeader(request, setObjectRetentionRequest.isRequesterPays()); setContent(request, new ObjectLockRetentionXmlFactory().convertToXmlByteArray(setObjectRetentionRequest.getRetention()), ContentType.APPLICATION_XML.toString(), true); ResponseHeaderHandlerChain<SetObjectRetentionResult> responseHandler = new ResponseHeaderHandlerChain<SetObjectRetentionResult>( new Unmarshallers.SetObjectRetentionResultUnmarshaller(), new S3RequesterChargedHeaderHandler<SetObjectRetentionResult>()); return invoke(request, responseHandler, bucketName, key); }
request.addParameter("uploadId", uploadId); populateRequesterPaysHeader(request, completeMultipartUploadRequest.isRequesterPays());
populateRequesterPaysHeader(request, getObjectRequest.isRequesterPays());
populateRequesterPaysHeader(request, initiateMultipartUploadRequest.isRequesterPays());
populateRequesterPaysHeader(request, copyObjectRequest.isRequesterPays());