ジョブの出力の取得 (GET output) - Amazon S3 Glacier

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ジョブの出力の取得 (GET output)

Description

このオペレーションでは、ジョブの開始 (ジョブの POST) を使用して開始したジョブの出力結果をダウンロードします。出力は、ジョブの開始時に指定したジョブタイプに応じて、アーカイブのコンテンツとボールトインベントリのいずれかとなります。

すべてのジョブの出力をダウンロードすることも、バイト範囲を指定して出力の一部をダウンロードすることもできます。アーカイブの取得ジョブでもインベントリの取得ジョブでも、ジョブの出力の取得レスポンスのヘッダーで返されたサイズとダウンロードされたサイズを比較して確認する必要があります。

アーカイブの取得ジョブでは、ダウンロードされたサイズが予期されたサイズであることも確認する必要があります。出力の一部をダウンロードする場合は、指定したバイト範囲が予期されるサイズとなります。たとえば、bytes=0-1048575 の範囲を指定した場合、ダウンロードサイズが 1,048,576 バイトであることを確認する必要があります。アーカイブ全体をダウンロードする場合は、Amazon S3 Glacier (S3 Glacier) にアップロードした際のアーカイブのサイズが予期されるサイズになります。予期されるサイズは、ジョブの出力の取得レスポンスのヘッダーでも返されます。

アーカイブの取得ジョブの場合、指定したバイト範囲に応じて、S3 Glacier はデータの一部のチェックサムを返します。ダウンロードしたデータが正しい部分であることを確認するには、クライアント側でチェックサムを計算し、値が一致していること、および予期されたサイズがダウンロードされていることを確認します。

ジョブ ID は、S3 Glacier がジョブを完了してから少なくとも 24 時間は有効です。つまり、S3 Glacier がジョブを完了してから 24 時間以内であれば、ジョブの出力をダウンロードできます。

Requests

Syntax

ジョブの出力を取得するには、特定のジョブの GET の URI に HTTP output リクエストを送信します。

GET /AccountId/vaults/VaultName/jobs/JobID/output HTTP/1.1 Host: glacier.Region.amazonaws.com Date: Date Authorization: SignatureValue Range: ByteRangeToRetrieve x-amz-glacier-version: 2012-06-01

注記

-AccountId値は AWS アカウント ボールトを所有するアカウントの ID。次のいずれかを実行できます。 AWS アカウント ID、またはオプションで単一の '-'(ハイフン)を使用します。この場合、Amazon S3 Glacier は AWS アカウント リクエストに署名するため使用された認証情報に関連する ID。アカウント ID を使用する場合は、ID にハイフン ('-') を含めないでください。

リクエストパラメータ

このオペレーションではリクエストパラメータを使用しません。

リクエストヘッダー

この操作では、すべての操作で共通のリクエストヘッダーに加えて、次のリクエストヘッダー使用します。共通のリクエストヘッダーの詳細については、「」を参照してください。一般的なリクエストヘッダー

名前 説明 必須
Range

出力から取得するバイト範囲。たとえば、最初の 1,048,576 バイトをダウンロードする場合は、範囲を「bytes=0-1048575」と指定します。詳細については、「Range ヘッダーフィールドの定義」を参照してください。範囲は、ジョブの開始リクエストで指定された範囲に応じて決まります。このオペレーションではデフォルトで、出力全体をダウンロードするようになっています。

ジョブの出力が大きい場合には、Range リクエストヘッダーを使用して出力の一部を取得することができます。このようにすると、出力全体を小さなバイトから成るチャンクに分けてダウンロードできます。たとえば、ダウンロードしようとしているジョブの出力が 1 GB であるため、ジョブの出力の取得リクエストを計 8 回送信して、1 回につき 128 MB ずつダウンロードするとします。この場合、ジョブの出力のダウンロードのプロセスは以下のようになります。

  1. Range ヘッダーを使用し、適切なバイト範囲を指定して 128 MB 分の出力のチャンクをダウンロードします。128 MB のデータがすべて受信されたことを確認します。

  2. レスポンスには、データのほかに、ペイロードのチェックサムが含まれています。クライアント側でペイロードのチェックサムを計算したうえで、レスポンスで受信したチェックサムと比較し、必要なデータがすべて受信できたことを確認します。

  3. 出力データを 128 MB に分けたチャンク 8 つ全部について、ステップ 1 と 2 を繰り返します。バイト範囲は、毎回適切なものを指定します。

  4. ジョブの出力をすべてダウンロードしたら、チェックサムの値 8 つをリストにまとめたものができあがります。その 8 つの値の木構造ハッシュを計算して、出力全体のチェックサムを導き出します。ジョブの説明 (GET JobID) オペレーションを使用して、出力を提供したジョブのジョブ情報を取得します。レスポンスには、S3 Glacier に保存されているアーカイブ全体のチェックサムが含まれます。計算したチェックサムとこの値を比較して、アーカイブのコンテンツ全体がエラーもなくダウンロードできたことを確認します。

