Amazon.comのs3バケットへの直接URLではなく、サブドメインを使用したいのですが。したがって、http://bucket-images.s3-eu-west-1.amazonaws.com/path/to/image.png
などのURLを介して画像をダウンロードする代わりに、http://assets.domain.com/path/to/image.png
を使用したいと思います。私はこのようにCNAMEを設定しようとしました:
CNAME assets domain.com bucket-images.s3-eu-west-1.amazonaws.com
しかし、このCNAMEを設定した後、ドメインにアクセスすると、Amazonからそのようなエラーを受け取ります。
<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 しかし、それは意味がありません。私は以前サブプロジェクトとはまったく異なるバケット名を使用するプロジェクトに取り組みました。だから、方法がなければなりません...私を助けることができる人は誰ですか?
S3の場合、CNAMEとバケット名が一致する必要があります。
バケット名はCNAMEと同じである必要があります。したがって http://images.johnsmith.net/filename は http://images.johnsmith.net.s3.amazonaws.com/filename と同じですCNAMEは、images.johnsmith.netをimages.johnsmith.net.s3.amazonaws.comにマップするために作成されました
したがって、具体的な例では、バケットに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
@Samuel Neffの情報に追加:
AWS S3バケットには、Cloudflare CNAMEレコードと同じ名前を付けてください。そうしないと機能しません。
ここで私は試し、私のために働きました:
https://s3-eu-west-2.amazonaws.com/cdn.domain.com を http://cdn.domain.com に変換