CNAME到s3斗亚马逊

时间:2015-12-16 15:46:30

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

我想在amazon.com上使用子域而不是直接url到我的s3桶。因此,我不想通过http://bucket-images.s3-eu-west-1.amazonaws.com/path/to/image.png这样的网址下载图片,而是使用http://assets.domain.com/path/to/image.png。我尝试像这样设置一个CNAME:

CNAME   assets   domain.com    bucket-images.s3-eu-west-1.amazonaws.com

但在设置此CNAME后,当我访问域名时,我从亚马逊收到此类错误:

<Error>
    <Code>NoSuchBucket</Code>
    <Message>The specified bucket does not exist</Message>
    <BucketName>assets.domain.com</BucketName>
    <RequestId>45646DFSDFSFASDF</RequestId>
    <HostId>
        dfasdcvcvd546456454ds5fasdf4ad5f64asdfasdfccdfgvggtg
    </HostId>
</Error>

在这里,他们会告诉他们更改广告名称:https://forums.aws.amazon.com/message.jspa?messageID=237562 但这没有意义。我之前曾参与过一个项目,他使用了一个与子域完全不同的桶名。所以必须有办法...任何可以帮助我的人?​​

2 个答案:

答案 0 :(得分:19)

对于S3,您需要匹配CNAME和存储桶名称:

  

存储桶名称必须与CNAME相同。因此,如果创建CNAME以将images.johnsmith.net映射到images.johnsmith.net.s3.amazonaws.com,那么http://images.johnsmith.net/filename将与http://images.johnsmith.net.s3.amazonaws.com/filename相同

因此,在您的具体示例中,您需要命名存储桶assets.domain.com

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

如果您需要更多灵活性,可以为S3存储桶创建CloudFront分配,并为您的CloudFront分配分配CNAME。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html

答案 1 :(得分:0)

@Samuel Neff的信息:

请记住将您的AWS S3存储桶命名为与Cloudflare CNAME记录相同的名称。否则它将无法工作。

我在这里尝试并为我工作:

转换 https://s3-eu-west-2.amazonaws.com/cdn.domain.comhttp://cdn.domain.com