Mengunggah Arsip Besar dengan Menggunakan AWS CLI - Amazon S3 Glacier

Halaman ini hanya untuk pelanggan lama dari layanan S3 Glacier menggunakan Vaults dan asli dari 2012. REST API

Jika Anda mencari solusi penyimpanan arsip, kami sarankan untuk menggunakan kelas penyimpanan S3 Glacier di Amazon S3, Pengambilan Instan Gletser S3, Pengambilan Fleksibel Gletser S3, dan S3 Glacier Deep Archive. Untuk mempelajari lebih lanjut tentang opsi penyimpanan ini, lihat Kelas penyimpanan S3 Glacier dan Penyimpanan data jangka panjang menggunakan kelas penyimpanan S3 Glacier di Panduan Pengguna Amazon S3. Kelas penyimpanan ini menggunakan Amazon S3API, tersedia di semua wilayah, dan dapat dikelola dalam konsol Amazon S3. Mereka menawarkan fitur seperti Analisis Biaya Penyimpanan, Lensa Penyimpanan, fitur enkripsi opsional canggih, dan banyak lagi.

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

Mengunggah Arsip Besar dengan Menggunakan AWS CLI

Anda dapat mengunggah arsip di Amazon S3 Glacier (S3 Glacier) dengan menggunakan (). AWS Command Line Interface AWS CLI Untuk meningkatkan pengalaman mengunggah arsip yang lebih besar, S3 Glacier menyediakan beberapa API operasi untuk mendukung unggahan multipart. Dengan menggunakan API operasi ini, Anda dapat mengunggah arsip di beberapa bagian. Bagian-bagian ini dapat diunggah secara independen, dalam urutan apa pun, dan secara paralel. Jika unggahan bagian gagal, Anda hanya perlu mengunggah bagian itu lagi, bukan seluruh arsip. Anda dapat menggunakan unggahan multipart untuk arsip dari 1 byte hingga sekitar 40.000 gibibytes (GiB) dalam ukuran.

Untuk informasi selengkapnya tentang unggahan multipart S3 Glacier, lihat. Mengunggah Arsip Besar dalam Beberapa Bagian (Unggahan Multipart)

(Prasyarat) Menyiapkan AWS CLI

  1. Unduh dan konfigurasikan AWS CLI. Untuk melakukannya, lihat topik berikut di Panduan Pengguna AWS Command Line Interface :

    Instalasi AWS Command Line Interface

    Mengkonfigurasi AWS Command Line Interface

  2. Verifikasi AWS CLI pengaturan Anda dengan memasukkan perintah berikut pada prompt perintah. Perintah ini tidak memberikan kredensial secara eksplisit, sehingga kredensial profil default digunakan.

    • Coba gunakan perintah bantuan.

      aws help
    • Untuk mendapatkan daftar brankas S3 Glacier pada akun yang dikonfigurasi, gunakan perintah. list-vaults Ganti 123456789012 dengan Akun AWS ID Anda.

      aws glacier list-vaults --account-id 123456789012
    • Untuk melihat data konfigurasi saat ini untuk AWS CLI, gunakan aws configure list perintah.

      aws configure list

(Prasyarat) Instal Python

Untuk menyelesaikan unggahan multipart, Anda harus menghitung hash SHA256 pohon dari arsip yang Anda unggah. Melakukannya berbeda dengan menghitung hash SHA256 pohon dari file yang ingin Anda unggah. Untuk menghitung hash SHA256 pohon dari arsip yang Anda unggah, Anda dapat menggunakanJava, C# (dengan. NET), atauPython. Dalam contoh ini, Anda akan menggunakanPython. Untuk petunjuk tentang penggunaan Java atau C #, lihatChecksum Komputasi.

Untuk informasi selengkapnya tentang menginstalPython, lihat Menginstal atau memperbarui Python di Panduan Pengembang Boto3.

(Prasyarat) Buat S3 Glacier Vault

Untuk menggunakan contoh berikut, Anda harus memiliki setidaknya satu lemari besi S3 Glacier yang dibuat. Untuk informasi selengkapnya tentang membuat brankas, lihat. Membuat Vault di Amazon S3 Glacier

Contoh: Mengunggah Arsip Besar di Bagian dengan Menggunakan AWS CLI

Dalam contoh ini, Anda akan membuat file dan menggunakan API operasi unggahan multibagian untuk mengunggah file ini, sebagian, ke Amazon S3 Glacier.

penting

Sebelum memulai prosedur ini, pastikan Anda telah melakukan semua langkah prasyarat. Untuk mengunggah arsip, Anda harus memiliki vault yang dibuat, AWS CLI dikonfigurasi, dan siap untuk menggunakanJava, C #, atau Python untuk menghitung hash SHA256 pohon.

Prosedur berikut menggunakaninitiate-multipart-upload,upload-multipart-part, dan complete-multipart-upload AWS CLI perintah.

