s3桶名称作为OS子域的一部分,但不包含网站,只是代理

问题描述:

我想能够访问我的桶作为bucketname.s3.amazonaws.com而不是s3.amazonaws.com/bucketname,以便我可以轻松地为其设置DNS重定向。s3桶名称作为OS子域的一部分,但不包含网站,只是代理

是最好的(唯一?)方法来做到这一点,以设置S3网站作为一个网站?

AWS Console for bucket

,这样我可以轻松地设置DNS重定向到它

这不完全是如何工作的。简单地将DNS指向存储桶的主机名不会导致存储桶响应该主机名的请求。

为了一个主机名指向DNS一斗,你有两个选择:

您可以创建一个名为斗完全相同一样的主机名 - 例如,如果你想点的图像.example.com添加到存储桶中,存储桶的实际名称必须是images.example.com。 (选项1)

或者,您可以创建CloudFront分配,将其指向存储分区,将所需主机名设置为CloudFront分配上的备用域名,并将您的DNS指向CloudFront。在此配置中,存储桶名称无关紧要。 (选项2)

只有选项2支持SSL。

启用网站托管功能仅与您尝试执行的操作间接相关 - 这将启用重定向和索引文档等功能,并且还会将您需要映射到的端点更改为类似于example-bucket.s3-website-us-west-1.amazonaws.com(取决于存储区域),该值将显示在控制台中。您需要使用您的DNS设置(上面的选项1)或您的CloudFront配置(这将是您的原始域名,上面的选项2)。

+0

我不确定我是否理解选项1.该存储区实际上应该命名为“images.example.com”? (目前,该存储区被命名为“appImageBucket”)是否使用域名作为存储桶名称做某事?[谢谢!] – nycynik

+0

@nycynik使用域名作为存储桶名称是**必填**如果您想要bucket来响应这个主机名的请求(并且你没有使用CloudFront)HTTP没有意识到CNAMEs,Web服务器必须配置为期望在浏览器的地址栏中显示相同的主机名。作品是通过匹配传入的'Host:'头部到存储桶名称:http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html –

+0

存储桶名称中的圆点仅适用于此目的。否则,您不需要它们 - 如果您想在REST端点上使用内置的S3 SSL证书,或者您希望使用传输加速,则存储区名称中不允许有点。请注意,如果您确实使用像'appImageBucket'这样的大写字母的东西 - 你也应该使用r考虑到这一点。混合大小写名称和长度超过63个字符的存储桶名称都是不推荐使用的功能,大多数地区不允许使用。请参阅[存储区限制](http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)。 –