Макс. Файлів на каталог у S3


87

Якби у мене було мільйон зображень, чи було б краще зберігати їх у якійсь ієрархії папок / підпапок або просто скидати їх усі прямо у відро (без будь-яких папок)?

Чи скидання всіх зображень у відро без ієрархії уповільнить операції LIST?

Чи є значні накладні витрати на створення папок та підпапок на льоту та налаштування їх ACL (програмно кажучи)?

Відповіді:


124

S3 не поважає ієрархічні простори імен. Кожне сегмент просто містить кілька зіставлення від ключа до об'єкта (разом із пов'язаними метаданими, списками контролю доступу тощо).

Незважаючи на те, що ключ вашого об'єкта може містити '/', S3 трактує шлях як простий рядок і розміщує всі об'єкти в плоскому просторі імен.

На моєму досвіді, операції LIST займають (лінійно) довше, оскільки кількість об’єктів збільшується, але це, мабуть, є симптомом підвищеного вводу-виводу, необхідного на серверах Amazon, і передачі даних до вашого клієнта.

Однак, здається, час пошуку не збільшується із підрахунком об'єктів - це, швидше за все, якась реалізація хеш-таблиці O (1) на їх кінці - тому наявність багатьох об'єктів в одному сегменті має бути настільки ж продуктивним, як і невеликі сегменти для звичайного використання (тобто не СПИСКИ).

Що стосується ACL, гранти можна встановлювати на сегмент та на кожен окремий об'єкт. Оскільки ієрархії немає, вони єдині два варіанти. Очевидно, що встановлення якомога більшої кількості сегментних грантів суттєво зменшить головний біль адміністратора, якщо у вас є мільйони файлів, але пам’ятайте, що ви можете надавати дозволи, а не відкликати їх, тому гранти на рівні сегмента повинні бути максимальною підмножиною списку контролю доступу для всіх його зміст.

Я б рекомендував розділити на окремі сегменти для:

  • абсолютно різний вміст - наявність окремих сегментів для зображень, звуку та інших даних робить архітектуру більш здоровою
  • суттєво різні ACL - якщо у вас може бути одне сегмент з кожним об’єктом, що отримує певний ACL, або два сегменти з різними ACL і відсутніми об’єктними ACL, візьміть два сегменти.

в S3 є відра, а потім всередині ви можете мати "папки" та "об'єкти", де папка, ймовірно, є об'єктом в очах системи
mwm

14
@mwm ти помиляєшся. "Папки" - це суто приємні інтерфейси, надані будь-яким інструментом, яким ви користуєтесь. Джеймс правильно вважає, що клавіші можуть мати скісні риски, але що s3 взагалі не хвилює - він точно не вважає їх папками.
Ry4an Brase

S3 однозначно оцінює запити на обмеження на основі префіксу шляху, подивіться на офіційні документи: docs.aws.amazon.com/AmazonS3/latest/dev/…
Анатолій

Префікси S3 більше не потрібні і не рекомендуються: aws.amazon.com/about-aws/whats-new/2018/07/…
Aea,


-3

Я використовую структуру каталогів з коренем, а принаймні один підкаталог. Я часто використовую "дату імпорту документа" як каталог під коренем. Це може трохи полегшити управління резервними копіями. Незалежно від файлової системи, яку ви використовуєте, ви з часом зобов’язані досягти межі кількості файлів (практична, якщо не фізична). Ви можете подумати і про підтримку декількох коренів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.