12

如何授予对文件的 Authenticated Users 组的读取权限?我正在使用 s3cmd 并想在上传时这样做,但我只是直接专注于更改 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://BUCKET/FILE

4

6 回答 6

2

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

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

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

aws s3 cp <file-to-upload> s3://<bucket>/ --acl authenticated-read

加上一大堆其他组合,您可以在这里查看:http: //docs.aws.amazon.com/cli/latest/reference/s3/index.html#cli-aws-s3

于 2015-05-19T13:48:31.390 回答
1

以下命令适用于 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 对于目录中的所有文件。

于 2015-12-14T15:15:07.963 回答
0

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

b.set_acl('public-read')

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

于 2013-03-15T11:13:17.980 回答
0

这是来自http://s3tools.org/s3cmd

将文件上传到存储桶中 ~$ s3cmd put addressbook.xml s3://logix.cz-test/addrbook.xml 文件 'addressbook.xml' 存储为 s3://logix.cz-test/addrbook.xml (123456 字节) 关于 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 文件。酷,嗯?

尝试将 public 更改为经过身份验证,这应该可以工作。

请参阅http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL 它在亚马逊方面解释了如何使用他们的 ACL,假设如果您在 s3cmd 中使用 public - 这将转化为亚马逊中的public-read,所以 authenticated 应该转换为authenticated-read

于 2012-08-23T14:01:54.953 回答
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

于 2017-11-17T05:48:08.760 回答
0

Here is an example command that will set the ACL on an S3 object to authenticated-read.

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

.

于 2017-11-17T09:03:46.567 回答