Как назначить субдомен для ведра s3?

Доброе утро,

Я использую ведро amazon s3 в качестве сервера изображений. И я хочу использовать субдомен моего сайта, как обращаться с этим ведром. например: картинка теперь находится в https://s3-sa-east-1.amazonaws.com/nomeBucket/pasta/imag.png, и я получаю доступ к ней по этой же ссылке.

Было бы так: imagens.mydomain.com.br/folder/imag.png Есть ли способ сделать это? назначить адрес поддомена в ведро? Я пробовал маршрут амазонки 53, как CNAME. Я пробовал это: https://s3-sa-east-1.amazonaws.com/nomeBucket/

Вчера я прошел тест, но, видимо, это не сработало. Кто-то уже сделал что-то подобное и/или знает, как мне помочь?

Примечание. Я использую nginx. также нужно настроить его для субдомена?

Спасибо

Ответы

Ответ 1

Вам нужно переименовать свое ведро в соответствии с пользовательским именем домена (например, 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

Ответ 2

Я собираюсь основываться на других ответах здесь для полноты.

Я переместил свое ведро на поддомен, чтобы содержимое могло кэшироваться Cloudflare.

  • Старый S3 Bucket Name: автоавтобусы
  • Новое имя S3 Bucket: img.autoauctions.io
  • Запись CNAME: img.autoauctions.io.s3.amazonaws.com

Теперь вам нужно скопировать все ваши объекты, так как вы не можете переименовать ведро. Вот как это сделать с помощью AWS CLI:

pip install awscli
aws configure
  • Перейдите на https://console.aws.amazon.com/iam/home и создайте пользователя или перейдите к существующему пользователю.
  • Перейдите на вкладку " Учетные данные пользователя"
  • Нажмите Создать ключ доступа. Скопируйте секрет.
  • Вот список регионов AWS.

Теперь вы скопируете содержимое своего старого сегмента в новый.

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

Я обнаружил, что это слишком медленно для 1 ТБ изображений, которые мне нужно было скопировать, поэтому я увеличил количество одновременных подключений и повторно запустил экземпляр EC2.

aws configure set default.s3.max_concurrent_requests 400

Синхронизируйте это!


Хотите сделать папки в вашем каталоге общедоступными? Создайте политику bucket, как это:

{
    "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.

Надеюсь, это поможет некоторым людям!

Ответ 3

Обновление 2019: хостинг AWS SUBDOMAIN в S3

На сегодняшний день были предприняты следующие шаги для создания успешно работающего субдомена для статического веб-сайта AWS S3:

  1. Создайте корзину с именем субдомена. В этом примере www. Субтест.mysite.com

aws bucket

Примечание: Убедитесь, что на вкладке "Разрешение" ведро:

1. Заблокировать публичный доступ (настройки корзины). 2. Список контроля доступа и политика 3.Bucket соответствующим образом установлены, чтобы убедиться, что корзина общедоступна. (Предполагая, что вы уже сделали это для своего сегмента корневого домена, эти настройки могут быть отражены в этом сегменте субдомена)

S3 bucket permissions

  1. Загрузите файл index.html в корзину

index aws bucket

  1. Создайте запись CNAME с вашим провайдером домена CNAME record in namecheap