Perbedaan operasi streaming antara 1.x dan 2.x dari AWS SDK untuk Java - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Perbedaan operasi streaming antara 1.x dan 2.x dari AWS SDK untuk Java

Operasi streaming, seperti Amazon S3 getObject dan putObject metode, mendukung non-pemblokiran I/O di SDK versi 2.x. Akibatnya, objek model permintaan dan respons tidak lagi mengambil InputStream sebagai parameter. Sebagai gantinya, untuk permintaan sinkron objek permintaan menerimaRequestBody, yang merupakan aliran byte. Setara asinkron menerima sebuah. AsyncRequestBody

contoh putObjectoperasi Amazon S3 di 1.x
s3client.putObject(BUCKET, KEY, new File(file_path));
contoh putObjectoperasi Amazon S3 di 2.x
s3client.putObject(PutObjectRequest.builder() .bucket(BUCKET) .key(KEY) .build(), RequestBody.of(Paths.get("myfile.in")));

Objek respons streaming menerima a ResponseTransformer untuk klien sinkron dan untuk klien asinkron di V2. AsyncResponseTransformer

contoh getObjectoperasi Amazon S3 di 1.x
S3Object o = s3.getObject(bucket, key); S3ObjectInputStream s3is = o.getObjectContent(); FileOutputStream fos = new FileOutputStream(new File(key));
contoh getObjectoperasi Amazon S3 di 2.x
s3client.getObject(GetObjectRequest.builder().bucket(bucket).key(key).build(), ResponseTransformer.toFile(Paths.get("key")));

Dalam SDK for Java 2.x, operasi respons streaming memiliki metode untuk memuat AsBytes respons ke dalam memori dan menyederhanakan konversi tipe umum dalam memori.