Я занимаюсь обслуживанием своего статического сайта с помощью Amazon S3. Я создал ведро и загрузил свои файлы; на вкладке "Веб-сайт" в консоли управления AWS я проверил "Включено" и ввел index.html в поле "Index Document". У меня есть следующая политика ведра:
{
"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 при запросе имени каталога?