Type: 文字列

デフォルト: なし

制約: なし

いいえ

リクエストボディ

この操作にリクエストボディはありません。

Responses

Syntax

取得リクエストがジョブデータをすべて返す場合には、ジョブの出力レスポンスによってレスポンスコード 200 OK が返されます。リクエストで Range ヘッダーを指定するなど、コンテンツの一部をリクエストした場合には、レスポンスコード 206 Partial Content が返されます。

HTTP/1.1 200 OK x-amzn-RequestId: x-amzn-RequestId Date: Date Content-Type: ContentType Content-Length: Length x-amz-sha256-tree-hash: ChecksumComputedByAmazonGlacier [Body containing job output.]

レスポンスヘッダー

ヘッダー 説明
Content-Range

S3 Glacier によって返されたバイト範囲。出力の一部のみをダウンロードする場合、レスポンスには S3 Glacier が返すバイト範囲が示されます。

たとえば、bytes 0-1048575/8388608 であれば最初の 1 MB​~​8 MB が返されます。

Content-Range ヘッダーの詳細については、「Content-Range ヘッダーフィールドの定義」を参照してください。

Type: 文字列

Content-Type

Content-Type は、ジョブの出力がアーカイブであるかボールトインベントリであるかによって異なります。

  • アーカイブデータであれば、Content-Type は application/octet-stream になります。

  • ボールトインベントリであれば、ジョブの開始時に CSV 形式をリクエストした場合には、Content-Type は text/csv になります。それ以外の場合には、ボールトインベントリはデフォルトで JSON として返され、Content-Type は application/json となります。

Type: 文字列

x-amz-sha256-tree-hash

レスポンスのデータのチェックサム。このヘッダーは、アーカイブの取得ジョブの出力を取得するときにのみ返されます。さらに、このヘッダーは、ジョブの開始リクエストで指定して取得したデータ範囲と、ジョブの出力の取得でダウンロードするデータ範囲のどちらも木構造ハッシュ可能になっている場合にも表示されます。木構造ハッシュ可能な範囲の詳細については、「データをダウンロードするときのチェックサムの受信」を参照してください。

たとえば、ジョブの開始リクエストで木構造ハッシュ可能になっている (アーカイブ全体が含まれる) 範囲を取得対象に指定した場合には、以下の条件に該当すると、ダウンロードするデータのチェックサムを受け取ることになります。

  • 取得対象のデータの全範囲を取得した。

  • 取得対象としたデータのバイト範囲が、1 メガバイト (1024 KB) に 2 のべき乗の数を乗じたサイズであり、始点および終点がリクエストした範囲のサイズの倍数である。たとえば、取得するデータが 3.1 MB であり、始点が 1 MB、終点が 2 MB の範囲が返されるように指定した場合には、レスポンスヘッダーとして x-amz-sha256-tree-hash が返されます。

  • 取得対象となるデータの返される範囲がデータの終わりまでであり、その範囲の始点が、取得対象となる範囲のサイズの倍数で、切り上げると次の 2 のべき乗の値になるものの、1 メガバイト (1024 KB) 未満ではない。たとえば、取得するデータが 3.1 MB であり、始点が 2 MB、終点が 3.1 MB (データの終わり) の範囲を指定した場合には、レスポンスヘッダーとして x-amz-sha256-tree-hash が返されます。

Type: 文字列

レスポンス本文

S3 Glacier は、レスポンス本文にジョブの出力を返します。出力は、ジョブのタイプに応じて、アーカイブのコンテンツとボールトインベントリのいずれかになります。ボールトインベントリの場合、デフォルトでは、インベントリのリストが以下の JSON 本文として返されます。

{ "VaultARN": String, "InventoryDate": String, "ArchiveList": [ {"ArchiveId": String, "ArchiveDescription": String, "CreationDate": String, "Size": Number, "SHA256TreeHash": String }, ... ] }

ボールトインベントリジョブの開始時に出力形式としてカンマ区切り値 (CSV) をリクエストした場合には、本文でボールトインベントリが CSV 形式で返されます。CSV 形式は "ArchiveId"、"ArchiveDescription"、"CreationDate"、"Size"、および "SHA256TreeHash" の 5 列で構成されます。定義は、対応する JSON フィールドと同じです。

注記

CSV 形式では、フィールド全体が二重引用符で囲まれた状態で返されることがあります。フィールドにカンマまたは二重引用符が含まれる場合には、常に二重引用句で囲まれた状態で返されます。たとえば、my archive description,1"my archive description,1" として返されます。二重引用符で囲まれたフィールドが返される場合に、そのフィールドに二重引用符があるときは、バックスラッシュ文字を前に置くことによってエスケープします。たとえば、my archive description,1"2 であれば "my archive description,1\"2"my archive description,1\"2 であれば "my archive description,1\\"2" という形式で返されます。バックスラッシュ文字は、エスケープされません。

