Skip to content

Instantly share code, notes, and snippets.

@josephtaylor
Created January 15, 2016 02:28
Show Gist options
  • Save josephtaylor/5e37a44700be90d9c973 to your computer and use it in GitHub Desktop.
Save josephtaylor/5e37a44700be90d9c973 to your computer and use it in GitHub Desktop.
service to put a file in an S3 bucket and make it public with spring-cloud-aws
package something;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.transfer.Upload;
import com.amazonaws.services.s3.transfer.model.UploadResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
@Service
public class BucketServiceImpl implements BucketService {
@Autowired
private AmazonS3 amazonS3;
@Override
public void putFileInBucket(final String bucketName, final String filename, final String path) {
TransferManager transferManager = new TransferManager(amazonS3);
Upload upload = transferManager.upload(bucketName, filename, new File(path));
try {
UploadResult result = upload.waitForUploadResult();
//give the world read-access to the file (bad idea? depends).
amazonS3.setObjectAcl(bucketName, result.getKey(), CannedAccessControlList.PublicRead);
} catch (InterruptedException e) {
// do something
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment