我使用 Amazon S3 存储桶来托管我的静态网站。为什么存储桶返回的是对象列表而不是网站的索引页列表呢?

上次更新时间:2020 年 2 月 24 日

我使用 Amazon Simple Storage Service (Amazon S3) 存储桶来托管我的静态网站。当我向存储桶发送请求时,看到的是对象的 XML 列表,而不是为网站设置的索引页列表。为什么会发生这种情况? 如何让 Amazon S3 返回索引页?

简短描述

Amazon S3 存储桶具有网站终端节点和 REST API 终端节点。网站终端节点使用以下格式:

bucket-name.s3-website-us-west-2.amazonaws.com

REST API 终端节点使用以下格式:

bucket-name.s3-us-west-2.amazonaws.com

如果向存储桶发送 GET 请求,则您必须向网站终端节点发送请求才能使 Amazon S3 返回索引页(在 Amazon S3 控制台中称为“索引文档”)。如果向 REST API 终端节点发送 GET 请求,则 Amazon S3 将在存储桶中返回对象列表

如果使用具有 Amazon S3 源的 Amazon CloudFront 分配,则您也必须将索引页设置为默认根对象才能确保 Amazon S3 返回索引页。

重要提示:终端节点因 AWS 区域不同而不同。有关按区域列出的网站终端节点,请参阅 Amazon Simple Storage Service 网站终端节点。有关按区域列出的 REST API 终端节点,请参阅 AWS 区域和终端节点 - Amazon Simple Storage Service (Amazon S3)

解决方案

请按照以下步骤找到您的存储桶的网站终端节点:

  1. 打开 Amazon S3 控制台
  2. 从存储桶列表中选择用于托管静态网站的存储桶。
  3. 选择属性视图,然后选择静态网站托管
    网站终端节点为作为 Endpoint 列出的值。

如果使用具有 Amazon S3 源的 CloudFront 分配,请按照以下步骤将分配的默认根对象设置为索引页:

  1. 打开 CloudFront 控制台
  2. 从分配列表中选择与 S3 存储桶关联的分配。
  3. 常规视图中选择编辑
  4. 对于默认根对象,请输入索引页的对象名称(例如,“index.html”)。
  5. 选择是,编辑

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?