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