Mengunggah Arsip dalam Satu Operasi Menggunakan AWS SDK for .NET di Amazon S3 Glacier - Amazon S3 Glacier

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

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 S3 API, 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 dalam Satu Operasi Menggunakan AWS SDK for .NET di Amazon S3 Glacier

API tingkat tinggi dan tingkat rendah yang disediakan oleh Amazon SDK for .NET menyediakan metode untuk mengunggah arsip dalam satu operasi.

Mengunggah Arsip Menggunakan API Tingkat Tinggi dari AWS SDK for .NET

Kelas ArchiveTransferManager dari API tingkat tinggi menyediakan metode Upload yang dapat Anda gunakan untuk mengunggah arsip ke vault.

catatan

Anda dapat menggunakan metode Upload untuk mengunggah file kecil atau besar. Bergantung pada ukuran file yang Anda unggah, metode ini menentukan apakah akan mengunggahnya dalam satu operasi atau menggunakan API unggahan multipart untuk mengunggah file dalam beberapa bagian.

Contoh: Mengunggah Arsip Menggunakan API Tingkat Tinggi dari AWS SDK for .NET

Contoh kode C# berikut mengunggah arsip ke vault (examplevault) di Wilayah US West (Oregon).

Untuk petunjuk langkah demi langkah tentang cara menjalankan contoh ini, lihat Menjalankan Contoh Kode. Anda perlu memperbarui kode seperti yang ditunjukkan dengan nama file yang ingin Anda unggah.

using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.docsamples { class ArchiveUploadHighLevel { static string vaultName = "examplevault"; static string archiveToUpload = "*** Provide file name (with full path) to upload ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); // Upload an archive. string archiveId = manager.Upload(vaultName, "upload archive test", archiveToUpload).ArchiveId; Console.WriteLine("Archive ID: (Copy and save this ID for use in other examples.) : {0}", archiveId); Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } } }

Mengunggah Arsip dalam Satu Operasi Menggunakan API Tingkat Rendah dari AWS SDK for .NET

API tingkat rendah menyediakan metode untuk semua operasi arsip. Berikut adalah langkah-langkah untuk mengunggah arsip menggunakan AWS SDK for .NET.

  1. Buat instans dari kelas AmazonGlacierClient (klien).

    Anda harus menentukan Wilayah AWS tempat Anda ingin mengunggah arsip. Semua operasi yang Anda lakukan menggunakan klien ini berlaku untuk Wilayah AWS tersebut.

  2. Berikan informasi permintaan dengan membuat instans kelas UploadArchiveRequest.

    Selain data yang ingin Anda unggah, Anda perlu menyediakan checksum (hash pohon SHA-256) dari muatan, nama vault, dan ID akun Anda.

    Jika Anda tidak memberikan ID akun, ID akun yang terkait dengan kredensial yang Anda berikan untuk menandatangani permintaan akan diambil. Untuk informasi selengkapnya, lihat Menggunakan AWS SDK for .NET dengan Amazon S3 Glacier.

  3. Jalankan metode UploadArchive dengan menyediakan objek permintaan sebagai parameter.

    Sebagai respons, S3 Glacier akan mengembalikan ID arsip dari arsip yang baru diunggah.

Contoh: Mengunggah Arsip dalam Satu Operasi Menggunakan API Tingkat Rendah dari AWS SDK for .NET

Contoh kode #C berikut menjelaskan langkah sebelumnya. Contoh berikut menggunakan AWS SDK for .NET untuk mengunggah arsip ke vault (examplevault).

catatan

Untuk informasi tentang REST API yang mendasarinya guna mengunggah arsip dalam satu permintaan, lihat Mengunggah Arsip (POST archive).

Untuk petunjuk langkah demi langkah tentang cara menjalankan contoh ini, lihat Menjalankan Contoh Kode. Anda perlu memperbarui kode seperti yang ditunjukkan dengan nama file yang ingin Anda unggah.

using System; using System.IO; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.docsamples { class ArchiveUploadSingleOpLowLevel { static string vaultName = "examplevault"; static string archiveToUpload = "*** Provide file name (with full path) to upload ***"; public static void Main(string[] args) { AmazonGlacierClient client; try { using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2)) { Console.WriteLine("Uploading an archive."); string archiveId = UploadAnArchive(client); Console.WriteLine("Archive ID: {0}", archiveId); } } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } static string UploadAnArchive(AmazonGlacierClient client) { using (FileStream fileStream = new FileStream(archiveToUpload, FileMode.Open, FileAccess.Read)) { string treeHash = TreeHashGenerator.CalculateTreeHash(fileStream); UploadArchiveRequest request = new UploadArchiveRequest() { VaultName = vaultName, Body = fileStream, Checksum = treeHash }; UploadArchiveResponse response = client.UploadArchive(request); string archiveID = response.ArchiveId; return archiveID; } } } }