网站端点 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

网站端点

当您将存储桶配置为静态网站时,该网站在存储桶的 Amazon Web Services 区域 特定的网站端点上可用。网站端点不同于您在其上发送 REST API 请求的端点。有关端点之间的差异的更多信息,请参阅 网站端点和 REST API 端点之间的主要区别

根据您所在的区域,Amazon S3 网站端点采用以下两种格式之一。

  • s3-website 短横线 (-) 区域http://bucket-name.s3-website-Region.amazonaws.com

  • s3-网站 点 (.) 区域http://bucket-name.s3-website.Region.amazonaws.com

此 URL 将返回您为该网站配置的默认索引文档。有关 Amazon S3 网站端点的完整列表,请参阅 Amazon S3 网站端点

注意

为了增强 Amazon S3 静态网站的安全性,Amazon S3 网站端点域(例如 s3-website-us-east-1.amazonaws.coms3-website.ap-south-1.amazonaws.com)已在 Public Suffix List (PSL)中注册。为进一步增强安全性,如果您需要在 Amazon S3 静态网站的域名中设置敏感 Cookie,我们建议您使用带 __Host- 前缀的 Cookie。这将有助于保护您的域,防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie 页面。

如果您希望您的网站公开,您必须使您的所有内容对您的客户公开可读,以便您的客户可以在网站端点访问这些内容。有关更多信息,请参阅设置访问网站的权限

重要

Amazon S3 网站端点不支持 HTTPS 或接入点。如果要使用 HTTPS,则可以使用 Amazon CloudFront 为 Amazon S3 上托管的静态网站提供服务。有关更多信息,请参阅如何使用 CloudFront 为我的 Amazon S3 存储桶提供 HTTPS 请求? 要使用自定义域的 HTTPS,请参阅使用注册到 Route 53 的自定义域配置静态网站

申请方付款存储桶不允许通过网站端点进行访问。对此类存储桶的任何请求都会收到 403 拒绝访问响应。有关更多信息,请参阅 使用申请方付款存储桶进行存储传输和使用

网站端点示例

以下示例演示如何访问配置为静态网站的 Amazon S3 存储桶。

例 – 请求根级别的对象

要请求存储在存储桶根级别的特定对象,请使用以下 URL 结构。

http://bucket-name.s3-website.Region.amazonaws.com/object-name

例如,以下 URL 请求存储在存储桶中根级别的 photo.jpg 对象。

http://example-bucket.s3-website.us-west-2.amazonaws.com/photo.jpg
例 – 请求前缀中的对象

要请求存储在存储桶的文件夹中的对象,请使用此 URL 结构。

http://bucket-name.s3-website.Region.amazonaws.com/folder-name/object-name

以下 URL 请求存储桶中的 docs/doc1.html 对象。

http://example-bucket.s3-website.us-west-2.amazonaws.com/docs/doc1.html

添加 DNS 别名记录

如果您拥有已注册的域,则可以添加指向 Amazon S3 网站端点的 DNS CNAME 条目。例如,如果您注册了 www.example-bucket.com 域,则可以创建存储桶 www.example-bucket.com,并添加指向 www.example-bucket.com.s3-website.Region.amazonaws.com 的 DNS CNAME 记录。对 http://www.example-bucket.com 的所有请求都将路由到 www.example-bucket.com.s3-website.Region.amazonaws.com

有关更多信息,请参阅 使用 CNAME 记录自定义 Amazon S3 URL

将自定义域与 Route 53 结合使用

您可以使用自己的向 Amazon Route 53 注册的域(例如,example.com)来提供您的内容,而不是使用 Amazon S3 网站端点访问网站。您可以将 Amazon S3 与 Route 53 结合使用以在根域中托管网站。例如,如果您拥有根域 example.com 且在 Amazon S3 上托管您的网站,则您的网站访问者可以通过输入 http://www.example.comhttp://example.com 从他们的浏览器访问该站点。

有关示例演练的信息,请参阅 教程:使用注册到 Route 53 的自定义域配置静态网站

网站端点和 REST API 端点之间的主要区别

Amazon S3 网站端点针对通过 Web 浏览器访问进行了优化。下表总结 REST API 端点和网站端点之间的主要区别。

主要区别 REST API 端点 网站端点
访问控制

同时支持公有和私有内容

仅支持公开可读的内容
错误消息处理

返回 XML 格式的错误响应

返回 HTML 文档
重定向支持

不适用

同时支持对象级和存储桶级重定向
支持的请求

支持所有存储桶和对象操作

仅支持对象上的 GET 和 HEAD 请求
对存储桶根级的 GET 和 HEAD 请求的响应 返回存储桶中对象键的列表 返回在网站配置中指定的索引文档
安全套接字层 (SSL) 支持 支持 SSL 连接 不支持 SSL 连接

有关 Amazon S3 端点的完整列表,请参阅《Amazon Web Services 一般参考》中的 Amazon S3 端点和限额