View a markdown version of this page

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 Limitation/drawback

AWS CRT-based Klien S3

Antarmuka: S3AsyncClient

Pembangun: S3CrtAsyncClientBuilder

  • Menyediakan operasi API asinkron yang sama dengan klien asinkron Java-based S3 tetapi dengan kinerja yang lebih baik.

  • Membutuhkan aws-crt ketergantungan.

  • Mendukung transfer paralel otomatis (multipart).

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

  • 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 beban DNS, 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.

Java-based Klien asinkron S3 dengan multipart diaktifkan

Antarmuka: S3AsyncClient

Pembangun: S3AsyncClientBuilder

  • Menyediakan API asinkron.

  • 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 AWS CRT-based S3.

Kinerja kurang dari klien AWS CRT-based S3.

Java-based Klien asinkron S3 tanpa multipart diaktifkan

Antarmuka: S3AsyncClient

Pembangun: S3AsyncClientBuilder

  • Menyediakan API asinkron.

  • Anda mentransfer objek yang kurang dari 8MB.

  • Anda menginginkan API asinkron.

Tidak ada optimasi kinerja.

Java-based Klien sinkronisasi S3

Antarmuka: S3Client

Pembangun: S3ClientBuilder

  • Menyediakan API sinkron.

  • Anda mentransfer objek yang kurang dari 8MB.

  • Anda menginginkan API sinkron.

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 label DNS 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();