我已经通过亚马逊AWS管理上传了一些文件 .
我确实收到403错误 . Acess否认 . 我发现我需要设置权限才能查看 .
如何为存储桶中的所有文件执行此操作?我知道可以为每个文件设置权限 . 当需要为每个人查看真正的许多文件时,需要花费很多时间 .
我建议您将存储桶策略[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/*" 中的 * 允许递归 .
"Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
*
[1]请注意,Bucket Policy与IAM Policy不同 . (例如,如果您尝试在IAM策略中包含 Principal ,则会收到错误 . )可以通过在AWS Web控制台中转到存储桶的根目录并展开“属性”>“权限”来编辑存储桶策略 . 存储桶的子目录也具有“属性”>“权限”,但没有“编辑存储桶策略”选项
Principal
我使用Cloudberry Explorer来完成工作:)那就是:http://cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx
您可以选择要将其公开的目录 .
按“更多”并将其标记为公开;它将使目录和所有文件可以作为公共访问 .
您只能修改唯一项目(桶或项目)的ACL,大 beans 必须逐个更改 .
某些S3管理应用程序允许您将相同的ACL应用于存储桶中的所有项目,但在内部,它会逐个应用ACL .
如果以编程方式上载文件,则在上载文件时指定ACL非常重要,因此您不必在以后进行修改 . 使用S3管理应用程序(如Cloudberry,Transmit,...)的问题是,当您上传每个文件时,大多数使用默认ACL(私有只读) .
通过程序(java)将文件上传到s3存储桶时,我遇到了同样的问题 .
Error: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 403
我添加了 origin identity 并更改了 bucket policy 和 CORS configuration 然后一切正常 .
使用S3 Browser,您可以使用gui更新权限,也可以递归 . 它是一个有用的工具,可以免费用于非商业用途 .
要公开大量文件,请执行以下操作:
转到S3 web interface
打开所需的桶
单击列表左侧的复选框,选择所需的文件和文件夹
点击列表顶部的«更多»按钮,点击«公开»
点击«公开»确认 . 尽管警告说“...读取此对象,读取和写入权限”,文件将没有公共写入权限 .
我想在这里为潜在的macOS用户添加这个,这些用户已经拥有名为Transmit by Panic的精美FTP应用程序 .
我已经有恐慌,它支持S3桶(不知道这个版本是什么版本,但我认为升级是免费的) . 它还支持递归更新读写权限 .
您只需右键单击要更新的目录,然后选择要将其设置为的读写权限 .
它看起来并不快,但您可以通过Window> Transcript打开日志文件,这样您至少知道它正在做某事 .
使用AWS policy generator生成符合您需求的策略 . 策略生成器中的主体应该是您用于访问对象的IAM用户/角色 . 资源ARN应该是arn:aws:s3 ::: mybucket / sub / dirs / are / supported / *
接下来,单击“添加语句”并按照说明操作 . 你最终会得到一个代表政策的JSON . 将其粘贴到s3存储桶策略管理部分,该部分位于“您在AWS中的s3存储桶页面 - >权限 - >存储桶策略”中 .
9 回答
我建议您将存储桶策略[1]应用于要存储公共内容的存储桶 . 这样您就不必为每个对象设置ACL . 以下是一个策略示例,该策略将使存储桶mybucket中的所有文件都公开 .
"Resource": "arn:aws:s3:::mybucket/sub/dirs/are/supported/*"
中的*
允许递归 .[1]请注意,Bucket Policy与IAM Policy不同 . (例如,如果您尝试在IAM策略中包含
Principal
,则会收到错误 . )可以通过在AWS Web控制台中转到存储桶的根目录并展开“属性”>“权限”来编辑存储桶策略 . 存储桶的子目录也具有“属性”>“权限”,但没有“编辑存储桶策略”选项我使用Cloudberry Explorer来完成工作:)那就是:http://cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx
您可以选择要将其公开的目录 .
按“更多”并将其标记为公开;它将使目录和所有文件可以作为公共访问 .
您只能修改唯一项目(桶或项目)的ACL,大 beans 必须逐个更改 .
某些S3管理应用程序允许您将相同的ACL应用于存储桶中的所有项目,但在内部,它会逐个应用ACL .
如果以编程方式上载文件,则在上载文件时指定ACL非常重要,因此您不必在以后进行修改 . 使用S3管理应用程序(如Cloudberry,Transmit,...)的问题是,当您上传每个文件时,大多数使用默认ACL(私有只读) .
通过程序(java)将文件上传到s3存储桶时,我遇到了同样的问题 .
Error: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 403
我添加了 origin identity 并更改了 bucket policy 和 CORS configuration 然后一切正常 .
使用S3 Browser,您可以使用gui更新权限,也可以递归 . 它是一个有用的工具,可以免费用于非商业用途 .
要公开大量文件,请执行以下操作:
转到S3 web interface
打开所需的桶
单击列表左侧的复选框,选择所需的文件和文件夹
点击列表顶部的«更多»按钮,点击«公开»
点击«公开»确认 . 尽管警告说“...读取此对象,读取和写入权限”,文件将没有公共写入权限 .
传输5
我想在这里为潜在的macOS用户添加这个,这些用户已经拥有名为Transmit by Panic的精美FTP应用程序 .
我已经有恐慌,它支持S3桶(不知道这个版本是什么版本,但我认为升级是免费的) . 它还支持递归更新读写权限 .
您只需右键单击要更新的目录,然后选择要将其设置为的读写权限 .
它看起来并不快,但您可以通过Window> Transcript打开日志文件,这样您至少知道它正在做某事 .
使用AWS policy generator生成符合您需求的策略 . 策略生成器中的主体应该是您用于访问对象的IAM用户/角色 . 资源ARN应该是arn:aws:s3 ::: mybucket / sub / dirs / are / supported / *
接下来,单击“添加语句”并按照说明操作 . 你最终会得到一个代表政策的JSON . 将其粘贴到s3存储桶策略管理部分,该部分位于“您在AWS中的s3存储桶页面 - >权限 - >存储桶策略”中 .