Я пытаюсь обслуживать мой статический сайт с помощью Amazon S3. Я создал ведро и загрузил мои файлы; На вкладке «Веб-сайт» в Консоли управления AWS я установил флажок «Включен» и ввел index.html
в поле «Индексный документ». У меня есть следующая политика ведра:
{
"Version": "2008-10-17",
"Id": "924a2348-de0e-43aa-bb06-83adbcd1db22",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
где у меня есть имя моего ведра вместо my-bucket
. На вкладке «Разрешения» я также предоставил «Всем» возможность списка.
Если я пытаюсь получить доступ к my-bucket.s3.amazonaws.com/index.html
, моя страница (и ее изображения, CSS и т. Д.) Отображаются должным образом. Однако, просто перейдя к my-bucket.s3.amazonaws.com
или my-bucket.s3.amazonaws.com/
, вы получите XML-файл списка каталогов вместо отображения страницы. Если я пытаюсь перейти к my-bucket.s3.amazonaws.com/subdirectory
, я получаю сообщение об ошибке (в XML), в котором говорится, что «указанный ключ не существует». Наиболее странно, если я пытаюсь перейти к my-bucket.s3.amazonaws.com/subdirectory/
(с завершающей косой чертой), страница не загружается, но мой браузер загружает пустой файл с именем download
. (Еще раз, переход к my-bucket.s3.amazonaws.com/subdirectory/index.html
показывает страницу, как и ожидалось.)
Я что-то здесь не так делаю? Как заставить S3 показывать файл index.html
при запросе имени каталога?