Amazon S3权限问题 – 如何一次设置所有文件的权限?

我已经通过Amazon AWSpipe理上传了一些文件。

我确实得到了一个403错误。 接受否认。 我发现我需要设置任意查看。

如何为桶上的所有文件做到这一点? 我知道这是每个文件的可设置的权限。 当需要为每个人查看真正的许多文件需要很多时间。

我build议您将存储桶策略[1]应用于要存储公共内容的存储桶。 这样你就不必为每个对象设置ACL。 下面是一个策略示例, 它将公开存储桶mybucket中的所有文件。

{ "Version": "2008-10-17", "Id": "http better policy", "Statement": [ { "Sid": "readonly policy", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*" } ] } 

*"Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"允许recursion。

[1]请注意,桶策略与IAM策略不同。 (如果您尝试在IAM策略中包含Principal ,则会出现错误。)可以通过在AWS Web控制台中查找存储桶的根目录并展开“属性”>“权限”来编辑存储桶策略。 存储桶的子目录也具有“属性”>“权限”,但没有“ 编辑存储桶策略”选项

我使用了Cloudberry Explorer做这个工作:)那是: http : //cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx

你只能修改一个独特的项目(桶或项目)的ACL,黄​​豆,你将不得不逐一改变它们。

一些S3pipe理应用程序允许您将相同的ACL应用于存储桶中的所有项目,但是在内部,它将逐个应用ACL。

如果以编程方式上传文件,在上传文件时指定ACL非常重要,因此您以后不必修改。 使用S3pipe理应用程序(如Cloudberry,Transmit,…)的问题是,当您上传每个文件时,其中大多数使用默认ACL(仅限专用)。

我通过程序(java)将file upload到S3存储桶时遇到同样的问题。

错误:请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:9000 '因此不被允许访问。 该响应具有HTTP状态码403

我添加了原始标识并更改了桶策略CORSconfiguration,然后一切正常。

你可以select你想要公开的目录。

按“更多”并将其标记为公开; 它会使目录和所有文件都可以公开访问。

使用S3浏览器,您可以使用gui更新权限,也是recursion的。 这是一个有用的工具,免费用于非商业用途。