如何将域名或子域别名为Amazon S3 - 显示子域中的图像

时间:2016-05-08 20:28:35

标签: amazon-web-services amazon-s3 dns cname

我在Amazon s3上有一个存储桶,其中包含一些jpeg图像。出于搜索引擎优化的目的,我想通过 http://images.example.com 提供我的图片

Currenly我的桶名称看起来不像子域名。它只包含 my-images

等短划线

this文章中,作者说:创建一个看起来像子域的存储桶。

那么我可以使用此存储桶名称为我的子域名添加CNAME记录吗?

此解决方案也支持作者的想法:https://stackoverflow.com/a/18766082/1848929

我必须重命名我的水桶吗?是否可以重命名一个桶?

2 个答案:

答案 0 :(得分:1)

您需要创建名为images.example.com

的存储分区

然后您需要在DNS中对其进行CNAME。

images.example.com -> images.example.com.s3.amazonaws.com.

  

是否可以重命名存储桶?

不,一旦创建了桶,您就无法更改其名称。解决方法是创建一个新存储桶并将文件复制到其中。

答案 1 :(得分:1)

您的存储桶名称必须与指向存储桶的CNAME(或别名)记录匹配。

  

存储桶名称必须与CNAME

相同      

http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

无法重命名存储桶。在你引用的另一个答案中,我怀疑这是对#34; rename,"这个词的随意使用。这实际上意味着"创建一个具有不同名称的桶,"这是因为:

  

创建存储桶后,无法更改其名称。

     

http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html

因此,要直接从一个域指向您的某个域的DNS条目,您需要一个具有匹配名称的存储桶。

但是,有一种替代方案,它不需要您更改存储桶的名称,无论如何这可能是一个好主意:您可以在存储桶前使用CloudFront CDN。

如果您创建CloudFront分配,您可以告诉CloudFront您要指向哪个DNS名称,然后配置CloudFront以从您指定的存储桶中提供请求 - 在这种情况下,该存储桶的名称为no更重要的是,因为CloudFront会自动处理主机名到存储区的映射。

这进一步为您提供了将您的图像资源缓存到更靠近网站常用访问者的潜在性能增强,并允许您将子域名作为主机名使用SSL(使用来自Amazon Certificate Manager的免费SSL证书)可以使用CloudFront + S3,而不仅仅是S3。