简体   繁体   中英

Setting up a CNAME for an S3 bucket using Amazon Route 53

I need the following url

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

showing as:

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

My S3 bucket name is “liangpai”. On Route 53, I created a new CNAME named “imgs”, the value I entered is “liangpai.s3.amazonaws.com”

After this I don't see the S3 web link changes to my domain link.

Anything wrong here?

Thanks for your advice!

S3 CNAMEs require the bucket name to match the host name. If you want S3 to serve from imgs.langpai.me , you need to create a bucket named imgs.langpai.me . See the S3 documentation for more.

You could create a CloudFront distribution to answer to imgs.langpai.me (see CloudFront CNAME support ) have it and forward requests to langpai.s3.amazonaws.com . This would, of course, also incur CloudFront charges.

Method 1 : S3 direct CNAME by bucket name

You can create a CNAME record by bucket name following these steps.

  1. Create a bucket name using the same name you will use for your dns entry. ie subdomain.mydomain.net

  2. Create a cname record for subdomain.mydomain.net to s3.amazonaws.com

  3. Set permissions on your bucket based on the access you plan to grant

Method 2 : Static Website on S3

If you are serving static content such as images, files, etc. you can use "Static Website Hosting" for your S3 bucket .

Select your bucket by clicking the bucket icon ( 在此输入图像描述 ) and select the "properties" tab on the right and expand "Static Website Hosting". In the Static Website Hosting panel, select the radio button to "Enable website hosting" and set an index and error document. It this point, you will see an "Endpoint" name in this panel. Simple create a DNS CNAME record with the endpoint as the value. You can read the entire Amazon Walkthrough here.

在此输入图像描述

Try this

Using your own bucket CNAME:

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

but you putobject file check for read for Everyone premisssion type:

S3::ACL_PUBLIC_READ

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM