List of usage examples for com.amazonaws.services.s3.model MultiObjectDeleteException getErrors
public List<DeleteError> getErrors()
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;//from w w w. j a va 2 s . com } 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); } }
From source file:org.finra.herd.dao.impl.S3DaoImpl.java
License:Apache License
/** * Logs the given MultiObjectDeleteException. * * @param multiObjectDeleteException The exception to log */// ww w. j a v a 2 s . co m private void logMultiObjectDeleteException(MultiObjectDeleteException multiObjectDeleteException) { // Create and initialize a string buffer. The initialization is required here in order to avoid an InsufficientStringBufferDeclaration PMD violation. StringBuilder builder = new StringBuilder(128); builder.append(String.format( "Error deleting multiple objects. Below are the list of objects which failed to delete.%n")); List<DeleteError> deleteErrors = multiObjectDeleteException.getErrors(); for (DeleteError deleteError : deleteErrors) { String key = deleteError.getKey(); String versionId = deleteError.getVersionId(); String code = deleteError.getCode(); String message = deleteError.getMessage(); builder.append(String.format( "s3Key=\"%s\" s3VersionId=\"%s\" s3DeleteErrorCode=\"%s\" s3DeleteErrorMessage=\"%s\"%n", key, versionId, code, message)); } LOGGER.error(builder.toString()); }