Example usage for com.amazonaws.services.s3.model MultiObjectDeleteException getDeletedObjects

List of usage examples for com.amazonaws.services.s3.model MultiObjectDeleteException getDeletedObjects

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model MultiObjectDeleteException getDeletedObjects.

Prototype

public List<DeletedObject> getDeletedObjects() 

Source Link

Document

Returns the list of successfully deleted objects from this request.

Usage

From source file:org.broadleafcommerce.vendor.amazon.s3.S3FileServiceProvider.java

License:Apache License

public void deleteMultipleObjects(List<String> listOfKeysToRemove) {
    if (listOfKeysToRemove == null || listOfKeysToRemove.isEmpty()) {
        return;/*  www  .j ava 2 s . co m*/
    }

    S3Configuration s3config = s3ConfigurationService.lookupS3Configuration();
    AmazonS3Client s3Client = getAmazonS3Client(s3config);
    String bucketName = s3config.getDefaultBucketName();

    DeleteObjectsRequest multiObjectDeleteRequest = new DeleteObjectsRequest(bucketName);

    List<KeyVersion> keys = new ArrayList<KeyVersion>();

    for (String targetKey : listOfKeysToRemove) {
        keys.add(new KeyVersion(targetKey));
    }

    multiObjectDeleteRequest.setKeys(keys);

    try {
        DeleteObjectsResult delObjResult = s3Client.deleteObjects(multiObjectDeleteRequest);
        if (LOG.isTraceEnabled()) {
            String s = listOfKeysToRemove.stream().collect(Collectors.joining(",\n\t"));

            LOG.trace(String.format("Successfully deleted %d items:\n\t%s",
                    delObjResult.getDeletedObjects().size(), s));
        }
    } catch (MultiObjectDeleteException e) {
        if (LOG.isTraceEnabled()) {
            LOG.trace(String.format("%s \n", e.getMessage()));
            LOG.trace(
                    String.format("No. of objects successfully deleted = %s\n", e.getDeletedObjects().size()));
            LOG.trace(String.format("No. of objects failed to delete = %s\n", e.getErrors().size()));
            LOG.trace(String.format("Printing error data...\n"));
            for (DeleteError deleteError : e.getErrors()) {
                if (LOG.isTraceEnabled()) {
                    LOG.trace(String.format("Object Key: %s\t%s\t%s\n", deleteError.getKey(),
                            deleteError.getCode(), deleteError.getMessage()));
                }
            }
        }
        throw new RuntimeException("No. of objects failed to delete = " + e.getErrors().size(), e);
    }
}