

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

# Menggunakan `S3CrtClient` untuk operasi Amazon S3
<a name="examples-s3-crt"></a>

`S3CrtClient`Kelas ini tersedia dalam versi 1.9 AWS SDK untuk C\$1\$1 dan meningkatkan throughput mengunggah dan mengunduh file data besar ke dan dari Amazon S3. Untuk informasi selengkapnya tentang peningkatan rilis ini, lihat [Meningkatkan Throughput Amazon S3](https://github.com/aws/aws-sdk-cpp/wiki/Improving-S3-Throughput-with-AWS-SDK-for-CPP-v1.9) dengan v1.9 AWS SDK untuk C\$1\$1 

`S3CrtClient`Ini diimplementasikan di bagian atas pustaka [AWS Common Runtime (CRT)](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html).

**catatan**  
Agar tidak dikenakan biaya untuk unggahan yang tidak lengkap atau sebagian, sebaiknya aktifkan aturan [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpu-abort-incomplete-mpu-lifecycle-config.html)siklus hidup di bucket Amazon S3.  
Aturan ini mengarahkan Amazon S3 untuk membatalkan unggahan multibagian yang tidak selesai dalam jumlah hari tertentu setelah dimulai. Ketika batas waktu yang ditetapkan terlampaui, Amazon S3 membatalkan unggahan dan kemudian menghapus data unggahan yang tidak lengkap.   
Untuk informasi selengkapnya, lihat [Menyetel konfigurasi siklus hidup pada bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html) di Panduan Pengguna Amazon S3.

## Prasyarat
<a name="codeExamplePrereq"></a>

Sebelum Anda mulai, kami sarankan Anda membaca [Memulai menggunakan AWS SDK untuk C\$1\$1](getting-started.md). 

Unduh kode contoh dan buat solusinya seperti yang dijelaskan dalam[Memulai contoh kode](getting-started-code-examples.md). 

Untuk menjalankan contoh, profil pengguna yang digunakan kode Anda untuk membuat permintaan harus memiliki izin yang tepat AWS (untuk layanan dan tindakan). Untuk informasi selengkapnya, lihat [Menyediakan AWS kredensil](credentials.md).

## Unggah dan unduh objek menggunakan `S3CrtClient`
<a name="stream"></a>

Contoh ini menunjukkan bagaimana menggunakan. [https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-s3-crt/html/class_aws_1_1_s3_crt_1_1_s3_crt_client.html](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-s3-crt/html/class_aws_1_1_s3_crt_1_1_s3_crt_client.html) Contoh membuat bucket, mengunggah objek, mengunduh objek, lalu menghapus file dan bucket. Operasi PUT berubah menjadi unggahan multibagian. Operasi GET berubah menjadi beberapa permintaan GET “berkisar”. Untuk informasi selengkapnya tentang unggahan multibagian, lihat [Mengunggah dan menyalin objek menggunakan unggahan multibagian di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) Panduan Pengguna Amazon S3. 

File data yang disediakan,`ny.json`, akan diunggah sebagai unggahan multibagian dalam contoh ini. Ini dapat dikonfirmasi dengan melihat log debug setelah program dijalankan dengan sukses.

Jika unggahan gagal, an `AbortMultipartUpload` dikeluarkan di pustaka CRT yang mendasarinya untuk membersihkan bagian yang sudah diunggah. Namun, tidak semua kegagalan dapat ditangani secara internal (seperti kabel jaringan yang dicabut). Disarankan untuk membuat aturan siklus hidup di bucket Amazon S3 Anda untuk memastikan data yang diunggah sebagian tidak berlama-lama di akun Anda (sebagian data yang diunggah masih dapat ditagih). Untuk mengetahui cara mengatur aturan siklus hidup, lihat [Menemukan dan Menghapus Unggahan Multibagian yang Tidak Lengkap untuk Menurunkan Biaya Amazon](https://aws.amazon.com/blogs/aws-cost-management/discovering-and-deleting-incomplete-multipart-uploads-to-lower-amazon-s3-costs/ ) S3. 

**Menggunakan log debug untuk menjelajahi detail unggahan multibagian**

1. Dalam`main()`, perhatikan bahwa ada "TODO" komentar dengan instruksi untuk memperbarui kode.

   1. Untuk`file_name`: Dari tautan yang disediakan dalam kode komentar unduh file data sampel`ny.json`, atau gunakan file data besar Anda sendiri.

   1. Untuk`region`: Perbarui `region` variabel, menggunakan enum, ke Wilayah AWS akun Anda. Untuk menemukan Wilayah akun Anda, masuk ke Konsol Manajemen AWS, dan temukan Wilayah di sudut kanan atas.

1. Bangun contoh.

1. Salin file yang ditentukan oleh variabel `file_name` ke folder executable Anda dan jalankan executable. `s3-crt-demo`

1. Di folder yang dapat dieksekusi, temukan file terbaru`.log`.

1. Buka file log, pilih **cari**, dan masukkan**partNumber**.

1. Log berisi entri yang mirip dengan berikut ini, di mana `partNumber` dan `uploadId` ditentukan untuk setiap bagian dari file yang diunggah:

    `PUT /my-object partNumber=1&uploadId=gsk8vDbmnlA5EseDo._LDEgq22Qmt0SeuszYxMsZ9ABt503VqDIFOP8xzZI1P0zp.ToS.qo5kK16HNWogZF3KpRo.Dc7QnLZIK0BTmzCWwWoPax4T21hvP6nPdz9591F content-length:8388608 host:my-bucketasdfasdf.s3.us-east-2.amazonaws.com x-amz-content-sha256:UNSIGNED-PAYLOAD`

    and 

    `PUT /my-object partNumber=2&uploadId=gsk8vDbmnlA5EseDo._LDEgq22Qmt0SeuszYxMsZ9ABt503VqDIFOP8xzZI1P0zp.ToS.qo5kK16HNWogZF3KpRo.Dc7QnLZIK0BTmzCWwWoPax4T21hvP6nPdz9591F content-length:8388608 host:my-bucketasdfasdf.s3.us-east-2.amazonaws.com x-amz-content-sha256:UNSIGNED-PAYLOAD `

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3-crt/s3-crt-demo.cpp) di Github.