S3 URL 结构解析
深入了解一种可用于访问对象的S3 URL。
在使用 AWS S3 时,理解 S3 如何支持虚拟主机风格的 URL非常重要。
这种 URL 作为端点,可用于定位存储桶中的对象。
虚拟主机风格的 URL
在虚拟主机风格的 URL中,存储桶名称以子域名的形式出现在 URL 中。这种方式使得每个存储桶都可以作为唯一的 DNS 子域名出现在 URL 中。
如上图所示,存储桶名称 my-pets 是 URL 中的子域名,S3 的端点为 s3.amazonaws.com,同时该 URL 引用了存储桶内的 dingo.jpg 对象。
你可能在使用 Google 的不同产品时注意到类似的 URL 风格,例如 calendar.google.com、drive.google.com 等。这里的子域名始终与特定的产品相关联。
过去,AWS S3 使用的是路径风格的 URL,即存储桶名称作为 s3.amazonaws.com 之后的路径部分。如下例所示:
然而,AWS S3 已经弃用路径风格的 URL 模式,现在所有存储桶均仅使用虚拟主机风格的 URL 模式。
接下来,我们通过 AWS S3 控制台复制一个 S3 对象的 URL,具体步骤如下:
- 打开 S3 控制台,选择一个可用的存储桶。
- 选中某个对象,点击“复制 URL”按钮。
- 尝试在任意浏览器中访问该 URL。如果存储桶或对象的公共访问权限被限制,将看到错误提示。
- 若出现错误,请按以下步骤操作以访问对象:
- 在“权限”选项卡中编辑“阻止公共访问(存储桶设置)”,关闭“阻止所有公共访问”选项。
- 编辑对象的 ACL,启用“所有人(公共访问)”,并允许对对象进行读取访问。
示例:https://my-pets.s3.amazonaws.com/dingo.jpg
截至目前,我们讨论的是可用于根据配置的公共访问规则访问存储桶或其对象的 S3 URL。
但使用 S3 静态网站托管功能部署的静态网站,其端点与上述 URL 不同。
静态网站托管端点
静态网站始终与特定区域绑定,必须通过区域特定的端点进行访问。
根据 S3 存储桶所在的区域,网站端点遵循以下两种格式之一。
短横线格式
在短横线格式中,关键词 s3-website 与区域名称之间用连字符分隔。
示例:http://my-pets.s3-website-us-east-1.amazonaws.com
点号格式
在点号格式中,关键词 s3-website 与区域名称之间用点号分隔。
示例:http://my-pets.s3-website.us-east-2.amazonaws.com
了解了 S3 URL 的基本知识后,我们将在接下来的课程中尝试部署一个静态网站。