Список каталогов на статическом веб-сайте S3 - PullRequest
35 голосов
/ 13 февраля 2012

Я настроил корзину S3 для размещения статических файлов.

При использовании конечной точки веб-сайта (http: //.s3-website-us-east-1.amazonaws.com/): это заставляет меня установить индексный файл. Когда файл не найден, он выдает ошибку, а не выводит содержимое каталога.

При использовании конечной точки s3 (.s3.amazonaws.com): Я получаю список файлов в формате XML, но мне нужен список HTML, чтобы пользователи могли щелкнуть ссылку на файл.

Я попытался установить разрешения для всех файлов и самого контейнера на «Список» для «Все» в консоли AWS, но все равно не повезло.

Я также попробовал некоторые из альтернатив javascript, но они либо не работают по URL-адресу веб-сайта (который перенаправляет в индексный файл), либо просто не работают вообще. В крайнем случае, свернутый список Javascript будет лучше, чем ничего, но я не нашел хорошего.

Возможно ли это? Если да, мне нужно изменить права доступа, ACL или что-то еще?

Ответы [ 7 ]

31 голосов
/ 26 марта 2013

Я создал простой фрагмент JS, который создает индекс каталога в стиле HTML, который вы ищете: https://github.com/rgrp/s3-bucket-listing

В README есть специальные инструкции по работе с корзинами Amazon S3 «на сайте»: https://github.com/rgrp/s3-bucket-listing#website-buckets

Вы можете увидеть живой пример скрипта в действии на этой корзине s3 (в режиме веб-сайта): http://data.openspending.org/

8 голосов
/ 18 июля 2014

Существует также это решение: https://github.com/caussourd/aws-s3-bucket-listing

Похоже на https://github.com/rgrp/s3-bucket-listing, но я не смог заставить его работать с Internet Explorer.Так что https://github.com/caussourd/aws-s3-bucket-listing работает с IE, а также добавляет возможность упорядочивать файлы по именам, размеру и дате.С другой стороны, он не следует папкам: отображаются только файлы одного уровня.

5 голосов
/ 18 мая 2012

Это может решить вашу проблему.Настройки безопасности для группы «Все»: (для этого вам нужно программное обеспечение bucketexplorer.com)

Если вы обмениваетесь файлами HTTP, вы можете или не хотите, чтобы люди могли просматривать содержимое корзины (папки)..) Если вы хотите, чтобы содержимое корзины отображалось в списке, когда кто-то вводит имя корзины (http://s3.amazonaws.com/bucket_name/),, то отредактируйте список контроля доступа и предоставьте группе «Все» уровень доступа «Чтение» (и аналогично с содержимым корзины).Вы не хотите, чтобы список содержимого корзины мог отображаться в списке, но хотите поделиться файлом внутри него, отключить доступ на чтение для группы «Все» для самого контейнера, а затем включить доступ на чтение для отдельных файлов в этом сегменте.

4 голосов
/ 17 января 2014

Использование другого подхода на основе чистого JavaScript и AWS SDK JavaScript API. Не нужен PHP или другой движок, просто чистый веб-сайт (Apache или даже IIS).

https://github.com/juvs/s3-bucket-browser

Не предназначен для развертывания в вашем собственном ведре (для меня нет смысла).

Используя новых пользователей IAM от AWS, вы можете обеспечить более конкретный и безопасный доступ к своим корзинам. Не нужно публиковать ваше ведро на веб-сайте и публиковать его.

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

Надеюсь, эта помощь тоже!

4 голосов
/ 23 июля 2012

Я нашел s3browser , что позволило мне настроить каталог на главном веб-сайте, который позволял просматривать корзину s3.Он работал очень хорошо и был очень прост в настройке.

4 голосов
/ 23 июля 2012

У меня была похожая проблема, и я создал решение JavaScript-and-iframe, которое очень хорошо работает для перечисления каталогов в файлах сайта S3. Вам просто нужно добавить пару файлов .html в каталог, который вы хотите просмотреть. Вы можете найти это здесь: https://github.com/adam-p/s3-file-list-page

3 голосов
/ 22 августа 2017

Я создал гораздо более простое решение. Просто поместите файл index.html в корень вашей папки, и он сделает эту работу. Конфигурация не требуется. https://github.com/prabhatsharma/s3-directorylisting

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...