List of usage examples for com.amazonaws.services.s3.model CopyObjectRequest setNewObjectMetadata
public void setNewObjectMetadata(ObjectMetadata newObjectMetadata)
From source file:org.finra.herd.dao.impl.S3DaoImpl.java
License:Apache License
@Override public S3FileTransferResultsDto copyFile(final S3FileCopyRequestParamsDto params) throws InterruptedException { LOGGER.info(//from w w w . j a va2 s.c o m "Copying S3 object... sourceS3Key=\"{}\" sourceS3BucketName=\"{}\" targetS3Key=\"{}\" targetS3BucketName=\"{}\"", params.getSourceObjectKey(), params.getSourceBucketName(), params.getTargetObjectKey(), params.getTargetBucketName()); // Perform the copy. S3FileTransferResultsDto results = performTransfer(params, new Transferer() { @Override public Transfer performTransfer(TransferManager transferManager) { // Create a copy request. CopyObjectRequest copyObjectRequest = new CopyObjectRequest(params.getSourceBucketName(), params.getSourceObjectKey(), params.getTargetBucketName(), params.getTargetObjectKey()); // If KMS Key ID is specified, set the AWS Key Management System parameters to be used to encrypt the object. if (StringUtils.isNotBlank(params.getKmsKeyId())) { copyObjectRequest .withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(params.getKmsKeyId())); } // Otherwise, specify the server-side encryption algorithm for encrypting the object using AWS-managed keys. else { ObjectMetadata metadata = new ObjectMetadata(); metadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION); copyObjectRequest.setNewObjectMetadata(metadata); } return s3Operations.copyFile(copyObjectRequest, transferManager); } }); LOGGER.info( "Copied S3 object. sourceS3Key=\"{}\" sourceS3BucketName=\"{}\" targetS3Key=\"{}\" targetS3BucketName=\"{}\" " + "totalBytesTransferred={} transferDuration=\"{}\"", params.getSourceObjectKey(), params.getSourceBucketName(), params.getTargetObjectKey(), params.getTargetBucketName(), results.getTotalBytesTransferred(), HerdDateUtils.formatDuration(results.getDurationMillis())); logOverallTransferRate(results); return results; }
From source file:org.mule.module.s3.simpleapi.SimpleAmazonS3AmazonDevKitImpl.java
License:Open Source License
public String copyObject(@NotNull S3ObjectId source, @NotNull S3ObjectId destination, @NotNull ConditionalConstraints conditionalConstraints, CannedAccessControlList acl, StorageClass storageClass, Map<String, String> userMetadata, String encryption) { Validate.notNull(source);//from w w w . j av a 2 s . c o m Validate.notNull(destination); Validate.notNull(conditionalConstraints); CopyObjectRequest request = new CopyObjectRequest(source.getBucketName(), source.getKey(), source.getVersionId(), destination.getBucketName(), destination.getKey()); request.setCannedAccessControlList(acl); if (storageClass != null) { request.setStorageClass(storageClass); } if (encryption != null) { request.setNewObjectMetadata(new ObjectMetadata()); request.getNewObjectMetadata().setServerSideEncryption(encryption); if (userMetadata != null) { request.getNewObjectMetadata().setUserMetadata(userMetadata); } } else if (userMetadata != null) { request.setNewObjectMetadata(new ObjectMetadata()); request.getNewObjectMetadata().setUserMetadata(userMetadata); } conditionalConstraints.populate(request); return s3.copyObject(request).getVersionId(); }