List of usage examples for com.amazonaws.services.s3 AmazonS3Client setObjectAcl
@Override public void setObjectAcl(String bucketName, String key, CannedAccessControlList acl) throws SdkClientException, AmazonServiceException
From source file:org.entando.entando.plugins.jps3awsclient.aps.system.services.storage.AmazonS3StorageManager.java
License:Open Source License
public void store(IStorageObject obj, boolean reducedRedundancy, CannedAccessControlList acl) throws ApsSystemException { try {//from w ww.j a v a 2 s . c o m AmazonS3Client client = this.getS3Client(); String bucketName = obj.getBucketName().toLowerCase(); this.checkForAndCreateBucket(bucketName, client); ObjectMetadata omd = new ObjectMetadata(); omd.setContentType(obj.getContentType()); omd.setContentLength(obj.getContentLength()); PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, obj.getStoragePath(), obj.getInputStream(), omd); // Check if reduced redundancy is enabled if (reducedRedundancy) { putObjectRequest.setStorageClass(StorageClass.ReducedRedundancy); } if (null != obj.getUserMetadata()) { ObjectMetadata objectMetadata = new ObjectMetadata(); putObjectRequest.setMetadata(objectMetadata); Iterator<String> iter = obj.getUserMetadata().keySet().iterator(); while (iter.hasNext()) { String key = iter.next(); objectMetadata.addUserMetadata(key, obj.getUserMetadata().get(key)); } } client.putObject(putObjectRequest); // If we have an ACL set access permissions for the the data on S3 if (acl != null) { client.setObjectAcl(bucketName, obj.getStoragePath(), acl); } } catch (Throwable t) { _logger.error("Error storing object", t); throw new ApsSystemException("Error storing object", t); } }