Amazon S3 Glacier での AWS SDK の使用 - Amazon S3 Glacier

Amazon S3 Glacier での AWS SDK の使用

アマゾン ウェブ サービスでは、Amazon S3 Glacier (S3 Glacier) 用のアプリケーションを開発するための SDK を提供しています。SDK ライブラリは基本となる S3 Glacier API をラップし、プログラミングタスクを簡素化します。たとえば、S3 Glacier に送信する各リクエストに対して、リクエストを認証するために署名を含める必要があります。SDK ライブラリを使用すると、コードに AWS セキュリティ認証情報のみを指定するだけで、ライブラリによって必要な署名が計算され、S3 Glacier に送信するリクエストにその署名が含められます。AWS SDK では、基本となる REST API に対応するライブラリが提供され、簡単にリクエストを作成したりレスポンスを処理したりするために使用できるオブジェクトが提供されます。

S3 Glacier をサポートする AWS SDK

S3 Glacier は次の AWS SDK でサポートされています。

この開発者ガイド全体で、Java および .NET SDK を使用した S3 Glacier の操作例が示されています。すべての言語のライブラリとサンプルコードについては、「サンプルコードとライブラリ」を参照してください。

AWS Command Line Interface (AWS CLI) は、S3 Glacier などの AWS のサービスを管理するための統合ツールです。AWS CLI のダウンロードの詳細については、「AWS Command Line Interface」を参照してください。S3 Glacier CLI コマンドの一覧については、「AWS CLI コマンドリファレンス」を参照してください。

Java 用と .NET 用の AWS SDK ライブラリ

Java 用と .NET 用の AWS SDK は高レベルと低レベルのラッパーライブラリを提供します。

低レベル API とは

低レベルのラッパーライブラリは、S3 Glacier でサポートされる基本となる REST API (Amazon S3 Glacier の API リファレンス) に厳密にマップしています。低レベル API では、各 S3 Glacier REST オペレーションに対して、対応するメソッド、リクエスト情報を指定するリクエストオブジェクト、および S3 Glacier レスポンスを処理するレスポンスオブジェクトを提供します。低レベルのラッパーライブラリは、基本となる S3 Glacier オペレーションの最も完全な実装です。

これらの SDK ライブラリの詳細については、「Amazon S3 Glacier で AWS SDK for Java を使用する」および「Amazon S3 Glacier で AWS SDK for .NET を使用する」を参照してください。

高レベル API とは

アプリケーション開発をさらに簡素化するために、これらのライブラリでは一部のオペレーションに対して高レベルの抽象化を提供します。たとえば、

  • アーカイブのアップロード — 低レベル API を使用して、ファイル名およびアーカイブの保存先となるボールトの名前とともにアーカイブをアップロードする場合は、ペイロードのチェックサム (SHA-256 木構造ハッシュ) を指定する必要があります。一方、高レベル API ではチェックサムが自動的に計算されます。

  • アーカイブまたはボールトインベントリのダウンロード — 低レベル API を使用して、アーカイブをダウンロードする場合、まずジョブを開始し、ジョブが完了するまで待機してから、ジョブの出力を取得します。S3 Glacier でジョブの完了時に通知されるように、Amazon Simple Notification Service (Amazon SNS) トピックを設定する追加コードを記述する必要があります。また、ジョブの完了メッセージがトピックに投稿されたかどうかを確認するポーリングのメカニズムも必要です。高レベル API には、これらのすべてのステップに対応した、アーカイブをダウンロードするためのメソッドが用意されています。必要な操作は、アーカイブ ID と、ダウンロードしたデータを保存するフォルダーのパスを指定することのみです。

これらの SDK ライブラリの詳細については、「Amazon S3 Glacier で AWS SDK for Java を使用する」および「Amazon S3 Glacier で AWS SDK for .NET を使用する」を参照してください。

高レベル API と低レベル API を使用する場合

一般的に、オペレーションの実行に必要なメソッドが高レベル API に用意されている場合は、シンプルな高レベル API を使用してください。ただし、高レベル API でその機能が提供されていない場合は、低レベル API を使用できます。また、低レベル API では、エラー発生時の再試行ロジックなど、オペレーションを細かく制御できます。たとえば、アーカイブをアップロードするときに、高レベル API ではファイルのサイズに応じて、単一オペレーションでアーカイブをアップロードするか、マルチパートアップロード API を使用するかを決定します。また、アップロードが失敗した場合に備えた組み込みの再試行ロジックもあります。ただし、アプリケーションでこれらの決定を細かく制御する必要がある場合は、低レベル API を使用します。