it-swarm.com.de

Max. Dateien pro Verzeichnis in S3

Wenn ich eine Million Bilder hätte, wäre es besser, sie in einer Ordner-/Unterordnerhierarchie zu speichern oder sie alle direkt in einen Eimer (ohne Ordner) zu werfen?

Würde das Speichern aller Bilder in einem hierarchielosen Bucket die LIST-Operationen verlangsamen?

Ist das Erstellen von Ordnern und Unterordnern im laufenden Betrieb und das Einrichten ihrer ACLs (programmgesteuert) mit einem erheblichen Aufwand verbunden?

84
Nikhil Gupte

S3 respektiert 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 auf den Amazon-Servern und über die Leitung zu Ihrem Client erforderliche E/A-Erhöhung.

Die Nachschlagezeiten scheinen sich jedoch nicht mit der Anzahl der Objekte zu erhöhen - es handelt sich höchstwahrscheinlich um eine Art O(1) Hashtable-Implementierung an deren Ende - so dass es genau so sein sollte, wenn sich viele Objekte im selben Bucket befinden performant wie kleine Eimer für den normalen Gebrauch (dh nicht LISTs).

Für die Zugriffssteuerungsliste können Berechtigungen für den Bucket und für jedes einzelne Objekt festgelegt werden. Da es keine Hierarchie gibt, haben Sie nur zwei Möglichkeiten. Wenn Sie so viele Bucket-Wide-Berechtigungen festlegen, werden Ihre Verwaltungsprobleme natürlich massiv reduziert, wenn Sie über Millionen von Dateien verfügen. Denken Sie jedoch daran, dass Sie nur grant Berechtigungen erteilen können, diese jedoch nicht widerrufen können maximale Teilmenge der ACL für all ihren Inhalt.

Ich empfehle die Aufteilung in separate Eimer für:

  • ganz andere Inhalte - separate Bereiche für Bilder, Ton und andere Daten sorgen für eine vernünftigere Architektur
  • deutlich 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 keinen objektspezifischen ACLs, nehmen Sie die beiden Buckets.
117
James Brady

Die Antwort auf die ursprüngliche Frage "Max. Dateien pro Verzeichnis in S3" lautet: UNBEGRENZT. Siehe auch S3 beschränkt sich auf Objekte in einem Bucket .

55
Vacilando