2016-06-03 6 views
1

Ich konfiguriere das Amazon API Gateway als Proxy für einen S3-Bucket. Im Idealfall möchte ich, dass der Client eine Datei an einen Bucket senden kann, dass S3 ihm einen Dateinamen zuweisen und diesen Namen dann in der Antwort zurückgeben kann. Ich möchte dem Client nicht die Möglichkeit geben, den Dateinamen anzugeben. Ist das möglich? In der Dokumentation zum Einrichten des Proxys wird POST überhaupt nicht erwähnt, und bei anderen POST-Beispielen, die ich gefunden habe, muss der Client den Schlüsselnamen angeben.Kann ein S3-Bucket eigene Objektschlüsselnamen generieren?

Antwort

2

Nein, die automatische Dateinamenerstellung wird in S3 nicht unterstützt.

1

Wenn Sie Lambda durchlaufen haben, können Sie jede gewünschte benutzerdefinierte Logik einfügen, einschließlich der Generierung des Dateinamens. Die Lambda-Funktion könnte dann den Dateinamen zurückliefern und Sie könnten ihn Ihrer API-Gateway-Antwort zuordnen.

+0

Dies ist in diesem Fall nicht anwendbar, da Ishka das AWS-Gateway nur als Proxy verwendet. –

+0

Ich dachte darüber nach, aber es gibt eine 6 MB Grenze für die Anfragegröße in Lambda, und ich würde gerne Dateien hochladen können, die größer sind. – Ishka

1

S3 kann den Namen nicht zuweisen, aber in der API-Gateway-Zuordnungsvorlage können Sie beliebige Daten aus dem $ context-Objekt verwenden, um einen Namen zu erstellen.

z.B. $ context.requestId würde einen eindeutigen Schlüsselnamen für Ihren S3-Schlüssel erstellen.

+0

Dies ist eine interessante Idee. Wie groß ist die Anfrage-ID? Wird es wahrscheinlich über lange Zeiträume einzigartig sein? – Ishka

Verwandte Themen