网站端点
当您将存储桶配置为静态网站时,该网站在存储桶的 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.com 或 s3-website.ap-south-1.amazonaws.com)已在 Public Suffix List (PSL)__Host-
前缀的 Cookie。这将有助于保护您的域,防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie
如果您希望您的网站公开,您必须使您的所有内容对您的客户公开可读,以便您的客户可以在网站端点访问这些内容。有关更多信息,请参阅 设置访问网站的权限。
重要
Amazon S3 网站端点不支持 HTTPS 或接入点。如果要使用 HTTPS,则可以使用 Amazon CloudFront 为 Amazon S3 上托管的静态网站提供服务。有关更多信息,请参阅如何使用 CloudFront 为我的 Amazon S3 存储桶提供 HTTPS 请求?
申请方付款存储桶不允许通过网站端点进行访问。对此类存储桶的任何请求都会收到 403 拒绝访问
响应。有关更多信息,请参阅 使用申请方付款存储桶进行存储传输和使用。
注意
我们建议您使用 Amazon Amplify Hosting 来托管存储在 S3 上的静态网站内容。Amplify Hosting 是一项完全托管式服务,可让您轻松地在由 Amazon CloudFront 提供支持的全球可用内容分发网络(CDN)上部署您的网站,并可实现安全的静态网站托管。借助 Amazon Amplify Hosting,您可以选择对象在通用存储桶中的位置,将内容部署到托管式 CDN,并为网站生成一个公有 HTTPS URL 以供在任何地方访问。有关 Amplify Hosting 的更多信息,请参阅《Amazon Amplify 控制台用户指南》中的 Deploying a static website to Amazon Amplify Hosting from an S3 general purpose bucket 和 Deploying a static website from S3 using the Amplify console。
网站端点示例
以下示例演示如何访问配置为静态网站的 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.
的 DNS CNAME 记录。对 Region
.amazonaws.comhttp://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.com
或 http://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 端点和限额。