ResponseHeaderHandlerChain<AccessControlList> responseHandler = new ResponseHeaderHandlerChain<AccessControlList>( new Unmarshallers.AccessControlListUnmarshaller(), new S3RequesterChargedHeaderHandler<AccessControlList>());
ResponseHeaderHandlerChain<DeleteObjectsResponse> responseHandler = new ResponseHeaderHandlerChain<DeleteObjectsResponse>( new Unmarshallers.DeleteObjectsResultUnmarshaller(), new S3RequesterChargedHeaderHandler<DeleteObjectsResponse>()); Map<String, String> headers = responseHandler.getResponseHeaders();
new ResponseHeaderHandlerChain<AmazonWebServiceResponse<String>>( new Unmarshaller<AmazonWebServiceResponse<String>, InputStream>() { chain.handle(testResponse); assertEquals(called.size(), 3); assertTrue(called.get(0));
@Override public DeleteObjectTaggingResult deleteObjectTagging(DeleteObjectTaggingRequest deleteObjectTaggingRequest) { deleteObjectTaggingRequest = beforeClientExecution(deleteObjectTaggingRequest); rejectNull(deleteObjectTaggingRequest, "The request parameter must be specified when delete the object tags"); String bucketName = assertStringNotEmpty(deleteObjectTaggingRequest.getBucketName(), "BucketName"); String key = assertStringNotEmpty(deleteObjectTaggingRequest.getKey(), "Key"); Request<DeleteObjectTaggingRequest> request = createRequest(bucketName, key, deleteObjectTaggingRequest, HttpMethodName.DELETE); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteObjectTagging"); request.addParameter("tagging", null); addParameterIfNotNull(request, "versionId", deleteObjectTaggingRequest.getVersionId()); ResponseHeaderHandlerChain<DeleteObjectTaggingResult> handlerChain = new ResponseHeaderHandlerChain<DeleteObjectTaggingResult>( new Unmarshallers.DeleteObjectTaggingResponseUnmarshaller(), new DeleteObjectTaggingHeaderHandler() ); return invoke(request, handlerChain, bucketName, key); }
ResponseHeaderHandlerChain<DeleteObjectsResponse> responseHandler = new ResponseHeaderHandlerChain<DeleteObjectsResponse>( new Unmarshallers.DeleteObjectsResultUnmarshaller(), new S3RequesterChargedHeaderHandler<DeleteObjectsResponse>()); final Map<String, String> headers = responseHandler.getResponseHeaders();
@Override public GetObjectTaggingResult getObjectTagging(GetObjectTaggingRequest getObjectTaggingRequest) { getObjectTaggingRequest = beforeClientExecution(getObjectTaggingRequest); rejectNull(getObjectTaggingRequest, "The request parameter must be specified when getting the object tags"); String bucketName = assertStringNotEmpty(getObjectTaggingRequest.getBucketName(), "BucketName"); String key = assertNotNull(getObjectTaggingRequest.getKey(), "Key"); Request<GetObjectTaggingRequest> request = createRequest(bucketName, key, getObjectTaggingRequest, HttpMethodName.GET); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetObjectTagging"); request.addParameter("tagging", null); addParameterIfNotNull(request, "versionId", getObjectTaggingRequest.getVersionId()); ResponseHeaderHandlerChain<GetObjectTaggingResult> handlerChain = new ResponseHeaderHandlerChain<GetObjectTaggingResult>( new Unmarshallers.GetObjectTaggingResponseUnmarshaller(), new GetObjectTaggingResponseHeaderHandler() ); return invoke(request, handlerChain, bucketName, key); }
ResponseHeaderHandlerChain<DeleteObjectsResponse> responseHandler = new ResponseHeaderHandlerChain<DeleteObjectsResponse>( new Unmarshallers.DeleteObjectsResultUnmarshaller(), new S3RequesterChargedHeaderHandler<DeleteObjectsResponse>()); Map<String, String> headers = responseHandler.getResponseHeaders();
@Override public RestoreObjectResult restoreObjectV2(RestoreObjectRequest restoreObjectRequest) throws AmazonServiceException { restoreObjectRequest = beforeClientExecution(restoreObjectRequest); String bucketName = restoreObjectRequest.getBucketName(); String key = restoreObjectRequest.getKey(); int expirationInDays = restoreObjectRequest.getExpirationInDays(); rejectNull(bucketName, "The bucket name parameter must be specified when restoring a glacier object"); rejectNull(key, "The key parameter must be specified when restoring a glacier object"); if (restoreObjectRequest.getOutputLocation() != null) { rejectNull(restoreObjectRequest.getType(), "The restore request type must be specified with restores that specify OutputLocation"); if (RestoreRequestType.SELECT.toString().equals(restoreObjectRequest.getType())) { rejectNull(restoreObjectRequest.getSelectParameters(), "The select parameters must be specified when restoring a glacier object with SELECT restore request type"); } } else if (expirationInDays == -1) { throw new IllegalArgumentException("The expiration in days parameter must be specified when restoring a glacier object without OutputLocation"); } Request<RestoreObjectRequest> request = createRestoreObjectRequest(restoreObjectRequest); @SuppressWarnings("unchecked") ResponseHeaderHandlerChain<RestoreObjectResult> responseHandler = new ResponseHeaderHandlerChain<RestoreObjectResult>( new Unmarshallers.RestoreObjectResultUnmarshaller(), new S3RequesterChargedHeaderHandler<RestoreObjectResult>(), new S3RestoreOutputPathHeaderHandler<RestoreObjectResult>()); return invoke(request, responseHandler, bucketName, key); }
ResponseHeaderHandlerChain<DeleteObjectsResponse> responseHandler = new ResponseHeaderHandlerChain<DeleteObjectsResponse>( new Unmarshallers.DeleteObjectsResultUnmarshaller(), new S3RequesterChargedHeaderHandler<DeleteObjectsResponse>()); final Map<String, String> headers = responseHandler.getResponseHeaders();
@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 SetObjectTaggingResult setObjectTagging(SetObjectTaggingRequest setObjectTaggingRequest) { setObjectTaggingRequest = beforeClientExecution(setObjectTaggingRequest); rejectNull(setObjectTaggingRequest, "The request parameter must be specified setting the object tags"); String bucketName = assertStringNotEmpty(setObjectTaggingRequest.getBucketName(), "BucketName"); String key = assertNotNull(setObjectTaggingRequest.getKey(), "Key"); ObjectTagging tagging = assertNotNull(setObjectTaggingRequest.getTagging(), "ObjectTagging"); Request<SetObjectTaggingRequest> request = createRequest(bucketName, key, setObjectTaggingRequest, HttpMethodName.PUT); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutObjectTagging"); request.addParameter("tagging", null); addParameterIfNotNull(request, "versionId", setObjectTaggingRequest.getVersionId()); byte[] content = new ObjectTaggingXmlFactory().convertToXmlByteArray(tagging); setContent(request, content, "application/xml", true); ResponseHeaderHandlerChain<SetObjectTaggingResult> handlerChain = new ResponseHeaderHandlerChain<SetObjectTaggingResult>( new Unmarshallers.SetObjectTaggingResponseUnmarshaller(), new SetObjectTaggingResponseHeaderHandler() ); return invoke(request, handlerChain, bucketName, key); }
@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); }
ResponseHeaderHandlerChain<CompleteMultipartUploadHandler> responseHandler = new ResponseHeaderHandlerChain<CompleteMultipartUploadHandler>(
ResponseHeaderHandlerChain<InitiateMultipartUploadResult> responseHandler = new ResponseHeaderHandlerChain<InitiateMultipartUploadResult>(
try { @SuppressWarnings("unchecked") ResponseHeaderHandlerChain<CopyObjectResultHandler> handler = new ResponseHeaderHandlerChain<CopyObjectResultHandler>(
try { @SuppressWarnings("unchecked") ResponseHeaderHandlerChain<CopyObjectResultHandler> handler = new ResponseHeaderHandlerChain<CopyObjectResultHandler>(
@Override public DeleteObjectTaggingResult deleteObjectTagging( DeleteObjectTaggingRequest deleteObjectTaggingRequest) { assertParameterNotNull(deleteObjectTaggingRequest, "The request parameter must be specified when delete the object tags"); final String bucketName = assertStringNotEmpty(deleteObjectTaggingRequest.getBucketName(), "BucketName"); final String key = assertStringNotEmpty(deleteObjectTaggingRequest.getKey(), "Key"); final Request<DeleteObjectTaggingRequest> request = createRequest(bucketName, key, deleteObjectTaggingRequest, HttpMethodName.DELETE); request.addParameter("tagging", null); addParameterIfNotNull(request, "versionId", deleteObjectTaggingRequest.getVersionId()); final ResponseHeaderHandlerChain<DeleteObjectTaggingResult> handlerChain = new ResponseHeaderHandlerChain<DeleteObjectTaggingResult>( new Unmarshallers.DeleteObjectTaggingResponseUnmarshaller(), new DeleteObjectTaggingHeaderHandler()); return invoke(request, handlerChain, bucketName, key); }
@Override public GetObjectTaggingResult getObjectTagging( GetObjectTaggingRequest getObjectTaggingRequest) { assertParameterNotNull(getObjectTaggingRequest, "The request parameter must be specified when getting the object tags"); final String bucketName = assertStringNotEmpty(getObjectTaggingRequest.getBucketName(), "BucketName"); final String key = assertNotNull(getObjectTaggingRequest.getKey(), "Key"); final Request<GetObjectTaggingRequest> request = createRequest(bucketName, key, getObjectTaggingRequest, HttpMethodName.GET); request.addParameter("tagging", null); addParameterIfNotNull(request, "versionId", getObjectTaggingRequest.getVersionId()); final ResponseHeaderHandlerChain<GetObjectTaggingResult> handlerChain = new ResponseHeaderHandlerChain<GetObjectTaggingResult>( new Unmarshallers.GetObjectTaggingResponseUnmarshaller(), new GetObjectTaggingResponseHeaderHandler()); return invoke(request, handlerChain, bucketName, key); }