S3 не уважает иерархические пространства имен. Каждая корзина просто содержит ряд сопоставлений от ключа к объекту (вместе со связанными метаданными, списками контроля доступа и т. Д.).
Несмотря на то, что ключ вашего объекта может содержать '/', S3 рассматривает путь как простую строку и помещает все объекты в плоское пространство имен.
По моему опыту, операции LIST занимают (линейно) больше времени по мере увеличения количества объектов, но это, вероятно, симптом увеличения количества операций ввода-вывода, требуемых на серверах Amazon, и по проводам до вашего клиента.
Однако время поиска, похоже, не увеличивается с увеличением количества объектов - скорее всего, это своего рода реализация хеш-таблицы O (1) на их конце - поэтому наличие большого количества объектов в одном сегменте должно быть столь же производительным, как и небольшие сегменты для обычного использования (т. Е. не СПИСКИ).
Что касается ACL, гранты могут быть установлены для корзины и для каждого отдельного объекта. Поскольку иерархии нет, это ваши единственные два варианта. Очевидно, что установка такого количества грантов на уровне корзины значительно уменьшит ваши головные боли администратора, если у вас есть миллионы файлов, но помните, что вы можете только предоставлять разрешения, а не отзывать их, поэтому гранты на уровне корзины должны быть максимальным подмножеством ACL для всех его содержимое.
Я бы рекомендовал разделить на отдельные сегменты для:
- совершенно другой контент - наличие отдельных сегментов для изображений, звука и других данных делает архитектуру более разумной
- существенно разные ACL - если у вас может быть одна корзина с каждым объектом, получающим определенный ACL, или две корзины с разными ACL и без объектно-зависимых ACL, возьмите две корзины.
Ответ на исходный вопрос «Максимальное количество файлов в каталоге в S3»: НЕОГРАНИЧЕН. См. Также ограничение S3 для объектов в ведре .
источник
Я использую структуру каталогов с корнем и, по крайней мере, одним подкаталогом. Я часто использую «дату импорта документа» в качестве корневого каталога. Это может немного упростить управление резервными копиями. Какую бы файловую систему вы ни использовали, вы обязательно достигнете предела количества файлов (практического, если не физического). Вы также можете подумать о поддержке нескольких корней.
источник