授予对Authenticated Users组的读取访问权限

时间:2012-01-23 22:15:35

标签: amazon-s3 s3cmd

如何为文件的Authenticated Users组授予读取权限?我正在使用s3cmd并希望在上传时这样做但我只是直接关注更改acl。我应该为http://acs.amazonaws.com/groups/global/AuthenticatedUsers投入什么?我已经尝试过AuthenticatedUsers的每一种组合。

  

./ s3cmd setacl   --acl发放=读:HTTP://acs.amazonaws.com/groups/global/AuthenticatedUsers   S3:// BUCKET / FILE

     

./ s3cmd setacl   --acl发放=读:AuthenticatedUsers   S3:// BUCKET / FILE

6 个答案:

答案 0 :(得分:2)

使用s3cmd似乎无法做到这一点。相反,我不得不切换到aws cli工具。

以下是安装它们的说明: http://docs.aws.amazon.com/cli/latest/userguide/installing.html

可以使用以下命令在上传期间将经过身份验证的用户设置的acl设置为:

Response.Redirect("http://www.fashionunic.com/shop/wholesale-m04-dozen-chevron-laced-front-top-medium.html")

另外还有一大堆其他组合,你可以在这里查看: http://docs.aws.amazon.com/cli/latest/reference/s3/index.html#cli-aws-s3

答案 1 :(得分:0)

这是http://s3tools.org/s3cmd

  

将文件上传到存储桶〜$ s3cmd put addressbook.xml   s3://logix.cz-test/addrbook.xml文件'addressbook.xml'存储为   s3://logix.cz-test/addrbook.xml(123456 bytes)关于ACL的注意事项   (访问控制列表) - 上传到Amazon S3存储桶的文件即可   要么是私人的,只有你可读,拥有者   访问和秘密密钥,或公开,任何人都可读。每个文件   上传为公共不仅可以使用s3cmd访问,而且还有一个   HTTP地址,URL,可以像任何其他URL一样使用   例如,通过Web浏览器访问。

     
    

〜$ s3cmd put --acl-public --guess-mime-type storage.jpg     s3://logix.cz-test/storage.jpg文件'storage.jpg'存储为     s3://logix.cz-test/storage.jpg(33045 bytes)的公共URL     对象是:http://logix.cz-test.s3.amazonaws.com/storage.jpg

  
     

现在任何人都可以在浏览器中显示storage.jpg文件。很酷,嗯?

尝试将公众更改为经过身份验证,这应该有效。

http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL 它在亚马逊方面解释了如何使用他们的ACL,据说如果你在s3cmd中使用public - 这将转换为亚马逊中的 public-read ,因此经过身份验证应转换为 authenticated-read

答案 2 :(得分:0)

如果您愿意使用Python,boto库提供了获取和设置ACL的所有功能;来自boto S3 documentation

b.set_acl('public-read')

其中b是桶。当然,在您的情况下,您应该将“public-read”更改为“authenticated-read”。您可以为键(文件)执行类似的操作。

答案 3 :(得分:0)

以下命令适用于s3cmd版本1.6.0: 单个文件s3cmd setacl s3://<bucket>/<file-name> --acl-grant='read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers'

s3cmd setacl s3://<bucket>/<dir-name> --acl-grant='read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers' --recursive 表示目录中的所有文件。

答案 4 :(得分:0)

如果你想在桶级别做,你可以做 -

aws s3api put-bucket-acl --bucket bucketname --grant-full-control uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers

文档 - http://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html

答案 5 :(得分:0)

这是一个示例命令,它将S3对象上的ACL设置为authenticated-read

aws s3api put-object-acl --acl authenticated-read --bucket mybucket --key myfile.txt