2017-06-06 6 views
1

Ich benutze eine AWS Lambda-Funktion, um eine Datei zu erstellen und speichern Sie es in meinem Bucket auf S3, es funktioniert gut. Nach der Ausführung der putObject-Methode erhalte ich ein data-Objekt, das jedoch nur ein Etag des kürzlich hinzugefügten Objekts enthält.Wie erhalte ich die URL einer Datei auf AWS S3 mit aws-sdk?

Ich brauche die genaue URL, die ich in einem Browser verwenden kann, damit der Client die Datei sehen kann. Der Ordner wurde bereits veröffentlicht und ich kann die Datei sehen, wenn ich den Link von der S3-Konsole kopiere.

Ich versuchte mit getSignedUrl aber die URL, die es zurückgibt, wird für andere Zwecke verwendet, glaube ich.

Danke!

+0

Eine vordefinierte URL kann als Download-Link verwendet werden, läuft jedoch nach x Minuten ab und funktioniert mit nicht öffentlichen Elementen. Wenn Ihr Element öffentlich ist, ist es am einfachsten, die URL einfach mit dem vorhersagbaren Muster zu verketten. –

+0

* wenn ich den Link von der S3-Konsole kopiere * Siehst du das Muster dort? Die URL für jedes Objekt im Bucket folgt genau dem gleichen Muster. –

Antwort

3

Wenn Sie PutObject aufgerufen haben, haben Sie den Bucket und den Schlüssel des Objekts angegeben. Sie können einfach die, kombinieren Sie die URL des Objekts zu machen, zum Beispiel:

so zum Beispiel, wenn Ihr Eimer ist pablo und der Objektschlüssel ist Hunde/toto.png, Verwendung:

Für regionsspezifische Eimer finden Working with Amazon S3 Buckets.

+0

Danke! Ich dachte, dass der Link sich in einigen Benennungsszenarien unerwartet ändern würde. –

+0

Zusätzlicher Beitrag zu Überlegungen zur Namensgebung: https://stackoverflow.com/questions/7116450/what-are-valid-s3-key-names-that-can-bec-becessed-viate-the-s3-rest-api – jarmod

Verwandte Themen