如何为文件的Authenticated Users组授予读取权限?我只是直接关注改变acl . 我应该为http://acs.amazonaws.com/groups/global/AuthenticatedUsers投入什么?我已经尝试过AuthenticatedUsers的每一种组合 .
./s3cmd setacl --acl-grant = read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers s3:// BUCKET / FILE ./s3cmd setacl --acl-grant = read:AuthenticatedUsers s3: //桶/ FILE
6 回答
如果您愿意使用Python,那么boto库提供了获取和设置ACL的所有功能;来自boto S3 documentation:
其中b是桶 . 当然,在您的情况下,您应该将“public-read”更改为“authenticated-read” . 你可以为键(文件)做类似的事情 .
对于单个文件,以下命令适用于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
用于目录中的所有文件 .s3cmd似乎无法做到这一点 . 相反,我不得不切换到aws cli工具 .
以下是安装它们的说明:http://docs.aws.amazon.com/cli/latest/userguide/installing.html
可以使用以下命令在上载期间将经过身份验证的用户设置的acl设置为:
再加上一大堆其他组合,您可以在这里查看:http://docs.aws.amazon.com/cli/latest/reference/s3/index.html#cli-aws-s3
这是来自http://s3tools.org/s3cmd:
尝试将public更改为authenticated,这应该可行 .
请参阅http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL它在亚马逊方面解释了如何使用他们的ACL,据说如果你在s3cmd中使用public - 这将转换为亚马逊的公共读取,因此经过身份验证应该转换为authenticated-read .
如果你想在桶级别做,你可以做 -
文件 - http://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html
下面是一个示例命令,它将S3对象上的ACL设置为
authenticated-read
..