S3 разрешить публичный каталог родительской папки?
В настоящее время у меня есть публичные разрешения для одного из моих ведер S3, например:
{
"Version": "2012-10-17",
"Id": "Policy1493660686651",
"Statement": [
{
"Sid": "Stmt1493660682556",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::polodata/*"
}
]
}
Когда пользователь переходит к определенному файлу, например: https://s3-us-west-2.amazonaws.com/polodata/ETHBTC.csv
, он предлагает пользователю загрузить-что нормально. Однако, когда они переходят к: https://s3-us-west-2.amazonaws.com/polodata/
(без указанного файла), он возвращает XML-страницу.
Что мне нужно изменить, чтобы последний вернул страницу списка каталогов?
1 ответ:
Вы не получите страницу списка каталогов из Amazon S3 при доступе к URL-адресу. Наиболее близким является XML-список объектов, для которых необходимо предоставить разрешение
ListObjects
на политику корзины. Это выглядит так:Этот XML-файл, по-видимому, не содержит никакой информации о стиле, связанной с ним. Дерево документов показано ниже.
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>my-bucket</Name> <Prefix/> <Marker/> <MaxKeys>1000</MaxKeys> <IsTruncated>false</IsTruncated> <Contents> <Key>foo.txt</Key> <LastModified>2017-05-01T21:07:13.000Z</LastModified> <ETag>"9311482f31be49fb2f41be9e16097a9c"</ETag> <Size>213</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>my-folder/</Key> <LastModified>2017-05-01T21:07:18.000Z</LastModified> <ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag> <Size>0</Size> <StorageClass>STANDARD</StorageClass> </Contents> <Contents> <Key>my-folder/bar.txt</Key> <LastModified>2017-05-01T21:07:30.000Z</LastModified> <ETag>"9311482f31be49fb2f41be9e16097a9c"</ETag> <Size>213</Size> <StorageClass>STANDARD</StorageClass> </Contents> </ListBucketResult>
Некоторые люди придумали творческие способы имитации списка каталогов, например: список каталогов в S3 Static Сайт
Помните-Amazon S3 не является традиционным веб-сервером. Этослужба хранения объектов , которая также может обслуживать контент в Интернете. Таким образом, он не будет вести себя точно так же, как обычный веб-сервер.
Смотрите также: Как настроить корзину S3 для статического хостинга веб-сайтов?