【发布时间】:2015-08-15 19:43:48
【问题描述】:
我正在尝试使用 Amazon AWS S3 建立一个静态网站,并关注 this guide。但是,每当我尝试将策略应用于根域存储桶以便人们可以看到该网站时,都会收到错误消息。
该指南告诉我将以下内容复制/粘贴到存储桶策略编辑器中,我这样做了,我将“example.com”替换为我的存储桶名称,因为它告诉我这样做。
{
"Version":"2012-10-17",
"Statement": [{
"Sid": "Allow Public Access to All Objects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example.com/*"
}
]
}
但每次单击“保存”时,我都会收到 Policy could not be parsed as a valid JSON string 错误。
【问题讨论】:
-
获取您正在生成的策略并使用诸如jsonlint.com 之类的工具对其进行验证。如果它在结构上无效,该工具应该会给你一些关于错误的反馈。如果您的存储桶已经具有策略,您不能只是将额外的策略粘贴到框中;您必须将新语句与现有语句结合起来,或者在适当的情况下替换它们。
-
hmm... jsonlint.com 说它是一个有效的 JSON 字符串。我没有添加任何策略,但可能与我单击的某些设置冲突。真可惜。谢谢迈克尔!
-
注意 jsonlint 如何清理格式?嗯......这应该没关系,有效的 json 不应该依赖于琐碎的空白......但您可以尝试获取 jsonlint 的输出并将其粘贴回 S3 控制台。没有其他设置可以在这里引起冲突,fwiw。
-
我刚刚复制并粘贴了此策略,并将其作为存储桶策略添加到我自己的一个存储桶上。正如您所说,我还将“example.com”替换为我的存储桶名称。它工作得很好,我没有出错。我猜你不小心输入了一些额外的东西。
标签: amazon-web-services amazon-s3