Bekerja dengan Amazon 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.

Bekerja dengan Amazon S3

Bagian ini memberikan informasi latar belakang untuk bekerja dengan Amazon S3 dengan menggunakan file. AWS SDK for Java 2.x Bagian ini melengkapi contoh Amazon S3 Java v2 yang disajikan di bagian Contoh kode panduan ini.

Klien S3 di AWS SDK for Java 2.x

AWS SDK for Java 2.x Menyediakan berbagai jenis klien S3. Tabel berikut menunjukkan perbedaan dan dapat membantu Anda memutuskan apa yang terbaik untuk kasus penggunaan Anda.

Rasa yang berbeda dari klien Amazon S3
Klien S3 Deskripsi singkat Kapan harus digunakan Batasan/kelemahan

AWS CRTklien S3 berbasis

Antarmuka: S3 AsyncClient

Pembangun: S3 CrtAsyncClientBuilder

  • Menyediakan API operasi asinkron yang sama dengan klien asinkron S3 berbasis Java tetapi dengan kinerja yang lebih besar.

  • Membutuhkan aws-crt ketergantungan.

  • Mendukung transfer paralel otomatis (multipart).

Lihat Gunakan klien S3 berbasis S3 berkinerja: AWS CRT klien S3.

  • Aplikasi Anda mentransfer objek besar (> 8MB) dan Anda ingin memaksimalkan kinerja.

  • Anda ingin mengunggah objek dengan panjang konten yang tidak diketahui.

  • Anda ingin meningkatkan penyatuan koneksi dan penyeimbangan DNS beban, yang meningkatkan throughput dan kinerja.

  • Anda ingin meningkatkan keandalan transfer jika terjadi kegagalan jaringan. Masing-masing bagian yang gagal dicoba ulang tanpa memulai ulang transfer dari awal.

Klien asinkron S3 berbasis Java dengan multipart diaktifkan

Antarmuka: S3 AsyncClient

Pembangun: S3 AsyncClientBuilder

  • Menyediakan asinkronAPI.

  • Mendukung transfer paralel otomatis (multipart) saat Anda mengaktifkan multipart pada waktu pembuatan.

Lihat Konfigurasikan klien async S3 berbasis Java untuk menggunakan transfer paralel.

  • Aplikasi Anda mentransfer objek besar dan Anda ingin meningkatkan kinerja.

  • Anda ingin mengunggah objek dengan panjang konten yang tidak diketahui.

  • Anda ingin meningkatkan keandalan transfer jika terjadi kegagalan jaringan. Masing-masing bagian yang gagal dicoba ulang tanpa memulai ulang transfer dari awal.

  • Anda memerlukan opsi konfigurasi yang tidak tersedia dengan klien S3 AWS CRT berbasis.

Kinerja kurang dari klien S3 AWS CRT berbasis.

Klien asinkron S3 berbasis Java tanpa multipart diaktifkan

Antarmuka: S3 AsyncClient

Pembangun: S3 AsyncClientBuilder

  • Menyediakan asinkronAPI.

  • Anda mentransfer objek yang kurang dari 8MB.

  • Anda ingin asinkronAPI.

Tidak ada optimasi kinerja.

Klien sinkronisasi S3 berbasis Java

Antarmuka: S3Client

Pembangun: S3 ClientBuilder

  • Menyediakan sinkron. API

  • Anda mentransfer objek yang kurang dari 8MB.

  • Anda ingin sinkron. API

Tidak ada optimasi kinerja.

catatan

Dari versi 2.18.x dan seterusnya, AWS SDK for Java 2.x menggunakan pengalamatan bergaya host virtual saat menyertakan penggantian titik akhir. Ini berlaku selama nama bucket adalah DNS label yang valid.

Panggil forcePathStylemetode dengan true pembuat klien Anda untuk memaksa klien menggunakan pengalamatan gaya jalur untuk bucket.

Contoh berikut menunjukkan klien layanan yang dikonfigurasi dengan penggantian titik akhir dan menggunakan pengalamatan gaya jalur.

S3Client client = S3Client.builder() .region(Region.US_WEST_2) .endpointOverride(URI.create("https://s3.us-west-2.amazonaws.com")) .forcePathStyle(true) .build();