Benötigen wir eine Verzeichnisstrukturlogik zum Speichern von Millionen von Bildern auf Amazon S3 / Cloudfront?

8

Um Millionen potentieller Bilder zu unterstützen, haben wir diese Art von Verzeichnisstruktur bereits früher verfolgt:

/profile/avatars/44/f2/47/48px/44f247d4e3f646c66d4d0337c6d415eb.jpg

Der Dateiname ist md5 Hashed, dann extrahieren wir die ersten 6 Zeichen in der Zeichenfolge und erstellen daraus die Ordnerstruktur.

Also im obigen Beispiel der Dateiname:

44f247d4e3f646c66d4d0337c6d415eb.jpg

erzeugt eine Verzeichnisstruktur von:

%Vor%

Wir haben das immer getan, um die Anzahl der Fotos in jedem einzelnen Verzeichnis zu minimieren, um letztendlich die Dateisystemleistung zu unterstützen.

Unsere neue App verwendet jedoch Amazon S3 mit Cloudfront

Nach meinem Verständnis sind alle Ordner, die Sie auf Amazon S3 erstellen, nur Verweise und keine Verzeichnisse im Dateisystem.

Wenn das richtig ist, ist es immer noch empfehlenswert, in Ordner / Verzeichnisse in der obigen oder ähnlichen Methode zu teilen? Oder können wir diese Komplexität einfach in unserem Anwendungscode entfernen und Bildlinks wie folgt bereitstellen:

%Vor%

Bedenken Sie, dass diese App Millionen von Fotos in zehn Millionen Portionen anbieten soll.

Jede Anleitung würde sehr geschätzt werden.

    
gordyr 23.10.2013, 12:35
quelle

2 Antworten

9

Obwohl S3-Ordner grundsätzlich nur eine andere Möglichkeit sind, den Schlüsselnamen zu schreiben (wie E.J.Brennan bereits in seiner Antwort gesagt hat), sind Gründe, über die Namensgebung Ihrer "Ordner" nachzudenken.

Mit Ihrer aktuellen Anzahl von Fotos und wahrscheinlich Ihren Zugriffsmustern könnte es sinnvoll sein, über eine Möglichkeit nachzudenken, die S3-Schlüsselnamen-Lookups zu beschleunigen, um sicherzustellen, dass die Vorgänge auf Fotos über mehrere Partitionen verteilt werden. Es gibt einen tollen Artikel zum AWS-Blog erklären alle Details.

    
j0nes 23.10.2013, 14:23
quelle
3

Sie müssen diese Struktur in s3 nicht einrichten, es sei denn, Sie tun dies zu Ihrer eigenen Bequemlichkeit. Alle Ordner, die Sie auf s3 erstellen, sind wirklich nur eine Illusion für Sie, die Dateien werden in einem großen fortlaufenden Container gespeichert. Wenn Sie also keinen Grund haben, die Dateien in einer Pseudo-Ordner-Hierarchie zu organisieren, dann tun Sie es nicht stören.

Wenn Sie den Zugriff auf verschiedene Personengruppen basierend auf Ihrer Ordnerstruktur steuern wollten, könnte das ein Grund sein, die Struktur beizubehalten, aber ansonsten gibt es wahrscheinlich keinen Nutzen /

    
E.J. Brennan 23.10.2013 13:52
quelle