このページは、ボールトと 2012 年リリース当時の REST API を使用する、Amazon Glacier サービスの既存のお客様のみを対象としています。
アーカイブストレージソリューションをお探しの場合は、Amazon S3 の Amazon Glacier ストレージクラス (S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive) を使用することをお勧めします。これらのストレージオプションの詳細については、「Amazon Glacier ストレージクラス
Amazon Glacier (元のスタンドアロンのボールトベースのサービス) は、2025 年 12 月 15 日以降、新規のお客様を受け入れなくなります。既存のお客様に影響はありません。Amazon Glacier は、ボールトにデータを保存する独自の API を備えたスタンドアロンサービスであり、Amazon S3 および Amazon S3 Glacier ストレージクラスとは異なります。既存のデータは Amazon Glacier で無期限に安全性が確保され、引き続きアクセス可能です。移行は必要ありません。低コストの長期アーカイブストレージをお探しの場合、AWS は Amazon S3 Glacier ストレージクラス
Amazon Glacier で AWS SDK for .NET を使用して 1 回のオペレーションでアーカイブをアップロードする
両方高レベル API と低レベル API.NET 用の Amazon SDK で提供されているには、1 回のオペレーションでアーカイブをアップロードすることができます。
トピック
AWS SDK for .NET の高レベル API を使用してアーカイブをアップロードする
高レベル API の ArchiveTransferManager クラスには、ボールトへのアーカイブのアップロードに使用できる Upload メソッドが用意されています。
注記
Upload メソッドを使用して、小さなファイルや大きなファイルをアップロードできます。このメソッドでは、アップロードするファイルのサイズに応じて、1 回のオペレーションでアップロードするか、マルチパートアップロード API を使用してファイルをパート単位でアップロードするかを決定します。
例: AWS SDK for .NET の高レベル API を使用してアーカイブをアップロードする
次の C# コード例では、米国西部(オレゴン リージョン のボールト (examplevault) にアーカイブをアップロードします。
この例を実行するための詳しい手順については、「コード例の実行」を参照してください。ここに示したコードは、アップロードするファイルの名前で更新する必要があります。
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.govskope.ca.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(); } } }
AWS SDK for .NET の低レベル API を使用して 1 回のオペレーションでアーカイブをアップロードする
低レベル API には、アーカイブに関するあらゆるオペレーションのメソッドが用意されています。以下では、AWS SDK for .NET を使用してアーカイブをアップロードするステップを説明します。
-
AmazonGlacierClientクラスのインスタンス(クライアント)を作成します。アーカイブのアップロード先となる AWS リージョンを指定する必要があります。このクライアントを使用して実行するすべてのオペレーションは、そのAWSリージョンに適用されます。
-
UploadArchiveRequestクラスのインスタンスを作成することにより、リクエスト情報を指定します。アップロードするデータのほかにも、ペイロードのチェックサム (SHA-256 木構造ハッシュ)、ボールト名、およびアカウント ID を指定する必要があります。
アカウント ID を指定しなかった場合には、リクエストに署名する際に使用した認証情報に関連付けられているアカウント ID が使用されます。詳細については、「Amazon Glacier でのAWS SDK for .NET の使用」を参照してください。
-
リクエストオブジェクトをパラメータとして指定して、
UploadArchiveメソッドを実行します。レスポンスでは、Amazon Glacier によって新しくアップロードされたアーカイブのアーカイブ ID が返されます。
例: AWS SDK for .NET の低レベル API を使用して 1 回のオペレーションでアーカイブをアップロードする
以下の C# コードの例は、前述の手順を示しています。この例では、AWS SDK for .NET を使用してボールト (examplevault) にアーカイブをアップロードしています。
注記
1 回のリクエストでアーカイブをアップロードする際に基盤となる REST API については、「アーカイブのアップロード (POST archive)」を参照してください。
この例を実行するための詳しい手順については、「コード例の実行」を参照してください。ここに示したコードは、アップロードするファイルの名前で更新する必要があります。
using System; using System.IO; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.govskope.ca.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; } } } }