gpt4 book ai didi

amazon-web-services - CloudFront + S3网站: "The specified key does not exist" when an implicit index document should be displayed

转载 作者:行者123 更新时间:2023-12-03 07:22:17 29 4
gpt4 key购买 nike

我刚刚将一个静态网站部署到 Amazon S3,当前可以在此处查看:http://www.rdegges.com.s3-website-us-east-1.amazonaws.com/

如果您单击任何文章链接,您会注意到以下错误:

S3 Error

S3 提示文件不存在。现在,这就是奇怪的地方——我在我的域上使用 CloudFront。因此,当您单击该文章链接时,它会将请求发送到 CloudFront,然后 CloudFront 会尝试从 S3 存储桶取回文件。

但是,如果您直接从 S3 访问相同的 URL,例如:http://www.rdegges.com.s3-website-us-east-1.amazonaws.com/2015/building-a-heroku-addon-planning/页面将正常加载。

这里的翻译似乎丢失了一些东西。

有人建议我如何修复我的设置吗?

最佳答案

我会冒险说指定的 key 技术上不存在,因此错误消息在技术上是准确的,但并不能说明全部情况。这应该是一个简单的修复。

S3 存储桶有两个 1 端点:“REST”和“网站”。他们有两个不同的功能集。网站端点提供了索引文档的神奇解析(例如,index.html,在您提供的示例中,这似乎是实际应该返回到浏览器的内容),而 REST 端点则不然。

当您在用于网站托管的存储桶前面配置 CloudFront 时,您通常不希望通过从下拉列表中选择存储桶名称来将源配置为“S3”源;相反,您希望将其配置为“自定义”源,并使用 S3 控制台中提供的网站端点主机名(例如 example-bucket.s3-website-us-east-1...),否则,CloudFront 假设您希望它使用存储桶的 REST 端点(允许身份验证和私有(private)内容,而网站端点则不允许)。

Important

Do not select the name of your bucket from the list, for example, example.com.s3.amazonaws.com.

http://docs.aws.amazon.com/gettingstarted/latest/swh/getting-started-create-cfdist.html

自从这个问题最初被回答以来,文档已经被重构,所以上面显示的消息现在出现在一页后,并且已经被重新措辞,但要点是相同的。 “存储桶名称”似乎指的是下拉列表中显示的选项,这不是您想要的。

Note

Be sure to specify the static website hosting endpoint, not the name of the bucket.

http://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-cloudfront-walkthrough.html

错误消息以 XML 形式返回,提示您正在使用存储桶的 REST 端点。如果您使用的是网站端点,那么网站端点将返回 HTML 格式的错误消息。

按照所述为 CloudFront 分配创建一个新源,然后更改行为以将请求发送到新源,然后发送 /* 的 CloudFront 缓存失效请求,您就应该完成设置了。

另请参阅:

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html#WebsiteRestEndpointDiff

<小时/>

¹ 两个端点。从技术上讲,有两个以上,因为所有存储桶都至少有两个可能的 REST 端点主机名...但是端点有两种类型。存储桶还有一个可选的传输加速端点,该端点使用 AWS 边缘网络(与为 CloudFront 提供支持的基础设施相同)来实现更快/优化的传输,特别是从距离配置存储桶的区域较远的地理位置进行传输,但不使用 CloudFront 缓存。如果您激活此终端节点,它看起来像 https://example-bucket.s3-accelerate.amazonaws.com,并且由于您使用更多的 AWS 网络并且对大多数请求产生额外的使用费用公共(public)互联网的差异较小......但是,这是端点的幕后部署的差异,而不是端点的行为。传输加速端点仍然是 REST 端点,因此就像其他 REST 端点一样,它不具有网站托管功能。 CloudFront 不会让您对原始域名使用加速端点,因为这没有意义 - 如果允许这样的配置,请求和响应将在 AWS Edge Network 中循环两次,并增加延迟和成本,而不会造成任何损失。提供任何好处。

关于amazon-web-services - CloudFront + S3网站: "The specified key does not exist" when an implicit index document should be displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34060394/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com