Das AWS SDK für JavaScript V3-API-Referenzhandbuch beschreibt detailliert alle API-Operationen für die AWS SDK für JavaScript Version 3 (V3).
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Überlegungen zu Amazon S3
Mehrteiliger Amazon S3 S3-Upload
In Version 2 enthält der Amazon S3-Client einen upload()
Vorgang, der das Hochladen großer Objekte mit der von Amazon S3 angebotenen Funktion zum mehrteiligen Hochladen unterstützt.
In Version 3 ist das
@aws-sdk/lib-storage
upload()
v2-Betrieb angeboten werden, und unterstützt sowohl Node.js als auch die Browser-Runtime.
Vorsignierte Amazon S3 S3-URL
In Version 2 enthält der Amazon S3-Client die getSignedUrlPromise()
Operationen getSignedUrl()
und zum Generieren einer URL, mit der Benutzer Objekte von Amazon S3 hoch- oder herunterladen können.
In Version 3 ist das
@aws-sdk/s3-request-presigner
getSignedUrl()
getSignedUrlPromise()
Operationen. In diesem Blogbeitrag
Amazon S3 S3-Regionsumleitungen
Wenn eine falsche Region an den Amazon S3-Client übergeben wird und ein darauffolgender Fehler
PermanentRedirect
(Status 301) ausgelöst wird, unterstützt der Amazon S3 S3-Client in Version 3 Regionsumleitungen (früher bekannt als Amazon S3 Global Client in Version 2). Sie können das followRegionRedirects
Flag in der Client-Konfiguration verwenden, damit der Amazon S3 S3-Client regionalen Weiterleitungen folgt und seine Funktion als globaler Client unterstützt.
Anmerkung
Beachten Sie, dass diese Funktion zu zusätzlicher Latenz führen kann, da fehlgeschlagene Anfragen mit einer korrigierten Region erneut versucht werden, wenn ein PermanentRedirect
Fehler mit dem Status 301 empfangen wird. Diese Funktion sollte nur verwendet werden, wenn Sie die Region Ihrer Buckets nicht im Voraus kennen.
Amazon S3 S3-Streaming und gepufferte Antworten
Das v3-SDK zieht es vor, potenziell große Antworten nicht zu puffern. Dies tritt häufig bei der Amazon S3 GetObject
S3-Operation auf, bei der Buffer
in Version 2 a zurückgegeben wurde, Stream
in Version 3 jedoch a zurückgegeben wurde.
Für Node.js müssen Sie den Stream verwenden oder den Client oder seinen Request-Handler löschen, um die Verbindungen für neuen Datenverkehr offen zu halten, indem Sie Sockets freigeben.
// v2
const get = await s3.getObject({ ... }).promise(); // this buffers consumes the stream already.
// v3, consume the stream to free the socket
const get = await s3.getObject({ ... }); // object .Body has unconsumed stream
const str = await get.Body.transformToString(); // consumes the stream
// other ways to consume the stream include writing it to a file,
// passing it to another consumer like an upload, or buffering to
// a string or byte array.
Weitere Informationen finden Sie im Abschnitt zur Socket-Erschöpfung