授予经过身份验证的用户组对文件的读取权限
如何向经过身份验证的用户组授予文件的读取权限?我正在使用 s3cmd 并且想在上传时执行此操作,但我只是直接关注更改 acl。我应该为 http://acs.amazonaws.com/groups/global/AuthenticatedUsers?我已经尝试了所有可能的 AuthenticatedUsers 组合。
./s3cmd setacl --acl-grant=read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers s3://桶/文件
./s3cmd setacl --acl-grant=读取:AuthenticatedUsers s3://桶/文件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这对于 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
This doesn't seem to be possible with s3cmd. Instead I had to switch to the aws cli tools.
Here are the directions to install them:
http://docs.aws.amazon.com/cli/latest/userguide/installing.html
It's possible to set the acl to read by authenticated users during upload with the command:
Plus a whole load of other combinations you can check out here:
http://docs.aws.amazon.com/cli/latest/reference/s3/index.html#cli-aws-s3
以下命令适用于 s3cmd 版本 1.6.0:
s3cmd setacl s3://<存储桶>/<文件名> --acl-grant='read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers'
对于单个文件。<代码>
s3cmd setacl s3://<存储桶>/<目录名称> --acl-grant='读取:http://acs.amazonaws.com/groups/global/AuthenticatedUsers' --recursive
用于目录中的所有文件。
The following command works for me with s3cmd version 1.6.0:
s3cmd setacl s3://<bucket>/<file-name> --acl-grant='read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers'
for an individual file.
for all files in a directory.s3cmd setacl s3://<bucket>/<dir-name> --acl-grant='read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers' --recursive
这是来自 http://s3tools.org/s3cmd:
尝试将公共更改为经过身份验证,这应该可行。
请参阅 http://docs.amazonwebservices.com/AmazonS3/latest/dev/ ACLOverview.html#CannedACL
它解释了亚马逊方面如何使用他们的 ACL,假设如果您在 s3cmd 中使用 public - 这将在亚马逊中转换为 public-read,因此经过身份验证应转换为 authenticated-read >。
This is from http://s3tools.org/s3cmd:
try changing public to authenticated and that should work.
see http://docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL
it explains on amazon side how to use their ACLs, supposedly if you use public in s3cmd - this would translate to public-read in amazon, so authenticated should translate to authenticated-read.
如果您愿意使用 Python,boto 库提供了获取和设置 ACL 的所有功能;来自 boto S3 文档:
其中 b 是存储桶。当然,在您的情况下,您应该将“public-read”更改为“authenticated-read”。您可以对密钥(文件)执行类似的操作。
If you're willing to use Python, the boto library provides all the functionality to get and set an ACL; from the boto S3 documentation:
Where b is a bucket. Of course in your case you should change 'public-read' to 'authenticated-read'. You can do something similar for keys (files).
如果您想在存储桶级别执行此操作,可以执行 -
文档 - http://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html
If you want to do it at bucket level you can do -
Docs - http://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html
以下是一个示例命令,它将 S3 对象上的 ACL 设置为“authenticated-read”。
。
Here is an example command that will set the ACL on an S3 object to
authenticated-read
..