JSON レスポンス本文には次の JSON フィールドが含まれています。

ArchiveDescription

アーカイブの説明。

Type: 文字列

ArchiveId

アーカイブの ID。

Type: 文字列

ArchiveList

アーカイブのメタデータの配列。配列内の各オブジェクトは、ボールトに含まれる 1 つのアーカイブのメタデータを表しています。

Type: 配列

CreationDate

アーカイブが作成された日時(UTC)。

Type: ISO 8601 日付形式の文字列表現 (例:2013-03-20T17:03:43.221Z

InventoryDate

対象となるボールトが変更されてから作成が完了した最新のボールトインベントリの日時(UTC)。S3 Glacier では 1 日に 1 回ボールトインベントリを作成するものの、インベントリの日付は、最後のインベントリ以降にボールトに対してアーカイブの追加または削除があった場合にのみ更新されます。

Type: ISO 8601 日付形式の文字列表現 (例:2013-03-20T17:03:43.221Z

SHA256TreeHash

アーカイブの木構造ハッシュ。

Type: 文字列

サイズ

アーカイブのサイズのバイト数。

Type: 数値

VaultARN

アーカイブ取得がリクエストされた Amazon リソース ネーム(ARN)のリソース。

Type: 文字列

Errors

Amazon S3 Glacier の例外とエラーメッセージについては、「」を参照してください。エラーレスポンス

Examples

以下の例は、アーカイブの取得ジョブのリクエストを示しています。

例 1: 出力のダウンロード

この例では、アーカイブの取得開始ジョブのリクエストに対するレスポンスとして S3 Glacier によって作成されたデータを取得します。

リクエストの例

GET /-/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID/output HTTP/1.1 Host: glacier.us-west-2.amazonaws.com x-amz-Date: 20170210T120000Z x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2

レスポンスの例

以下は、アーカイブの取得ジョブに対するレスポンスの例です。Content-Type ヘッダーが application/octet-stream になっており、レスポンスに x-amz-sha256-tree-hash ヘッダーが含まれていることに注目してください。これは、ジョブデータがすべて返されることを示すものです。

HTTP/1.1 200 OK x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q x-amz-sha256-tree-hash: beb0fe31a1c7ca8c6c04d574ea906e3f97b31fdca7571defb5b44dca89b5af60 Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Type: application/octet-stream Content-Length: 1048576 [Archive data.]

以下は、インベントリの取得ジョブに対するレスポンスの例です。Content-Type ヘッダーが application/json であることに注目してください。また、レスポンスには x-amz-sha256-tree-hash ヘッダーがありません。

HTTP/1.1 200 OK x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Type: application/json Content-Length: 906 { "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault", "InventoryDate": "2011-12-12T14:19:01Z", "ArchiveList": [ { "ArchiveId": "DMTmICA2n5Tdqq5BV2z7og-A20xnpAPKt3UXwWxdWsn_D6auTUrW6kwy5Qyj9xd1MCE1mBYvMQ63LWaT8yTMzMaCxB_9VBWrW4Jw4zsvg5kehAPDVKcppUD1X7b24JukOr4mMAq-oA", "ArchiveDescription": "my archive1", "CreationDate": "2012-05-15T17:19:46.700Z", "Size": 2140123, "SHA256TreeHash": "6b9d4cf8697bd3af6aa1b590a0b27b337da5b18988dbcc619a3e608a554a1e62" }, { "ArchiveId": "2lHzwhKhgF2JHyvCS-ZRuF08IQLuyB4265Hs3AXj9MoAIhz7tbXAvcFeHusgU_hViO1WeCBe0N5lsYYHRyZ7rrmRkNRuYrXUs_sjl2K8ume_7mKO_0i7C-uHE1oHqaW9d37pabXrSA", "ArchiveDescription": "my archive2", "CreationDate": "2012-05-15T17:21:39.339Z", "Size": 2140123, "SHA256TreeHash": "7f2fe580edb35154041fa3d4b41dd6d3adaef0c85d2ff6309f1d4b520eeecda3" } ] }

例 2: 出力の一部のみダウンロード

この例では、アーカイブの取得開始ジョブのリクエストに応じて、S3 Glacier によって準備されたアーカイブの一部のみ取得します。このリクエストでは、オプションの Range ヘッダーを使用して最初の 1,024 バイトのみを取得しています。

リクエストの例

GET /-/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID/output HTTP/1.1 Host: glacier.us-west-2.amazonaws.com x-amz-Date: 20170210T120000Z Range: bytes=0-1023 x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2

レスポンスの例

以下の正常なレスポンスは、206 Partial Content レスポンスを示しています。この場合、レスポンスにはContent-Rangeヘッダーを使用して、S3 Glacier が返すバイト範囲を指定します。

HTTP/1.1 206 Partial Content x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range: bytes 0-1023/8388608 Content-Type: application/octet-stream Content-Length: 1024 [Archive data.]