Перенаправлять каталоги в отдельные корзины s3?

#amazon-web-services #amazon-s3

Вопрос:

У меня есть приложение Laravel, размещенное в домене. У меня есть несколько динамических каталогов, т. е.:

example.com/directory

example.com/random

example.com/moon

Я хотел бы, чтобы каждый из этих каталогов разрешался в другой сегмент s3, маскируя URL-адрес (я хочу видеть URL-адрес выше, а не URL-адрес сегмента s3). Каков наилучший способ добиться этого? Я мог бы создать основную корзину и хост example.com на нем и создайте правила маршрутизации в этом сегменте s3 для перенаправления на другие сегменты s3 (я думаю). Как выглядят эти правила маршрутизации? Я не смог найти указания в документации AWS, в которой показано, как перенаправлять на другие сегменты. Есть ли другой, более простой способ сделать это?

Стоит отметить, что приложению Laravel, возможно, не потребуется участвовать в фактической маршрутизации в такой степени, как использование AWS sdk для динамической настройки каталогов.

Ответ №1:

Вы должны использовать Route53 вместе с S3, включающим статический хостинг веб-сайтов.

Подробную информацию о статическом хостинге веб-сайтов в S3 вы можете найти здесь.

После этого выберите Route53 в качестве службы в консоли AWS.

Выберите свою размещенную зону и добавьте набор записей CNAME, в поле значение введите URL-адрес конечной точки корзины S3, а в поле Имя введите URL-адрес, который вы хотите указать на корзину S3.

Для использования Route53 вы можете прочитать этот документ AWS.

Ответ №2:

Лучшим способом было бы создать дистрибутив CloudFront (CF) с тремя различными источниками. Тогда каждый источник будет реагировать на разные пути происхождения, которые приведут к разным ведрам.

example.com может быть определен в Route53 с псевдонимом записи в дистрибутиве CF. Преимущество использования CF с S3 заключается в том, что вы не только можете ускорить работу своего веб-сайта (CF-это CDN), но также можете хранить свои корзины и объекты в тайне:

Комментарии:

1. Я пробовал этот подход, но проблема, с которой я сталкиваюсь, — это корневой домен (example.com) пытается обработать все запросы в своем ведре. Поэтому, когда я иду в example.com/directory он ищет папку с именем каталог в корзине корневого домена вместо использования корзины, связанной с исходным путем для каталога /.

2. @JaysonLane Вам придется задать новый вопрос, специально посвященный этой проблеме, с подробностями вашей настройки. Но использование CF — это правильный подход.