List of usage examples for com.amazonaws.services.s3.model MultiObjectDeleteException getDeletedObjects
public List<DeletedObject> getDeletedObjects()
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); } }