使用Amazon Route 53为S3存储桶设置CNAME

时间:2012-10-10 17:27:05

标签: amazon-s3 amazon-web-services amazon-route53

我需要以下网址

http://liangpai.s3.amazonaws.com/uploadImage/shareImage/2012-10/506dc1ef71dcf.png

显示为:

http://imgs.liangpai.me/uploadImage/shareImage/2012-10/506dc1ef71dcf.png

我的S3名称是“liangpai”。在Route 53上,我创建了一个名为“imgs”的新CNAME,我输入的值是“liangpai.s3.amazonaws.com”

在此之后,我没有看到S3网站链接更改为我的域链接。

这里有什么不对吗?

感谢您的建议!

3 个答案:

答案 0 :(得分:15)

S3 CNAME要求存储桶名称与主机名匹配。如果您希望从imgs.langpai.me提供S3,则需要创建名为imgs.langpai.me的存储桶。有关详情,请参阅the S3 documentation

您可以创建CloudFront分配以回复imgs.langpai.me(请参阅CloudFront CNAME support)并将请求转发给langpai.s3.amazonaws.com。当然,这也会产生CloudFront费用。

答案 1 :(得分:6)

方法1:S3按行名称指示CNAME

您可以按照以下步骤按存储桶名称创建CNAME记录。

  1. 使用与dns条目相同的名称创建存储桶名称。即 subdomain.mydomain.net

  2. subdomain.mydomain.net 创建一个cname记录到 s3.amazonaws.com

  3. 根据您计划授予的权限

  4. 为您的存储分区设置权限

    方法2:S3上的静态网站

    如果您要提供静态内容(如图片,文件等),则可以使用“静态网站托管”作为 S3广告

    通过单击存储桶图标(enter image description here)选择您的存储桶,然后选择右侧的“属性”选项卡并展开“静态网站托管”。在“静态网站托管”面板中,选择“启用网站托管”单选按钮并设置索引和错误文档。在这一点上,您将在此面板中看到“端点”名称。简单地创建DNS CNAME记录,并将端点作为值。你可以阅读整个Amazon Walkthrough 这里。

    enter image description here

答案 2 :(得分:1)

试试这个

使用您自己的存储桶CNAME:

echo S3::getAuthenticatedURL("s3bucket.mydomain.com", $uri, 3600, true);

但你把putobject文件检查为每个人的读取 preisssion类型:

  

S3 :: ACL_PUBLIC_READ

$ s3-> putObjectFile ($ tmp,$ bucketname,$ path。$ filename, S3 :: ACL_PUBLIC_READ