网站端点
当您将存储桶配置为静态网站时,该网站在存储桶的 AWS 区域 特定的网站端点上可用。网站端点不同于您在其上发送 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 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 端点的完整列表,请参阅《AWS 一般参考》中的 Amazon S3 端点和限额。