Gunakan klien S3 berbasis S3 berkinerja: AWS CRT klien S3 - 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.

Gunakan klien S3 berbasis S3 berkinerja: AWS CRT klien S3

Klien S3 AWS CRT berbasis — dibangun di atas AWS Common Runtime (CRT) —adalah klien asinkron S3 alternatif. Ini mentransfer objek ke dan dari Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dengan peningkatan kinerja dan keandalan dengan secara otomatis menggunakan upload multipart Amazon S3 dan pengambilan rentang byte. API

Klien S3 AWS CRT berbasis meningkatkan keandalan transfer jika ada kegagalan jaringan. Keandalan ditingkatkan dengan mencoba kembali bagian-bagian individual yang gagal dari transfer file tanpa memulai ulang transfer dari awal.

Selain itu, klien S3 AWS CRT berbasis menawarkan penyatuan koneksi yang ditingkatkan dan penyeimbangan beban Sistem Nama Domain (DNS), yang juga meningkatkan throughput.

Anda dapat menggunakan klien S3 AWS CRT berbasis sebagai pengganti klien asinkron S3 standar dan segera memanfaatkan throughputnya yang ditingkatkan. SDK

AWS CRTkomponen berbasis di SDK

Klien S3 AWS CRT berbasis, dijelaskan dalam topik ini, dan HTTPklien AWS CRT berbasis adalah komponen yang berbeda dalamSDK.

Klien S3 AWS CRT berbasis adalah implementasi AsyncClient antarmuka S3 dan digunakan untuk bekerja dengan layanan Amazon S3. Ini adalah alternatif untuk implementasi S3AsyncClient antarmuka berbasis Java dan menawarkan beberapa manfaat.

HTTPKlien AWS CRT berbasis adalah implementasi SdkAsyncHttpClientantarmuka dan digunakan untuk HTTP komunikasi umum. Ini adalah alternatif untuk implementasi SdkAsyncHttpClient antarmuka Netty dan menawarkan beberapa keuntungan.

Meskipun kedua komponen menggunakan pustaka dari AWS Common Runtime, klien S3 AWS CRT berbasis menggunakan pustaka aws-c-s 3 dan mendukung fitur upload multipart S3. API Karena HTTP klien AWS CRT berbasis dimaksudkan untuk penggunaan tujuan umum, itu tidak mendukung fitur unggahan API multibagian S3.

Tambahkan dependensi untuk menggunakan klien S3 AWS CRT berbasis

Untuk menggunakan klien S3 AWS CRT berbasis, tambahkan dua dependensi berikut ke file proyek Maven Anda. Contoh menunjukkan versi minimum yang akan digunakan. Cari repositori pusat Maven untuk versi terbaru dari artefak s3 dan aws-crt.

<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> <version>2.27.21</version> </dependency> <dependency> <groupId>software.amazon.awssdk.crt</groupId> <artifactId>aws-crt</artifactId> <version>0.30.11</version> </dependency>

Buat instance klien S3 AWS CRT berbasis

Buat instance klien S3 AWS CRT berbasis dengan pengaturan default seperti yang ditunjukkan pada cuplikan kode berikut.

S3AsyncClient s3AsyncClient = S3AsyncClient.crtCreate();

Untuk mengkonfigurasi klien, gunakan pembuat AWS CRT klien. Anda dapat beralih dari klien asinkron S3 standar ke klien AWS CRT berbasis dengan mengubah metode pembangun.

import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3AsyncClient; S3AsyncClient s3AsyncClient = S3AsyncClient.crtBuilder() .credentialsProvider(DefaultCredentialsProvider.create()) .region(Region.US_WEST_2) .targetThroughputInGbps(20.0) .minimumPartSizeInBytes(8 * 1025 * 1024L) .build();
catatan

Beberapa pengaturan di pembuat standar mungkin saat ini tidak didukung di pembuat AWS CRT klien. Dapatkan pembangun standar dengan meneleponS3AsyncClient#builder().

Gunakan klien S3 AWS CRT berbasis

Gunakan klien S3 AWS CRT berbasis untuk memanggil operasi Amazon API S3. Contoh berikut menunjukkan PutObjectdan GetObjectoperasi yang tersedia melalui. AWS SDK for Java

import software.amazon.awssdk.core.async.AsyncRequestBody; import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.model.PutObjectResponse; S3AsyncClient s3Client = S3AsyncClient.crtCreate(); // Upload a local file to Amazon S3. PutObjectResponse putObjectResponse = s3Client.putObject(req -> req.bucket(<BUCKET_NAME>) .key(<KEY_NAME>), AsyncRequestBody.fromFile(Paths.get(<FILE_NAME>))) .join(); // Download an object from Amazon S3 to a local file. GetObjectResponse getObjectResponse = s3Client.getObject(req -> req.bucket(<BUCKET_NAME>) .key(<KEY_NAME>), AsyncResponseTransformer.toFile(Paths.get(<FILE_NAME>))) .join();

Batasan konfigurasi

Klien S3 AWS CRT berbasis dan klien asinkron S3 berbasis Java menyediakan fitur yang sebanding, dengan klien S3 AWS CRT berbasis yang menawarkan keunggulan kinerja. Namun, klien S3 AWS CRT berbasis tidak memiliki pengaturan konfigurasi yang dimiliki klien asinkron S3 berbasis Java. Pengaturan ini meliputi:

  • Konfigurasi tingkat klien: batas waktu upaya API panggilan, pencegat eksekusi kompresi, penerbit metrik, atribut eksekusi khusus, opsi lanjutan khusus, layanan pelaksana terjadwal khusus, header khusus

  • Konfigurasi tingkat permintaan: penandatangan khusus, penyedia kredensyal, batas waktu percobaan panggilan API

Untuk daftar lengkap perbedaan konfigurasi, lihat API referensi.

Klien asinkron S3 berbasis Java AWS CRTklien S3 berbasis
Konfigurasi tingkat klien

Konfigurasi tingkat permintaan

Konfigurasi tingkat klien

Tidak ada konfigurasi tingkat permintaan