Search in sources :

Example 1 with MultiObjectDeleteXmlFactory

use of com.amazonaws.services.s3.model.transform.MultiObjectDeleteXmlFactory in project aws-sdk-android by aws-amplify.

the class AmazonS3Client method deleteObjects.

/*
     * (non-Javadoc)
     * @see
     * com.amazonaws.services.s3.AmazonS3#deleteObjects(com.amazonaws.services
     * .s3.model.DeleteObjectsRequest)
     */
@Override
public DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest) {
    final Request<DeleteObjectsRequest> request = createRequest(deleteObjectsRequest.getBucketName(), null, deleteObjectsRequest, HttpMethodName.POST);
    request.addParameter("delete", null);
    if (deleteObjectsRequest.getMfa() != null) {
        populateRequestWithMfaDetails(request, deleteObjectsRequest.getMfa());
    }
    populateRequesterPaysHeader(request, deleteObjectsRequest.isRequesterPays());
    final byte[] content = new MultiObjectDeleteXmlFactory().convertToXmlByteArray(deleteObjectsRequest);
    request.addHeader("Content-Length", String.valueOf(content.length));
    request.addHeader("Content-Type", "application/xml");
    request.setContent(new ByteArrayInputStream(content));
    try {
        final byte[] md5 = Md5Utils.computeMD5Hash(content);
        final String md5Base64 = BinaryUtils.toBase64(md5);
        request.addHeader("Content-MD5", md5Base64);
    } catch (final Exception e) {
        throw new AmazonClientException("Couldn't compute md5 sum", e);
    }
    @SuppressWarnings("unchecked") final ResponseHeaderHandlerChain<DeleteObjectsResponse> responseHandler = new ResponseHeaderHandlerChain<DeleteObjectsResponse>(new Unmarshallers.DeleteObjectsResultUnmarshaller(), new S3RequesterChargedHeaderHandler<DeleteObjectsResponse>());
    final DeleteObjectsResponse response = invoke(request, responseHandler, deleteObjectsRequest.getBucketName(), null);
    /*
         * If the result was only partially successful, throw an exception
         */
    if (!response.getErrors().isEmpty()) {
        final Map<String, String> headers = responseHandler.getResponseHeaders();
        final MultiObjectDeleteException ex = new MultiObjectDeleteException(response.getErrors(), response.getDeletedObjects());
        ex.setStatusCode(200);
        ex.setRequestId(headers.get(Headers.REQUEST_ID));
        ex.setExtendedRequestId(headers.get(Headers.EXTENDED_REQUEST_ID));
        ex.setCloudFrontId(headers.get(Headers.CLOUD_FRONT_ID));
        throw ex;
    }
    final DeleteObjectsResult result = new DeleteObjectsResult(response.getDeletedObjects(), response.isRequesterCharged());
    return result;
}
Also used : DeleteObjectsResponse(com.amazonaws.services.s3.internal.DeleteObjectsResponse) Unmarshallers(com.amazonaws.services.s3.model.transform.Unmarshallers) AmazonClientException(com.amazonaws.AmazonClientException) AmazonServiceException(com.amazonaws.AmazonServiceException) AmazonClientException(com.amazonaws.AmazonClientException) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) FileNotFoundException(java.io.FileNotFoundException) AbortedException(com.amazonaws.AbortedException) MultiObjectDeleteXmlFactory(com.amazonaws.services.s3.model.transform.MultiObjectDeleteXmlFactory) ByteArrayInputStream(java.io.ByteArrayInputStream) ResponseHeaderHandlerChain(com.amazonaws.services.s3.internal.ResponseHeaderHandlerChain)

Aggregations

AbortedException (com.amazonaws.AbortedException)1 AmazonClientException (com.amazonaws.AmazonClientException)1 AmazonServiceException (com.amazonaws.AmazonServiceException)1 DeleteObjectsResponse (com.amazonaws.services.s3.internal.DeleteObjectsResponse)1 ResponseHeaderHandlerChain (com.amazonaws.services.s3.internal.ResponseHeaderHandlerChain)1 MultiObjectDeleteXmlFactory (com.amazonaws.services.s3.model.transform.MultiObjectDeleteXmlFactory)1 Unmarshallers (com.amazonaws.services.s3.model.transform.Unmarshallers)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 FileNotFoundException (java.io.FileNotFoundException)1 IOException (java.io.IOException)1 URISyntaxException (java.net.URISyntaxException)1