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.
In Version 2.x des SDK for Java werden Anfragen an einen Client-Vorgang übergeben. Zum Beispiel DynamoDbClient's
PutItemRequest
wird an den Vorgang übergebenDynamoDbClient.putItem
. Diese Operationen geben eine Antwort von der zurück AWS-Service, wie z. B. PutItemResponse
a.
Version 2.x des SDK for Java enthält die folgenden Änderungen gegenüber 1.x.
-
Operationen mit mehreren Antwortseiten verfügen jetzt über eine
Paginator
Methode zur automatischen Iteration aller Elemente in der Antwort. -
Anfragen und Antworten können nicht mutiert werden.
-
Sie müssen Anfragen und Antworten mit einer statischen Builder-Methode anstelle eines Konstruktors erstellen. Zum Beispiel
new PutItemRequest().withTableName(...)
ist 1.x jetzt.PutItemRequest.builder().tableName(...).build()
-
Operations unterstützt eine kurze Methode zur Erstellung von Anfragen:.
dynamoDbClient.putItem(request -> request.tableName(...))
Streaming-Operationen
Streaming-Operationen wie Amazon S3 getObject
und putObject
Methoden unterstützen jetzt nicht blockierende I/O. Aus diesem Grund verwenden Anfrage und Antwort nicht POJOs mehr InputStream
als Parameter. Stattdessen akzeptiert das Anforderungsobjekt synchrone AnfragenRequestBody
, was ein Bytestrom ist. Das asynchrone Äquivalent akzeptiert eine. AsyncRequestBody
Beispiel des Amazon S3 putObject
S3-Betriebs in 1.x
s3client.putObject(BUCKET, KEY, new File(file_path));
Beispiel des Amazon S3 putObject
S3-Betriebs in 2.x
s3client.putObject(PutObjectRequest.builder()
.bucket(BUCKET)
.key(KEY)
.build(),
RequestBody.of(Paths.get("myfile.in")));
Parallel dazu akzeptiert ein Streaming-Antwortobjekt a ResponseTransformer
für synchrone Clients und a AsyncResponseTransformer
für asynchrone Clients.
Beispiel des Amazon S3 getObject
S3-Betriebs in 1.x
S3Object o = s3.getObject(bucket, key);
S3ObjectInputStream s3is = o.getObjectContent();
FileOutputStream fos = new FileOutputStream(new File(key));
Beispiel des Amazon S3 getObject
S3-Betriebs in 2.x
s3client.getObject(GetObjectRequest.builder().bucket(bucket).key(key).build(),
ResponseTransformer.toFile(Paths.get("key")));
Im SDK for Java 2.x verfügen Streaming-Antwortoperationen über eine AsBytes
Methode, um die Antwort in den Speicher zu laden und gängige In-Memory-Typkonvertierungen zu vereinfachen.