如何在Amazon s3中定义权限

Sau*_*abh 5 amazon-s3

我有像亚马逊这样的结构 -

(bucket name) MyImages
  ---  (key) general
       ---- 1.jpg
       ---- 2.jpg
Run Code Online (Sandbox Code Playgroud)

我已经使用S3 Firefox Organizer工具创建了密钥(常规)并为所有人设置了读取权限.现在,通过java程序,当我上传这个键里面的图像时,我想设置每个对象的权限作为键具有.但它没有发生,我必须编写一些额外的代码行来设置每个对象的权限.

AccessControlList acl = s3.getBucketAcl("MyImages");
// give everyone read access
acl.grantPermission(GroupGrantee.AllUsers, Permission.Read);
s3.setObjectAcl("MyImages", "general/1.jpg", acl);
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱上面的代码.为什么对象没有获得密钥或存储区的权限?

小智 8

以下代码适用于我.将file_to_save替换为您要写入S3的文件对象.

PutObjectRequest por = new PutObjectRequest("MyImages", "general/1.jpg", file_to_save);

o.setCannedAcl(CannedAccessControlList.PublicRead);
Run Code Online (Sandbox Code Playgroud)