2016-03-31 3 views
4

Ich habe eine Implementierung geschrieben, um vorzeichenbehaftete URLs für einen Bucket auf aws-s3 zu generieren. Es funktioniert gut, um einzelne Dateien/Objekte zu erhalten.Vor-signierte URL für mehrere Dateien?

Wie würde ich darüber gehen, um vor-signierte URLs für ganze Verzeichnisse zu generieren? Lass es so aussehen, auf meinem s3-Bucket gibt es mehrere Ordner mit eigenen kleinen HTML5-Anwendungen. Jeder Ordner verfügt über einen eigenen Satz von HTML, CSS, JS sowie Mediendateien. Ich würde in diesem Fall keine zuvor signierte URL für ein einzelnes Objekt generieren.

Wenn ich eine vorab signierte URL für eine einzelne Datei gebe, zum Beispiel: eine index.html für einen Ordner, müsste diese Datei auch css, js und Mediendateien laden. Dateien, für die wir keine signierte URL haben.

Ich bin einfach nicht sicher, wie man dies umsetzen soll.

+0

Ist dies für eine statische Website? – helloV

+0

Ja ist es. Mir ist bewusst, dass eine vorab signierte URL nur für einzelne Objekte gilt. Ich verwende derzeit statische Hosting als Workaround, aber es gibt Verzeichnisse, die eine Autorisierung erfordern. Wenn ich durch die aws docs schaue, könnte ich IAM-Benutzer erstellen, die gut funktionieren würden, da ich sie gruppieren kann, aber es klingt wie für Dev-Zwecke, nicht unbedingt für Endnutzer. – nkl

Antwort

0

Erste Dinge zuerst: AWS S3 ist ein Schlüsselwertspeicher, jedes Objekt aaa/bbb/ccc/ddd/index.html ist nur ein Name. Es gibt kein Konzept von "Ordnern" (obwohl Sie möglicherweise den falschen Eindruck haben, dass sie von der Benutzeroberfläche existieren).

Um eine einzelne präsignierte URL für mehrere "Dateien" zu erstellen, müssen Sie eine Vorverarbeitung durchführen. Ziehen Sie alle erforderlichen Dateien lokal, zippen Sie sie und legen Sie Zip-Archiv auf S3, dann vordefinierte URL von Zip-Archiv generieren.

0

Nein. Eine vorzeichenbehaftete URL ist nur für ein Objekt gültig.