S3 berücksichtigt keine hierarchischen Namespaces. Jeder Bucket enthält einfach eine Reihe von Zuordnungen von Schlüssel zu Objekt (zusammen mit zugehörigen Metadaten, ACLs usw.).
Obwohl der Schlüssel Ihres Objekts möglicherweise ein '/' enthält, behandelt S3 den Pfad als einfache Zeichenfolge und fügt alle Objekte in einen flachen Namespace ein.
Nach meiner Erfahrung dauern LIST-Vorgänge (linear) länger, wenn die Anzahl der Objekte zunimmt. Dies ist jedoch wahrscheinlich ein Symptom für die erhöhte E / A, die auf den Amazon-Servern und auf dem Weg zu Ihrem Client erforderlich ist.
Die Suchzeiten scheinen sich jedoch nicht mit der Anzahl der Objekte zu erhöhen - es handelt sich höchstwahrscheinlich um eine Art O (1) -Hashtabelle-Implementierung am Ende -, sodass viele Objekte im selben Bucket für den normalen Gebrauch genauso leistungsfähig sein sollten wie kleine Buckets (d. H. keine Listen).
Für die ACL können Zuschüsse für den Bucket und für jedes einzelne Objekt festgelegt werden. Da es keine Hierarchie gibt, sind dies Ihre einzigen beiden Optionen. Wenn Sie so viele Bucket-Wide-Grants festlegen, werden Ihre Administrationsprobleme natürlich massiv reduziert, wenn Sie über Millionen von Dateien verfügen. Denken Sie jedoch daran, dass Sie nur Berechtigungen erteilen und nicht widerrufen können. Daher sollten die Bucket-Wide-Grants die maximale Teilmenge der ACL für alle sein seinen Inhalt.
Ich würde empfehlen, in separate Eimer aufzuteilen für:
- Ganz andere Inhalte - separate Buckets für Bilder, Ton und andere Daten sorgen für eine vernünftigere Architektur
- signifikant unterschiedliche ACLs - Wenn Sie einen Bucket mit jedem Objekt haben können, das eine bestimmte ACL empfängt, oder zwei Buckets mit unterschiedlichen ACLs und ohne objektspezifische ACLs, nehmen Sie die beiden Buckets.
Die Antwort auf die ursprüngliche Frage "Max. Dateien pro Verzeichnis in S3" lautet: UNBEGRENZT. Siehe auch S3-Beschränkung auf Objekte in einem Bucket .
quelle
Ich benutze eine Verzeichnisstruktur mit einem Stamm und dann mindestens einem Unterverzeichnis. Ich verwende oft "Dokumentimportdatum" als Verzeichnis unter dem Stammverzeichnis. Dies kann die Verwaltung von Backups etwas vereinfachen. Unabhängig davon, welches Dateisystem Sie verwenden, müssen Sie eventuell ein Limit für die Anzahl der Dateien erreichen (ein praktisches, wenn nicht ein physisches Limit). Sie könnten auch darüber nachdenken, mehrere Wurzeln zu unterstützen.
quelle