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 S3S3AsyncClient
antarmuka berbasis Java dan menawarkan beberapa manfaat.
HTTPKlien AWS CRT berbasis adalah implementasi SdkAsyncHttpClientSdkAsyncHttpClient
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
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
<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 PutObject
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 |