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.
Create a bucket name using the same name you will use for your dns entry. i.e. subdomain.mydomain.net
Create a cname record for subdomain.mydomain.net to s3.amazonaws.com
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)