Индексный индекс S3

Я пытаюсь загрузить мой статический веб-сайт в свой ведро s3. Мне удалось это сделать. Я создал my_bucket, а затем создаю sub_bucket с именем test_folder и тем самым загрузил все мои файлы css, html, js.

Теперь это выглядит так:

 my_bucket/
  test_folder
    index.html

И я смог просмотреть мой index.html, horray!: D. Но мой вопрос заключается в настройке индексного документа, поскольку index.html находится в sub_bucket: test_folder/index.html, когда я пытаюсь его сохранить, дал мне

Суффикс IndexDocument не сформирован правильно

Можно ли связать index.html в sub_bucket? Если да, то как? Если нет, есть ли альтернативный способ достижения этого? У меня есть скриншот ссылка

Ответ 1

Хотя он часто используется для разных целей, индексный документ изначально предполагался, по идее, "индексом" (список каталогов или резюме содержимого) всех файлов в каждой папке, поэтому этот параметр конфигурации указывает индексный документ для возврата для каждой папки во всем ведре, если такой документ существует в папке... это не одна "вещь" для всей корзины в целом.

Если ваша попытка конфигурации была принята S3, это повлияло бы на предполагаемое имя "example.com":

browser address bar          file (object) actually returned
---------------------------  ------------------------------------
http://example.com           example.com/test/index.html
http://example.com/help      example.com/help/test/index.html
http://example.com/foo/test  example.com/foo/test/test/index.html

Кажется очень маловероятным, что это то, что вы на самом деле намеревались.

Однако, как работают индексные документы... они концептуально предназначены для связи с другими вещами на каждом уровне иерархии каталогов, что, конечно же, может быть фактическим списком файлов или может быть "индекс" в гораздо более широком и неопределенном и общем смысле любой страницы, такой как целевая страница, которую вы хотите, чтобы посетитель увидел, когда они переходят в конкретный "каталог" на вашем сайте, что, конечно, в современной сети обычно не концептуализируется как "каталог", а скорее как "страница".

Таким образом, индексный документ должен быть немедленно под тем же разделителем / и не может содержать дополнительный / в пределах своей собственной спецификации.

Индексный документ example.com должен быть сохранен в example.com/index.html(при условии, что "index.html" - это выбранное вами имя файла индекса) - он должен храниться в "каталоге", который он индексирует, как на обычном веб-сервере, где в некоторых конфигурациях веб-сервер фактически отображает список каталогов файлов, а страница "index" заменяет этот список каталогов в случаях, когда фактически существует страница "index". Разумеется, S3 не имеет функций страницы списка каталогов по умолчанию.

http://docs.aws.amazon.com/AmazonS3/latest/dev/IndexDocumentSupport.html

В отличие от документа индекса документ ошибки, если вы его настроите, является глобальной конфигурацией, которая используется независимо от того, где, внутри корзины, происходит 404, поэтому в этой записи поддерживаются косые черты. Консольные подсказки AWS легки на намеках относительно характера двух записей, которые настолько различны по своему поведению, что они, вероятно, должны быть более разделены визуально.


Вы заметите, что "суб-ведро" не является фактическим термином, для того, что вы описываете, который является объектом с разделителями в его ключе (пути), который дает вид вложенности в каталог или папку.

Для ясности я использовал слова "папка" и "каталог" очень случайно во всем этом ответе с обычным значением... но для технической точности я упомянул, что объекты S3 на самом деле не хранятся внутри иерархический стиль "в каталогах". Он появляется таким образом, и для практических целей он работает именно так; однако на самом деле это тот символ /, хотя он близок к тому, чтобы быть просто другим символом в ключе объекта, хотя он получает какое-то особое отношение как разделитель из-за его обычного использования в качестве разделителя каталогов. В отличие от некоторых более обычных файловых систем, количество "файлов в каждой директории" не представляет проблемы производительности S3 и не нуждается в управлении так же, как это необходимо в обычной файловой системе, когда существует большое количество файлов, поскольку S3 внутренне хэширует ключ ( "путь" ) каждого объекта для своей внутренней логики разбиения на разделы.

Ответ 2

Я пытаюсь сделать то же самое (служить static from s3), и чтение этого сообщения заставило меня понять, что вам нужно поместить индексный файл (например, index.html) в ведро вне любых папок.

У меня был индексный документ в папке шаблонов. Я прочитал документацию, но я был так расстроен, что не мог понять, что это действительно говорит. Иногда самые глупые ошибки являются самыми трудными для устранения неполадок. Надеюсь, это поможет кому-то.

Ответ 3

У меня также была эта проблема. Основываясь на ответе Майкла, я разработал эту работу:

В свойствах ведро Amazon S3 задайте значение Index Document: что-то произвольное (я использовал 'index.htm' и не имел файла index.htm, присутствующего в корневом каталоге. Документ с ошибкой: значение, куда вы хотите отправить пользователя (test_folder/index.html в вашем случае).

Помните, что любое 404 сообщение об ошибке на вашем сайте будет отправлено на указанную страницу. Я знаю, что это ужасная работа, но, похоже, для меня это работает. Любые другие предложения с благодарностью приняты!

Ответ 4

попробуйте заполнить index.html в ячейке "Index Document".