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.
Topik
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=11+0 records in 1+0 records out 3145728 bytes (3.1 MB) copied, 0.205813 s, 15.3 MB/s
dd
adalah utilitas yang menyalin sejumlah byte dari file input ke file output. Contoh sebelumnya menggunakan file perangkat sistem /dev/urandom
sebagai sumber data acak. fsutil
melakukan fungsi serupa di Windows.
Windows
C:\>
fsutil file createnew
largefile
3145728File C:\temp\largefile is created
Selanjutnya, bagi file menjadi potongan 1 MiB (1.048.576 byte) menggunakan file splitter.
$
split -b 1048576 --verbose
largefile
chunkcreating 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-namemyvault
{ "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-namemyvault
{ "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" }
$
aws glacier upload-multipart-part --upload-id $UPLOADID --body
chunkab
--range 'bytes 1048576-2097151/*' --account-id - --vault-namemyvault
{ "checksum": "e1f2a7cd6e047fa606fe2f0280350f69b9f8cfa602097a9a026360a7edc1f553" }
$
aws glacier upload-multipart-part --upload-id $UPLOADID --body
chunkac
--range 'bytes 2097152-3145727/*' --account-id - --vault-namemyvault
{ "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
-
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'
-
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
-
Gabungkan dua hash pertama dan ambil hash biner hasilnya.
$
cat hash1 hash2 > hash12
$
openssl dgst -sha256 -binary hash12 > hash12hash
-
Gabungkan hash induk dari potongan
aa
danab
dengan hash potongan dan hash hasilnya, kali ini mengeluarkanac
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:
-
Mengunggah Arsip Besar di Bagian dalam Panduan Pengembang Gletser Amazon S3
-
Checksum Komputasi di Panduan Pengembang Amazon S3 Glacier
-
Bekerja dengan Vaults di Panduan Pengembang Amazon S3 Glacier