我有一个 s3 bucket,其中的对象需要公开,现在每次我上传新文件时,我都必须单击它,然后单击“使用 acl 公开”。我想知道是否有办法将其设置为默认情况下任何上传到我的 bucket 的新文件都是公开的。我尝试授予 bucket 本身公开权限,但我仍然必须将单个对象也公开。
答案1
详情请见帖子 如何默认将 Amazon S3 存储桶中的所有对象设为公开。
恢复:
打开要公开的存储桶的属性
点击“权限”
点击“编辑存储桶策略”
复制并粘贴以下文本:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Action": "s3:GetObject", "Effect": "Allow", "Resource": "arn:aws:s3:::test.h3xed.com/*", "Principal": "*" } ] }
更改
test.h3xed.com
为您的存储桶的实际名称点击“保存”。
注意:用户仍必须使用您资源的准确 URL。他们无法查看您的存储桶的“索引”或列出其内容。
答案2
@fred,现在你的问题可能已经解决了。关于你的评论“我收到“你无权编辑存储桶策略”,我尝试以 root 用户和具有完全访问权限的 IAM 用户身份操作。”,这可能是因为已启用阻止公共访问存储桶 (https://docs.aws.amazon.com/AmazonS3/latest/userguide/configuring-block-public-access-bucket.html)可在存储桶级别或帐户级别进行设置(https://docs.aws.amazon.com/AmazonS3/latest/userguide/configuring-block-public-access-account.html)。 阻止公共访问存储桶 AWS S3 控制台