amazon-s3 - 为什么托管静态网站时 Amazon S3 存储桶名称必须与网站名称相同

标签 amazon-s3 bucket

我想在 S3 上托管一个静态网站,即 example.com。它需要与 example.com 相同的存储桶名称。

然后我发现example.com已经被其他人占用了。

这就是我的问题,为什么存储桶名称必须与网站名称相同?由于有Route 53将网站映射到存储桶端点,因此似乎没有必要进行此限制。

这有什么原因吗?

最佳答案

简单的回答是,“亚马逊就是这么设计的。”

如果存储桶名称与域名不同,S3 如何知道使用哪个存储桶来处理给定域的请求?

您不能说“Route 53”,因为 S3 是在 Route 53 之前创建的,即使您不使用 Route 53 作为 DNS,S3 中托管的网站也能正常工作。

同样,它不能是存储桶上的配置选项,因为这只会产生一系列新的问题 - 如果域的前任所有者仍然使用您的域配置了他们的存储桶,那么您将完全有和你现在遇到的问题一样。

您仍然可以在 S3 上托管您的网站,但如果存储桶名称不匹​​配,您需要在同一区域的 EC2 中使用反向代理服务器,重写每个请求中的主机 header 以匹配存储桶名称,或者,您可以使用 CloudFront 来完成类似的目的,因为存储桶名称不需要匹配 - CloudFront 也会重写 Host header 。

关于amazon-s3 - 为什么托管静态网站时 Amazon S3 存储桶名称必须与网站名称相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25883888/

相关文章:

amazon-s3 - 亚马逊 S3 存储桶策略 - 限制引用者的访问但不限制是否通过查询字符串身份验证生成 url

amazon-s3 - 使用 CloudFront 从自定义路径解析 S3 静态页面

apache-spark - 使用s3和glue时无法以iceberg格式保存分区数据

laravel - 使用 laravel 上传到 s3 存储桶文件夹

c# - .net 中的 binning-bucketing 数值

java - HashMap 桶中的条目数

amazon-web-services - S3 put()事件lambda触发器中可以包含多少条记录?

ruby-on-rails - Rails : Download images from S3, 调整大小并上传回 S3

Amazon S3 上的 SSL 为 "static website"

python - 用python给图像填充颜色