我需要以下网址
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网站链接更改为我的域链接。
这里有什么不对吗?
感谢您的建议!
答案 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记录。
使用与dns条目相同的名称创建存储桶名称。即 subdomain.mydomain.net
为 subdomain.mydomain.net 创建一个cname记录到 s3.amazonaws.com
根据您计划授予的权限
方法2:S3上的静态网站
如果您要提供静态内容(如图片,文件等),则可以使用“静态网站托管”作为 S3广告。
通过单击存储桶图标()选择您的存储桶,然后选择右侧的“属性”选项卡并展开“静态网站托管”。在“静态网站托管”面板中,选择“启用网站托管”单选按钮并设置索引和错误文档。在这一点上,您将在此面板中看到“端点”名称。简单地创建DNS CNAME记录,并将端点作为值。你可以阅读整个Amazon Walkthrough 这里。
答案 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 )