To set an object's ACL to public-read when you upload it, you can use what is known as "canned" ACL settings. Set your object's ACL prior to upload like so:
s3ObjectToUpload.setAcl(AccessControlList.REST_CANNED_PUBLIC_READ);
The following canned ACL settings are available:
AccessControlList#REST_CANNED_PRIVATE
AccessControlList#REST_CANNED_PUBLIC_READ
AccessControlList#REST_CANNED_PUBLIC_READ_WRITE
AccessControlList#REST_CANNED_AUTHENTICATED_READ
You can set any AccessControlList settings you like prior to uploading JetS3t objects, but the canned versions are the most efficient because they use special headers in the original HTTP request to apply the settings. Non-canned ACL settings, such as more complex permissions, will cause JetS3t to perform a follow-up HTTP request to set the permissions *after* the original object is uploaded.
Hope this helps,
James
---
http://www.jamesmurty.com