Menggunakan Amazon S3 Glacier di AWS CLI - AWS Command Line Interface

Dokumentasi ini AWS CLI hanya untuk Versi 1. Untuk dokumentasi yang terkait dengan Versi 2 AWS CLI, lihat Panduan Pengguna Versi 2.

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

Menggunakan Amazon S3 Glacier di AWS CLI

Pengantar Amazon S3 Glacier

Topik ini menunjukkan contoh AWS CLI perintah yang melakukan tugas umum untuk S3 Glacier. Contoh menunjukkan cara menggunakan file untuk mengunggah file besar AWS CLI ke S3 Glacier dengan membaginya menjadi bagian-bagian yang lebih kecil dan mengunggahnya dari baris perintah.

Anda dapat mengakses fitur Amazon S3 Glacier menggunakan (). AWS Command Line Interface AWS CLI Untuk membuat daftar AWS CLI perintah untuk S3 Glacier, gunakan perintah berikut.

aws glacier help
catatan

Untuk referensi perintah dan contoh tambahan, lihat aws glacier di AWS CLI Command Reference.

Prasyarat

Untuk menjalankan glacier perintah, Anda perlu:

  • Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, silakan lihat Menginstal, memperbarui, dan menghapus instalasi AWS CLI dan Otentikasi dan akses kredensional untuk AWS CLI.

  • Tutorial ini menggunakan beberapa alat baris perintah yang biasanya sudah diinstal sebelumnya pada sistem operasi mirip Unix, termasuk Linux dan macOS. Pengguna Windows dapat menggunakan alat yang sama dengan menginstal Cygwin dan menjalankan perintah dari terminal Cygwin. Kami mencatat perintah dan utilitas asli Windows yang melakukan fungsi yang sama jika tersedia.

Buat lemari besi Amazon S3 Glacier

Buat lemari besi dengan create-vault perintah.

$ aws glacier create-vault --account-id - --vault-name myvault { "location": "/123456789012/vaults/myvault" }
catatan

Semua perintah S3 Glacier memerlukan parameter ID akun. Gunakan karakter tanda hubung (--account-id -) untuk menggunakan akun saat ini.

Siapkan file untuk diunggah

Buat file untuk unggahan pengujian. Perintah berikut membuat file bernama largefile yang berisi tepat 3 MiB data acak.

Linux atau macOS

$ dd if=/dev/urandom of=largefile bs=3145728 count=1 1+0 records in 1+0 records out 3145728 bytes (3.1 MB) copied, 0.205813 s, 15.3 MB/s

ddadalah utilitas yang menyalin sejumlah byte dari file input ke file output. Contoh sebelumnya menggunakan file perangkat sistem /dev/urandom sebagai sumber data acak. fsutilmelakukan fungsi serupa di Windows.

Windows

C:\> fsutil file createnew largefile 3145728 File C:\temp\largefile is created

Selanjutnya, bagi file menjadi potongan 1 MiB (1.048.576 byte) menggunakan file splitter.

$ split -b 1048576 --verbose largefile chunk creating file `chunkaa' creating file `chunkab' creating file `chunkac'

Memulai upload dan meng-upload file multipart

Buat unggahan multibagian di Amazon S3 Glacier dengan menggunakan perintah. initiate-multipart-upload

$ aws glacier initiate-multipart-upload --account-id - --archive-description "multipart upload test" --part-size 1048576 --vault-name myvault { "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ", "location": "/123456789012/vaults/myvault/multipart-uploads/19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ" }

S3 Glacier memerlukan ukuran setiap bagian dalam byte (1 MiB dalam contoh ini), nama vault Anda, dan ID akun untuk mengonfigurasi unggahan multibagian. AWS CLI Output ID upload ketika operasi selesai. Simpan ID unggahan ke variabel shell untuk digunakan nanti.

Linux atau macOS

$ UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"

Windows

C:\> set UPLOADID="19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"

Selanjutnya, gunakan upload-multipart-part perintah untuk mengunggah masing-masing dari tiga bagian.

$ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkaa --range 'bytes 0-1048575/*' --account-id - --vault-name myvault { "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" } $ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkab --range 'bytes 1048576-2097151/*' --account-id - --vault-name myvault { "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" } $ aws glacier upload-multipart-part --upload-id $UPLOADID --body chunkac --range 'bytes 2097152-3145727/*' --account-id - --vault-name myvault { "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" }
catatan

Contoh sebelumnya menggunakan tanda dolar ($) untuk referensi isi variabel UPLOADID shell di Linux. Pada baris perintah Windows, gunakan tanda persen (%) di kedua sisi nama variabel (misalnya,%UPLOADID%).

