web-dev-qa-db-ja.com

s3バケットのサブドメインをどのように指定しますか?

おはようございます、

イメージサーバーとしてAmazon s3バケットを使用しています。そして、私は自分のサイトのサブドメイン、このバケットに対処する方法を使用したいと思います。例:画像は次の場所にあります: https://s3-sa-east-1.amazonaws.com/nomeBucket/pasta/imag.png 、この同じリンクからアクセスします。

それはそうでしたか:imagens.mydomain.com.br/folder/imag.pngこれを行う方法はありますか?バケットにサブドメインアドレスを指定しますか? CNAMEとして、Amazonルート53を試しました。私はこれを試しました: https://s3-sa-east-1.amazonaws.com/nomeBucket/

私は昨日テストを受けましたが、どうやらうまくいきませんでした。誰かがすでに似たようなことをしている、および/または私を助ける方法を知っていますか?

注:私はnginxを使用しています。サブドメイン用に構成する必要もありますか?

ありがとうございました

26
samuel_R

カスタムドメイン名と一致するようにバケットの名前を変更する必要があります(例:imagens.mydomain.com.br)、そのドメインをCNAMEとして設定します

<bucket-name>.s3.amazonaws.com.

(あなたの場合imagens.mydomain.com.br.s3.amazonaws.com.

完全な手順はここにあります:

http://docs.aws.Amazon.com/AmazonS3/latest/dev/VirtualHosting.html

36
dcro

完全を期すために、ここで他の回答に基づいて説明します。

コンテンツをCloudflareでキャッシュできるように、バケットをサブドメインに移動しました。

  • 古いS3バケット名:autoauctions
  • 新しいS3バケット名:img.autoauctions.io
  • CNAMEレコード:img.autoauctions.io.s3.amazonaws.com

バケットの名前を変更できないため、すべてのオブジェクトをコピーする必要があります。 AWS CLIでこれを行う方法は次のとおりです。

pip install awscli
aws configure

次に、古いバケットの内容を新しいバケットにコピーします。

aws s3 sync s3://autoauctions s3://img.autoauctions.io

コピーする必要のある1 TBのイメージに対してこれは遅すぎることがわかったため、同時接続の数を増やし、EC2インスタンスから再実行しました。

aws configure set default.s3.max_concurrent_requests 400

同期してください!


バケット内のフォルダーを公開しますか?次のようなバケットポリシーを作成します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::img.autoauctions.io/copart/*"
        },
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::img.autoauctions.io/iaai/*"
        }
    ]
}

そして今、画像がimg.autoauctions.io Cloudflareのキャッシュ経由。

これが一部の人々に役立つことを願っています!

0
Nick Woodhams

Update 2019:AWS SUBDOMAIN hosting in S3

今日の時点で、AWS S3がホストする静的ウェブサイトのサブドメインが正常に機能するように次の手順が機能しました。

  1. サブドメイン名でバケットを作成します。この例では、www。subtest。mysite.com

aws bucket

注:バケットの[権限]タブで確認してください:

1.Block public access(バケット設定)2.Access Control List&3.Bucketポリシーが適切に設定され、バケットがパブリックであることを確認します。 (ルートドメインバケットに対して既にこれを行っていると仮定すると、これらの設定はこのサブドメインバケットにミラーリングできます)

S3 bucket permissions

  1. index.htmlファイルをバケットにアップロードします

index aws bucket

  1. ドメインプロバイダーでCNAMEレコードを作成します CNAME record in namecheap
0
zennni