Есть ли способ реализовать функциональность index.html с контентом, размещенным на S3?
-
09-06-2019 - |
Вопрос
Есть ли способ сделать S3 по умолчанию страницей index.html?Например.:Мой список объектов ведра:
/index.html
/favicon.ico
/images/logo.gif
Звонок в www.example.com/index.html прекрасно работает!Но если бы кто-то позвонил www.example.com/ мы получим либо 403, либо XML-документ со списком объектов REST в зависимости от того, как настроен ACL на уровне сегмента.
Итак, вопрос:Есть ли способ реализовать функциональность index.html с контентом, размещенным на S3?
Решение
Amazon S3 теперь поддерживает Индексные документы
А индексный документ для ведра можно установить что-то вроде index.html
.При доступе к корню сайта или подкаталогу, содержащему документ с таким именем, возвращается этот документ.
Это чрезвычайно легко сделать с помощью aws cli:
aws s3 website $MY_BUCKET_NAME --index-document index.html
Вы можете установить индексный документ из консоли управления AWS:
Другие советы
Для людей, которые все еще борются с этим спустя 3 года, позвольте мне добавить некоторую важную информацию:
URL-адрес вашего веб-сайта (на который вы должны указать свой DNS) не является
<bucket_name>.s3-us-west-2.amazonaws.com
, но
<bucket_name>.s3-website-us-west-2.amazonaws.com
.
Если вы используете первый, он не будет работать так, как задумано, сколько бы вы ни настраивали Индексный документ.
В качестве конкретного примера рассмотрим:
- http://www-example-com.s3.amazonaws.com/index.html работает.
- http://www-example-com.s3.amazonaws.com/ терпит неудачу с
AccessDenied
. - http://www-example-com.s3-website-us-west-2.amazonaws.com/ работает!
Чтобы получить настоящий адрес веб-сайта, перейдите на свой Консоль управления S3, выберите целевой сегмент, затем Properties
, затем Static Website Hosting
.Он покажет URL-адрес веб-сайта, который будет работать.
Вы можете легко решить эту проблему с помощью Amazon CloudFront. связь.В Amazon CloudFront вы можете изменить корневой объект.Скачать менеджер можно здесь:m1.mycloudbuddy.com/downloads.html.
Прошло много времени, и этот вопрос задавался, и Amazon S3 менял свой интерфейс.Я хотел бы ответить обновленными скриншотами.
Нам нужно включить «статический веб-хостинг», чтобы S3 служил веб-хостингом.- Перейдите в свойства -> Нажмите на статический веб -хостинг -> Выберите «Используйте это ведро для размещения веб -сайта» - введите документ Index (index.html по умолчанию), документ ошибки и правила перенаправления, если таковые имеются.
Как ответил в https://stackoverflow.com/a/24377823/3086531, ссылка на веб-хостинг будет
Я бы посоветовал прочитать эта тема с 2006 г. (О подключении разработчиков веб-сервисов Amazon).Кажется, нет простого решения этой проблемы.
Да.использование AWS Cloudfront позволяет назначить файл по умолчанию.
вы можете сделать это, используя DNS WebForwards и клоакинг.просто перейдите к полному пути index.html
www.example.com перенаправляет на http://www.example.com.s3.amazonaws.com и убедитесь, что вы скрываете вывод.