Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengunggah dan menyalin objek menggunakan unggahan multibagian
Unggahan multibagian memungkinkan Anda untuk mengunggah satu objek sebagai kumpulan bagian. Setiap bagian merupakan bagian data objek yang saling berkaitan. Anda dapat mengunggah bagian-bagian objek tersebut secara independen dan dengan urutan apa pun. Jika ada transmisi bagian mana pun yang gagal, Anda dapat mentransmisikan ulang bagian tersebut tanpa memengaruhi bagian lainnya. Setelah semua bagian objek Anda diunggah, Amazon S3 merakit bagian-bagian ini dan menciptakan objek. Secara umum, saat ukuran objek Anda mencapai 100 MB, Anda harus mempertimbangkan untuk menggunakan unggahan multibagian daripada mengunggah objek tersebut dalam satu operasi.
Penggunaan unggahan multibagian memberikan keuntungan sebagai berikut:
-
Peningkatan throughput–Anda dapat mengunggah bagian-bagian secara paralel untuk meningkatkan throughput.
-
Pemulihan yang cepat dari masalah jaringan apa pun–Ukuran bagian yang lebih kecil meminimalkan dampak pengunggahan ulang karena kesalahan jaringan.
-
Jeda dan pelanjutan pengunggahan objek–Anda dapat mengunggah bagian-bagian objek kapan saja. Setelah Anda memulai unggahan multibagian, tidak ada kedaluwarsa; Anda harus secara eksplisit menyelesaikan atau menghentikan unggahan multibagian.
-
Mulai unggahan sebelum Anda mengetahui ukuran akhir objek–Anda dapat mengunggah sebuah objek selagi Anda membuatnya.
Kami menyarankan agar Anda menggunakan unggahan multibagian dengan cara berikut:
-
Jika Anda mengunggah objek besar melalui jaringan dengan bandwidth tinggi yang stabil, gunakan unggahan multibagian untuk memaksimalkan penggunaan bandwidth yang tersedia dengan mengunggah bagian-bagian objek secara paralel untuk performa multi-thread.
-
Jika Anda mengunggah melalui jaringan yang tidak teratur, gunakan unggahan multibagian untuk meningkatkan ketahanan terhadap kesalahan jaringan dengan menghindari pengunggahan ulang. Saat menggunakan unggahan multibagian, Anda harus mencoba mengunggah lagi bagian-bagian yang terganggu selama pengunggahan. Anda tidak perlu mengunggah ulang objek Anda dari awal.
catatan
Untuk informasi selengkapnya tentang menggunakan kelas penyimpanan Amazon S3 Express One Zone dengan bucket direktori, lihat Ember direktori dan S3 Express One Zone dan Ikhtisar ember direktori. Untuk informasi selengkapnya tentang penggunaan unggahan multibagian dengan S3 Express One Zone dan bucket direktori, lihat Menggunakan unggahan multibagian dengan bucket direktori.
Proses pengunggahan multibagian
Pengunggahan multibagian merupakan proses tiga langkah: Anda memulai pengunggahan, Anda mengunggah bagian objek, dan setelah Anda mengunggah semua bagiannya, Anda menyelesaikan pengunggahan multibagian tersebut. Setelah menerima permintaan unggahan multibagian yang selesai, Amazon S3 membangun objek dari bagian-bagian yang diunggah, dan kemudian Anda dapat mengakses objek tersebut sebagaimana Anda ingin mengakses objek lain di dalam bucket Anda.
Anda dapat membuat daftar semua unggahan multibagian yang sedang berlangsung, atau mendapatkan daftar bagian yang telah Anda unggah untuk unggahan multibagian tertentu. Setiap operasi ini dijelaskan dalam bagian ini.
Menginisiasi unggahan multibagian
Saat Anda mengirim permintaan untuk memulai unggahan multibagian, Amazon S3 mengirimkan respons dengan ID unggahan, yang merupakan pengidentifikasi unik untuk unggahan multibagian Anda. Anda harus menyertakan ID unggahan ini setiap kali Anda mengunggah bagian, mendaftar bagian, menyelesaikan unggahan, atau menghentikan sebuah unggahan. Jika Anda ingin memberikan metadata apa pun yang menjelaskan objek yang sedang diunggah, Anda harus menyediakannya dalam permintaan untuk memulai unggahan multibagian.
Pengunggahan bagian-bagian
Saat mengunggah sebuah bagian, selain ID pengunggahan, Anda harus menentukan nomor bagiannya. Anda dapat memilih nomor bagian antara 1 hingga 10.000. Nomor bagian secara unik mengidentifikasi sebuah bagian dan posisinya dalam objek yang Anda unggah. Nomor bagian yang Anda pilih tidak harus berurutan (misalnya, nomornya dapat berupa 1, 5, dan 14). Jika Anda mengunggah sebuah bagian baru menggunakan nomor yang sama dengan bagian yang diunggah sebelumnya, bagian yang diunggah sebelumnya akan ditimpa.
Saat Anda mengunggah bagian, Amazon S3 mengembalikan tag entitas (ETag) untuk bagian tersebut sebagai header dalam respons. Untuk setiap unggahan bagian, Anda harus mencatat nomor bagian dan ETag nilainya. Anda harus memasukkan nilai-nilai ini dalam permintaan selanjutnya untuk menyelesaikan unggahan multibagian. Setiap bagian akan memiliki sendiri ETag pada saat diunggah. Namun, setelah unggahan multipart selesai dan semua bagian dikonsolidasikan, semua bagian akan berada di bawah satu ETag sebagai checksum checksum.
catatan
Setelah Anda memulai pengunggahan multibagian dan mengunggah satu atau beberapa bagian, Anda harus menyelesaikan atau menghentikan pengunggahan multibagian agar tidak dikenakan biaya penyimpanan dari bagian yang diunggah. Hanya setelah Anda menyelesaikan atau menghentikan unggahan multibagian, Amazon S3 akan mengosongkan penyimpanan suku cadang dan berhenti menagih Anda untuk penyimpanan suku cadang.
Setelah menghentikan unggahan multibagian, Anda tidak dapat mengunggah bagian apa pun yang menggunakan ID unggahan tersebut lagi. Jika terdapat unggahan bagian yang sedang berlangsung, bagian tersebut masih bisa berhasil atau gagal bahkan setelah Anda menghentikan pengunggahan. Untuk memastikan Anda mengosongkan semua penyimpanan yang digunakan oleh semua bagian, Anda harus menghentikan unggahan multibagian hanya setelah semua unggahan bagian selesai.
Penyelesaian unggahan multibagian
Saat Anda menyelesaikan unggahan multibagian, Amazon S3 membuat objek dengan menggabungkan bagian-bagian dalam urutan menaik berdasarkan nomor bagian. Jika metadata objek disediakan dalam permintaan mulai unggahan multibagian, Amazon S3 akan mengaitkan metadatanya dengan objek tersebut. Setelah permintaan selesai sepenuhnya, bagiantersebut tidak akan ada lagi.
Permintaan unggahan multibagian lengkap Anda harus menyertakan ID unggahan dan daftar nomor bagian dan ETag nilai yang sesuai. Respons Amazon S3 mencakup ETag yang secara unik mengidentifikasi data objek gabungan. ETagIni belum tentu MD5 hash dari data objek.
Contoh panggilan unggahan multibagian
Untuk contoh ini, asumsikan bahwa Anda membuat unggahan multibagian untuk file yang berukuran 100 GB. Dalam hal ini, Anda akan memiliki API panggilan berikut untuk seluruh proses. Akan ada total 1002 API panggilan.
-
Panggilan
CreateMultipartUpload
untuk memulai proses. -
Panggilan
UploadPart
1000 individu, masing-masing mengunggah sebagian dari 100 MB, untuk ukuran total 100 GB. -
Panggilan
CompleteMultipartUpload
untuk menyelesaikan proses.
Pendaftaran unggahan multibagian
Anda dapat mendaftar bagian-bagian dari unggahan multibagian tertentu atau semua unggahan multibagian yang sedang berlangsung. Operasi daftar bagian menampilkan informasi bagian yang telah Anda unggah untuk unggahan multibagian tertentu. Untuk setiap permintaan daftar bagian, Amazon S3 akan menampilkan informasi bagian untuk unggahan multibagian tertentu, hingga maksimum 1.000 bagian. Jika ada lebih dari 1.000 bagian dalam unggahan multibagian, Anda harus mengirim serangkaian permintaan daftar bagian untuk mengambil semua bagian. Perhatikan bahwa daftar bagian yang ditampilkan tidak mencakup bagian yang belum selesai diunggah. Dengan menggunakan operasi daftar unggahan multibagian, Anda dapat memperoleh daftar unggahan multibagian yang sedang berlangsung.
Unggahan multibagian yang sedang berlangsung adalah unggahan yang telah Anda mulai, tetapi belum selesai atau dihentikan. Setiap permintaan akan ditampilkan sebanyak maksimum 1.000 unggahan multibagian. Jika ada lebih dari 1.000 unggahan multibagian yang sedang berlangsung, Anda harus mengirim permintaan tambahan untuk mengambil unggahan multibagian yang tersisa. Gunakan pendaftaran yang ditampilkan untuk verifikasi. Jangan menggunakan hasil pendaftaran ini saat mengirim permintaan selesaikan unggahan multibagian. Sebagai gantinya, pertahankan daftar nomor bagian Anda sendiri yang Anda tentukan saat mengunggah bagian dan ETag nilai terkait yang dikembalikan Amazon S3.
Checksum dengan operasi unggahan multibagian
Saat mengunggah sebuah objek ke Amazon S3, Anda dapat menentukan algoritma checksum untuk Amazon S3 untuk digunakan. Amazon S3 menggunakan secara MD5 default untuk memverifikasi integritas data; Namun, Anda dapat menentukan algoritma checksum tambahan untuk digunakan. Saat menggunakanMD5, Amazon S3 menghitung checksum dari seluruh objek multipart setelah unggahan selesai. Checksum ini bukan merupakan checksum dari seluruh objek, melainkan checksum untuk setiap bagian individu.
Saat Anda menginstruksikan Amazon S3 untuk menggunakan checksum tambahan, Amazon S3 menghitung nilai checksum untuk setiap bagian dan menyimpan nilainya. Anda dapat menggunakan API atau SDK untuk mengambil nilai checksum untuk masing-masing bagian dengan menggunakan GetObject
atau. HeadObject
Jika Anda ingin mengambil nilai checksum untuk masing-masing bagian dari unggahan multibagian yang masih dalam proses, Anda dapat menggunakan ListParts
.
penting
Jika Anda menggunakan unggahan multibagian dengan checksum tambahan, nomor bagian multibagian harus menggunakan nomor bagian berturut-turut. Saat menggunakan checksum tambahan, jika Anda mencoba menyelesaikan permintaan unggahan multibagian dengan nomor bagian yang tidak berurutan, Amazon S3 menghasilkan kesalahan. HTTP 500 Internal Server Error
Untuk informasi selengkapnya tentang cara kerja checksum dengan objek unggahan multibagian, lihat. Memeriksa integritas objek
Untuk end-to-end prosedur mengunggah objek dengan unggahan multipart dengan checksum tambahan, lihat. Tutorial: Unggah objek melalui unggahan multipart dan verifikasi integritas datanya
Operasi pengunggahan multibagian serentak
Dalam lingkungan pengembangan terdistribusi, aplikasi Anda dapat memulai beberapa pembaruan pada objek yang sama secara bersamaan. Aplikasi Anda dapat memulai beberapa unggahan multibagian menggunakan kunci objek yang sama. Untuk setiap unggahan ini, aplikasi Anda kemudian dapat mengunggah bagian dan mengirim sebuah permintaan menyelesaikan unggahan ke Amazon S3 untuk membuat objek. Jika Penentuan Versi S3 diaktifkan pada bucket, menyelesaikan pengunggahan multibagian akan selalu membuat versi baru. Saat Anda memulai beberapa unggahan multibagian yang menggunakan kunci objek yang sama dalam bucket berkemampuan versi, versi objek saat ini ditentukan oleh pengunggahan yang paling baru dimulai (). createdDate
Misalnya, anggaplah Anda memulai CreateMultipartUpload permintaan objek pada pukul 10:00 pagi. Kemudian Anda mengirimkan CreateMultipartUpload
permintaan kedua untuk objek yang sama pada pukul 11:00. Karena permintaan kedua dikirimkan baru-baru ini, objek yang diunggah oleh permintaan 11:00 AM akan menjadi versi saat ini, bahkan jika unggahan pertama selesai setelah yang kedua. Untuk bucket dengan Penentuan Versi yang tidak diaktifkan, ada kemungkinan bahwa permintaan lain yang diterima antara saat unggahan multibagian dimulai dan diselesaikan akan didahulukan.
catatan
Ada kemungkinan permintaan lain yang diterima antara saat Anda memulai unggahan multibagian dan menyelesaikannya akan didahulukan. Misalnya, jika operasi lain menghapus kunci setelah Anda memulai unggahan multibagian dengan kunci tersebut, tetapi sebelum Anda menyelesaikannya, keseluruhan respons unggahan multibagian mungkin mengindikasikan sebuah keberhasilan penciptaan objek tanpa Anda dapat melihat objek tersebut.
Mencegah mengunggah objek dengan nama kunci yang identik selama pengunggahan multipart
Anda dapat memeriksa keberadaan objek di bucket Anda sebelum membuatnya menggunakan penulisan bersyarat pada operasi unggahan. Ini dapat mencegah penimpaan data yang ada. Penulisan bersyarat akan memvalidasi tidak ada objek yang ada dengan nama kunci yang sama yang sudah ada di bucket Anda saat mengunggah.
Anda dapat menggunakan penulisan bersyarat untuk PutObjectatau CompleteMultipartUploadpermintaan.
Untuk informasi selengkapnya tentang permintaan bersyarat, lihat,Tambahkan prasyarat ke operasi S3 dengan permintaan bersyarat.
Unggahan multibagian dan harga
Setelah Anda memulai unggahan multibagian, Amazon S3 akan menyimpan semua bagian hingga Anda menyelesaikan atau menghentikan unggahan. Sepanjang masa pakainya, Anda akan ditagih untuk semua penyimpanan, bandwidth, dan permintaan untuk unggahan multibagian ini dan bagian terkaitnya.
Bagian-bagian ini dibebankan sesuai dengan kelas penyimpanan yang ditentukan saat bagiannya diunggah. Pengecualian untuk ini adalah bagian yang diunggah ke S3 Glacier Flexible Retrieval, atau S3 Glacier Deep Archive. Suku cadang multipart yang sedang berlangsung untuk kelas penyimpanan Pengambilan Fleksibel Gletser PUT ke S3 Glacier ditagih sebagai S3 Glacier Flexible Retrieval Staging Staging Storage pada tingkat penyimpanan Standar S3 hingga pengunggahan selesai. Selain itu, keduanya CreateMultipartUpload dan UploadPart ditagih dengan tarif Standar S3. Hanya CompleteMultipartUpload permintaan yang ditagih dengan tarif Pengambilan Fleksibel S3 Glacier. Demikian pula, suku cadang multipart yang sedang berlangsung untuk kelas penyimpanan a PUT ke S3 Glacier Deep Archive ditagih sebagai S3 Glacier Flexible Retrieval Staging Staging Storage pada tingkat penyimpanan Standar S3 hingga unggahan selesai, dengan hanya permintaan yang dikenakan tarif S3 Glacier Deep Archive. CompleteMultipartUpload
Jika Anda menghentikan pengunggahan multibagian, Amazon S3 akan menghapus artefak unggahan dan bagian apa pun yang telah Anda unggah, dan Anda tidak lagi ditagih untuk hal tersebut. Tidak ada biaya penghapusan awal untuk menghapus unggahan multibagian yang belum selesai terlepas dari kelas penyimpanan yang ditentukan. Untuk informasi selengkapnya tentang harga, lihat Harga Amazon S3
catatan
Untuk meminimalkan biaya penyimpanan, kami menyarankan untuk Anda mengonfigurasi aturan siklus hidup untuk menghapus unggahan multibagian yang tidak lengkap setelah beberapa hari tertentu dengan menggunakan tindakan AbortIncompleteMultipartUpload
. Untuk informasi selengkapnya tentang membuat aturan siklus hidup untuk menghapus unggahan multibagian yang tidak lengkap, lihat Mengonfigurasi konfigurasi siklus hidup bucket untuk menghapus unggahan multibagian yang tidak lengkap.
API support untuk unggahan multibagian
Pustaka ini menyediakan abstraksi tingkat tinggi yang memudahkan pengunggahan objek unggahan multibagian. Namun, jika aplikasi Anda membutuhkan, Anda dapat menggunakannya secara REST API langsung. Bagian berikut dalam APIReferensi Layanan Penyimpanan Sederhana Amazon menjelaskan REST API untuk upload multipart.
Untuk panduan unggahan multibagian yang menggunakan fungsi AWS Lambda, lihat Mengunggah objek besar ke Amazon S3
AWS Command Line Interface dukungan untuk upload multipart
Topik-topik berikut dalam AWS Command Line Interface menjelaskan operasi untuk upload multipart.
AWS SDK support untuk unggahan multibagian
Anda dapat menggunakan AWS SDKs untuk mengunggah objek di beberapa bagian. Untuk daftar API tindakan yang AWS SDKs didukung, lihat:
Unggahan API dan izin multibagian
Anda harus memiliki izin yang diperlukan untuk menggunakan operasi pengunggahan multibagian. Anda dapat menggunakan daftar kontrol akses (ACLs), kebijakan bucket, atau kebijakan pengguna untuk memberikan izin individu untuk melakukan operasi ini. Tabel berikut mencantumkan izin yang diperlukan untuk berbagai operasi unggahan multibagian saat menggunakanACLs, kebijakan bucket, atau kebijakan pengguna.
Tindakan | Izin yang diperlukan |
---|---|
Buat Unggahan Multibagian |
Anda harus diizinkan untuk melakukan tindakan Pemilik bucket dapat mengizinkan pengguna utama lain untuk melakukan tindakan |
Mulai Unggahan Multibagian |
Anda harus diizinkan untuk melakukan tindakan Pemilik bucket dapat mengizinkan pengguna utama lain untuk melakukan tindakan |
Inisiator | Elemen kontainer yang mengidentifikasi siapa yang memulai unggahan multibagian. Jika inisiator adalah Akun AWS, elemen ini memberikan informasi yang sama dengan elemen Pemilik. Jika inisiator adalah IAM pengguna, elemen ini menyediakan pengguna ARN dan nama tampilan. |
Unggah Bagian | Anda harus diizinkan untuk melakukan tindakan Pemilik bucket harus mengizinkan inisiator untuk melakukan tindakan |
Unggah Bagian (Salinan) | Anda harus diizinkan untuk melakukan tindakan Agar inisiator dapat mengunggah bagian untuk sebuah objek, pemilik bucket harus mengizinkan inisiator untuk melakukan tindakan |
Selesaikan Unggahan Multibagian | Anda harus diizinkan untuk melakukan tindakan Pemilik bucket harus mengizinkan inisiator untuk melakukan tindakan |
Hentikan Unggahan Multibagian | Anda harus diizinkan untuk melakukan tindakan Secara default, pemilik bucket dan pemrakarsa unggahan multibagian diizinkan untuk melakukan tindakan ini sebagai bagian dari kebijakan IAM dan bucket. Jika inisiator adalah IAM pengguna, pengguna tersebut juga Akun AWS diizinkan untuk menghentikan unggahan multibagian itu. Dengan kebijakan VPC endpoint, inisiator unggahan multipart tidak secara otomatis mendapatkan izin untuk melakukan tindakan. Selain pengaturan default ini, pemilik bucket dapat mengizinkan pengguna utama lain untuk melakukan tindakan |
Daftarkan Bagian | Anda harus diizinkan untuk melakukan tindakan Secara default, pemilik bucket memiliki izin untuk mendaftarkan bagian untuk unggahan multibagian apa pun pada bucket. Inisiator unggahan multibagian memiliki izin untuk mendaftarkan bagian-bagian dari unggahan multibagian tertentu. Jika inisiator unggahan multibagian adalah IAM pengguna, Akun AWS pengontrol tersebut IAM juga memiliki izin untuk membuat daftar bagian dari unggahan tersebut. Selain pengaturan default ini, pemilik bucket dapat mengizinkan pengguna utama lain untuk melakukan tindakan |
Daftarkan Unggahan Multibagian | Anda harus diizinkan untuk melakukan tindakan Selain pengaturan default ini, pemilik bucket dapat mengizinkan pengguna utama lain untuk melakukan tindakan |
AWS KMS Enkripsi dan Dekripsi izin terkait |
Untuk melakukan unggahan multibagian dengan enkripsi menggunakan KMS kunci AWS Key Management Service (AWS KMS), pemohon harus memiliki izin untuk Jika IAM pengguna atau peran Anda Akun AWS sama dengan KMS kunci, maka Anda harus memiliki izin ini pada kebijakan kunci. Jika IAM pengguna atau peran Anda termasuk dalam akun yang berbeda dari KMS kunci, maka Anda harus memiliki izin pada kebijakan kunci dan IAM pengguna atau peran Anda. |
Untuk informasi tentang hubungan antara ACL izin dan izin dalam kebijakan akses, lihat. Pemetaan ACL izin dan izin kebijakan akses Untuk informasi tentang IAM pengguna, peran, dan praktik terbaik, lihat IAMidentitas (pengguna, grup pengguna, dan peran) di Panduan IAM Pengguna.
Topik
- Mengonfigurasi siklus hidup bucket untuk menghapus unggahan multibagian yang tidak lengkap
- Pengunggahan objek menggunakan unggahan multibagian
- Mengunggah direktori menggunakan tingkat tinggi. NET TransferUtility kelas
- Mendaftarkan unggahan multibagian
- Melacak unggahan multipart dengan AWS SDKs
- Membatalkan unggahan multibagian
- Menyalin objek menggunakan unggahan multibagian
- Tutorial: Unggah objek melalui unggahan multipart dan verifikasi integritas datanya
- Batas unggahan multibagian Amazon S3