Untuk informasi lebih rinci tentang masing-masing perintah ini, lihat, initiate-multipart-uploadupload-multipart-part, dan complete-multipart-uploaddi Referensi AWS CLI Perintah.

  1. Gunakan initiate-multipart-uploadperintah untuk membuat sumber daya unggahan multibagian. Dalam permintaan Anda, tentukan ukuran bagian dalam jumlah byte. Setiap bagian yang Anda unggah, kecuali bagian terakhir, akan berukuran ini. Anda tidak perlu mengetahui ukuran arsip keseluruhan saat memulai unggahan. Namun, Anda akan memerlukan ukuran total, dalam byte, dari setiap bagian saat menyelesaikan unggahan pada langkah terakhir.

    Dalam perintah berikut, ganti nilai untuk --account-ID parameter --vault-name dan dengan informasi Anda sendiri. Perintah ini menentukan bahwa Anda akan mengunggah arsip dengan ukuran bagian 1 mebibyte (MiB) (1024 x 1024 byte) per file. Ganti nilai --part-size parameter ini jika diperlukan.

    aws glacier initiate-multipart-upload --vault-name awsexamplevault --part-size 1048576 --account-id 123456789012

    Keluaran yang diharapkan

    { "location": "/123456789012/vaults/awsexamplevault/multipart-uploads/uploadId", "uploadId": "uploadId" }

    Setelah selesai, perintah akan menampilkan ID unggahan dan lokasi sumber daya unggahan multibagian di S3 Glacier. Anda akan menggunakan ID unggahan ini pada langkah selanjutnya.

  2. Untuk contoh ini, Anda dapat menggunakan perintah berikut untuk membuat file 4.4 MiB, membaginya menjadi potongan 1 MiB, dan mengunggah setiap potongan. Untuk mengunggah file Anda sendiri, Anda dapat mengikuti prosedur serupa untuk membagi data Anda menjadi beberapa bagian dan mengunggah setiap bagian.

    Linux atau macOS

    Perintah berikut membuat file 4.4 MiB, bernamafile_to_upload, di Linux atau macOS.

    mkfile -n 9000b file_to_upload
    Windows

    Perintah berikut membuat file 4.4 MiB, bernamafile_to_upload, pada Windows.

    fsutil file createnew file_to_upload 4608000
  3. Selanjutnya, Anda akan membagi file ini menjadi potongan 1 MiB.

    split -b 1048576 file_to_upload chunk

    Anda sekarang memiliki lima potongan berikut. Empat yang pertama adalah 1 MiB, dan yang terakhir adalah sekitar 400 kibibytes (KiB).

    chunkaa chunkab chunkac chunkad chunkae
  4. Gunakan upload-multipart-partperintah untuk mengunggah bagian dari arsip. Anda dapat mengunggah bagian arsip dalam urutan apa pun. Anda juga dapat mengunggahnya secara paralel. Anda dapat mengunggah hingga 10.000 bagian untuk unggahan multipart.

    Dalam perintah berikut, ganti nilai untuk--vault-name,--account-ID, dan --upload-id parameter. ID upload harus cocok dengan ID yang diberikan sebagai output dari initiate-multipart-upload perintah. --rangeParameter menentukan bahwa Anda akan mengunggah bagian dengan ukuran 1 MiB (1024 x 1024 byte). Ukuran ini harus sesuai dengan apa yang Anda tentukan dalam initiate-multipart-upload perintah. Sesuaikan nilai ukuran ini jika diperlukan. --bodyParameter menentukan nama bagian yang Anda upload.

    aws glacier upload-multipart-part --body chunkaa --range='bytes 0-1048575/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID

    Jika berhasil, perintah akan menghasilkan output yang berisi checksum untuk bagian yang diunggah.

  5. Jalankan upload-multipart-part perintah lagi untuk mengunggah bagian yang tersisa dari unggahan multipart Anda. Perbarui nilai --range dan –-body parameter untuk setiap perintah agar sesuai dengan bagian yang Anda unggah.

    aws glacier upload-multipart-part --body chunkab --range='bytes 1048576-2097151/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkac --range='bytes 2097152-3145727/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkad --range='bytes 3145728-4194303/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkae --range='bytes 4194304-4607999/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    catatan

    Nilai --range parameter perintah akhir lebih kecil karena bagian akhir dari unggahan kami kurang dari 1 MiB. Jika berhasil, setiap perintah akan menghasilkan output yang berisi checksum untuk setiap bagian yang diunggah.

  6. Selanjutnya, Anda akan merakit arsip dan menyelesaikan unggahan. Anda harus menyertakan ukuran total dan hash SHA256 pohon arsip.

    Untuk menghitung hash SHA256 pohon arsip, Anda dapat menggunakanJava, C #, atau. Python Dalam contoh ini, Anda akan menggunakanPython. Untuk petunjuk tentang penggunaan Java atau C #, lihatChecksum Komputasi.

    Buat Python file checksum.py dan masukkan kode berikut. Jika perlu, ganti nama file asli.

    from botocore.utils import calculate_tree_hash checksum = calculate_tree_hash(open('file_to_upload', 'rb')) print(checksum)
  7. Jalankan checksum.py untuk menghitung hash SHA256 pohon. Hash berikut mungkin tidak cocok dengan output Anda.

    $ python3 checksum.py $ 3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c
  8. Gunakan complete-multipart-uploadperintah untuk menyelesaikan unggahan arsip. Ganti nilai untuk--vault-name,--account-ID,--upload-ID, dan --checksum parameter. Nilai --archive parameter menentukan ukuran total, dalam byte, dari arsip. Nilai ini harus merupakan jumlah dari semua ukuran masing-masing bagian yang Anda unggah. Ganti nilai ini jika diperlukan.

    aws glacier complete-multipart-upload --archive-size 4608000 --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID --checksum checksum

    Setelah selesai, perintah akan menampilkan ID arsip, checksum, dan lokasi di S3 Glacier.