Anda harus menentukan rentang byte setiap bagian saat Anda mengunggahnya sehingga S3 Glacier dapat memasangnya kembali dalam urutan yang benar. Setiap bagian adalah 1.048.576 byte, sehingga bagian pertama menempati byte 0-1048575, yang kedua 1048576-2097151, dan yang ketiga 2097152-3145727.

Selesaikan unggahan

Amazon S3 Glacier memerlukan hash pohon dari file asli untuk mengonfirmasi bahwa semua bagian yang diunggah mencapai utuh. AWS

Untuk menghitung hash pohon, Anda harus membagi file menjadi 1 bagian MiB dan menghitung hash SHA biner -256 dari setiap bagian. Kemudian Anda membagi daftar hash menjadi pasangan, menggabungkan dua hash biner di setiap pasangan, dan mengambil hash dari hasilnya. Ulangi proses ini sampai hanya ada satu hash yang tersisa. Jika ada jumlah ganjil hash di tingkat mana pun, promosikan ke tingkat berikutnya tanpa memodifikasinya.

Kunci untuk menghitung hash pohon dengan benar saat menggunakan utilitas baris perintah adalah menyimpan setiap hash dalam format biner dan mengkonversi ke heksadesimal hanya pada langkah terakhir. Menggabungkan atau hashing versi heksadesimal dari setiap hash di pohon akan menyebabkan hasil yang salah.

catatan

Pengguna Windows dapat menggunakan type perintah sebagai pengganticat. Open SSL tersedia untuk Windows di Open SSL .org.

Untuk menghitung hash pohon
  1. Jika Anda belum melakukannya, pisahkan file asli menjadi 1 bagian MiB.

    $ split --bytes=1048576 --verbose largefile chunk creating file `chunkaa' creating file `chunkab' creating file `chunkac'
  2. Hitung dan simpan hash biner SHA -256 dari setiap potongan.

    $ openssl dgst -sha256 -binary chunkaa > hash1 $ openssl dgst -sha256 -binary chunkab > hash2 $ openssl dgst -sha256 -binary chunkac > hash3
  3. Gabungkan dua hash pertama dan ambil hash biner hasilnya.

    $ cat hash1 hash2 > hash12 $ openssl dgst -sha256 -binary hash12 > hash12hash
  4. Gabungkan hash induk dari potongan aa dan ab dengan hash potongan dan hash hasilnya, kali ini mengeluarkan ac heksadesimal. Simpan hasilnya dalam variabel shell.

    $ cat hash12hash hash3 > hash123 $ openssl dgst -sha256 hash123 SHA256(hash123)= 9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67 $ TREEHASH=9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67

Terakhir, selesaikan unggahan dengan complete-multipart-upload perintah. Perintah ini mengambil ukuran file asli dalam byte, nilai hash pohon akhir dalam heksadesimal, dan ID akun dan nama vault Anda.

$ aws glacier complete-multipart-upload --checksum $TREEHASH --archive-size 3145728 --upload-id $UPLOADID --account-id - --vault-name myvault { "archiveId": "d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg", "checksum": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67", "location": "/123456789012/vaults/myvault/archives/d3AbWhE0YE1m6f_fI1jPG82F8xzbMEEZmrAlLGAAONJAzo5QdP-N83MKqd96Unspoa5H5lItWX-sK8-QS0ZhwsyGiu9-R-kwWUyS1dSBlmgPPWkEbeFfqDSav053rU7FvVLHfRc6hg" }

Anda juga dapat memeriksa status brankas menggunakan describe-vault perintah.

$ aws glacier describe-vault --account-id - --vault-name myvault { "SizeInBytes": 3178496, "VaultARN": "arn:aws:glacier:us-west-2:123456789012:vaults/myvault", "LastInventoryDate": "2018-12-07T00:26:19.028Z", "NumberOfArchives": 1, "CreationDate": "2018-12-06T21:23:45.708Z", "VaultName": "myvault" }
catatan

Status Vault diperbarui sekitar sekali per hari. Lihat Bekerja dengan Vaults untuk informasi lebih lanjut.

Sekarang aman untuk menghapus file chunk dan hash yang Anda buat.

$ rm chunk* hash*

Untuk informasi selengkapnya tentang unggahan multibagian, lihat Mengunggah Arsip Besar dalam Checksum Suku Cadang dan Komputasi di Panduan Pengembang Gletser Amazon S3.

Sumber daya

AWS CLI referensi:

Referensi layanan: