Maksymalna ilość plików w katalogu w S3

Gdybym miał milion obrazów, czy lepiej byłoby przechowywać je w jakiejś hierarchii folderów/podkatalogów, czy po prostu wrzucić je wszystkie prosto do wiadra (bez żadnych folderów)?

Czy wrzucenie wszystkich obrazów do zasobnika bez hierarchii spowolni operacje na liście?

Czy istnieje znaczny narzut w tworzeniu folderów i podfolderów w locie i konfigurowaniu ich ACL (programowo mówiąc)?

Author: Powerlord, 2008-12-26

3 answers

S3 nie respektuje hierarchicznych przestrzeni nazw. Każdy kubełek zawiera po prostu szereg mapowań od klucza do obiektu (wraz z powiązanymi metadanymi, ACL itd.).

Mimo że klucz obiektu może zawierać'/', S3 traktuje ścieżkę jako zwykły łańcuch znaków i umieszcza wszystkie obiekty w płaskiej przestrzeni nazw.

Z mojego doświadczenia wynika, że operacje na listach trwają (liniowo) dłużej wraz ze wzrostem liczby obiektów, ale jest to prawdopodobnie objaw zwiększonego We / Wy wymaganego na serwerach Amazon i do twojego klienta.

Wydaje się jednak, że czasy wyszukiwania nie zwiększają się wraz z liczbą obiektów - najprawdopodobniej jest to jakaś implementacja o(1) hashtable na ich końcu - więc posiadanie wielu obiektów w tym samym zasobniku powinno być tak samo wydajne jak małe zasobniki dla normalnego użytkowania (tzn. nie listy).

Jeśli chodzi o ACL, granty można ustawić na wiadrze i na każdym pojedynczym obiekcie. Ponieważ nie ma hierarchii, są to jedyne dwie opcje. Oczywiście, ustawiając jak najwięcej kubełków granty znacznie zmniejszą ból głowy administratora, jeśli masz miliony plików, ale pamiętaj, że możesz tylko przyznać uprawnienia, a nie je cofnąć, więc granty na całym kubełku powinny być maksymalnym podzbiorem ACL dla całej jego zawartości.

Polecam podział na osobne wiadra dla:

  • zupełnie inna zawartość - posiadanie oddzielnych wiader dla obrazów, dźwięku i innych danych sprawia, że bardziej zdrowa Architektura
  • znacząco różne ACLs-jeśli można miej jedno wiadro z każdym obiektem otrzymującym określony ACL lub dwa wiadra z różnymi ACL i bez obiektowych ACL, weź dwa wiadra.
 115
Author: James Brady,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-27 00:34:33

Odpowiedź na oryginalne pytanie "Max files per directory in S3" to: UNLIMITED. Patrz również S3 ograniczenie do obiektów w wiadrze .

 51
Author: Vacilando,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:21

Używam struktury katalogów z korzeniem, a następnie co najmniej jednym podkatalogiem. Często używam "document import date" jako katalogu pod głównym. Może to ułatwić zarządzanie kopiami zapasowymi. Niezależnie od systemu plików, którego używasz, jesteś zobowiązany do osiągnięcia limitu liczby plików (praktycznego, jeśli nie fizycznego limitu) w końcu. Możesz również pomyśleć o wspieraniu wielu korzeni.

 -4
Author: Jim Blizard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-26 20:16:43