StorageGRID のバケットから GetObject リクエストでオブジェクトを取得する
S3 GetObject リクエストを使用して、S3バケットからオブジェクトを取得できます。
GetObject とマルチパートオブジェクト
`partNumber`リクエストパラメータを使用して、マルチパートオブジェクトまたはセグメント化されたオブジェクトの特定の部分を取得できます。 `x-amz-mp-parts-count`レスポンス要素は、オブジェクトがいくつのパートで構成されているかを示します。
`partNumber`は、セグメント化/マルチパートオブジェクトと非セグメント化/非マルチパートオブジェクトの両方で 1 に設定できますが、 `x-amz-mp-parts-count`レスポンス要素は、セグメント化されたオブジェクトまたはマルチパートオブジェクトの場合にのみ返されます。
ユーザーメタデータ内のUTF-8文字
StorageGRID は、ユーザー定義メタデータ内のエスケープされた UTF-8 文字を解析または解釈しません。ユーザー定義メタデータにエスケープされた UTF-8 文字を含むオブジェクトに対する GET リクエストは、キー名または値に印刷不可能な文字が含まれている場合、 x-amz-missing-meta ヘッダーを返しません。
サポートされているリクエストヘッダー
以下のリクエストヘッダーがサポートされています:
-
x-amz-checksum-mode:特定ENABLED`Range`ヘッダーは、GetObjectの `x-amz-checksum-mode`ではサポートされていません。リクエストに `Range`を含め、 `x-amz-checksum-mode`が有効になっている場合、StorageGRID はレスポンスにチェックサム値を返しません。
サポートされていないリクエストヘッダー
以下のリクエストヘッダーはサポートされておらず、 `XNotImplemented`を返します:
-
x-amz-website-redirect-location
バージョン管理
`versionId`サブリソースが指定されていない場合、この操作はバージョン管理されたバケット内のオブジェクトの最新バージョンを取得します。オブジェクトの現在のバージョンが削除マーカーである場合、「見つかりません」ステータスが返され、 `x-amz-delete-marker`レスポンスヘッダーは `true`に設定されます。
顧客提供の暗号化キーを使用したサーバー側暗号化(SSE-C)のリクエストヘッダー
オブジェクトが指定した固有のキーで暗号化されている場合は、3つのヘッダーすべてを使用してください。
-
x-amz-server-side-encryption-customer-algorithm: `AES256`を指定します。 -
x-amz-server-side-encryption-customer-key:オブジェクトの暗号化キーを指定してください。 -
x-amz-server-side-encryption-customer-key-MD5:オブジェクトの暗号化キーのMD5ダイジェストを指定します。
|
|
ご提供いただいた暗号化キーは一切保存されません。暗号化キーを紛失した場合、対応するオブジェクトも失われます。オブジェクトデータの保護に顧客提供のキーを使用する前に、"サーバー側暗号化を使用する"の考慮事項を確認してください。 |
クラウドストレージプールオブジェクトに対する GetObject の動作
オブジェクトが"クラウド ストレージ プール"に保存されている場合、GetObjectリクエストの動作はオブジェクトの状態によって異なります。詳細については、"HeadObject"を参照してください。
|
|
オブジェクトがクラウドストレージプールに保存され、かつそのオブジェクトのコピーがグリッド上にも1つ以上存在する場合、GetObjectリクエストは、クラウドストレージプールからデータを取得する前に、まずグリッドからデータを取得しようとします。 |
| オブジェクトの状態 | GetObject の動作 |
|---|---|
StorageGRID に取り込まれたがILMによってまだ評価されていないオブジェクト、または従来のストレージプールに保存されているオブジェクト、またはイレイジャー コーディングを使用して保存されているオブジェクト |
オブジェクトのコピーが取得されます。 |
クラウドストレージプール内のオブジェクトだが、まだ取得不可能な状態に移行していない |
オブジェクトのコピーが取得されます。 |
オブジェクトが復元不可能な状態に遷移しました |
"RestoreObject" リクエストを使用して、オブジェクトを取得可能な状態に復元します。 |
復元不可能な状態から復元処理中のオブジェクト |
RestoreObject リクエストが完了するまで待ちます。 |
オブジェクトがクラウドストレージプールに完全に復元されました。 |
オブジェクトのコピーが取得されます。 |
クラウドストレージプール内のマルチパートオブジェクトまたはセグメントオブジェクト
マルチパートオブジェクトをアップロードした場合、またはStorageGRIDが大きなオブジェクトをセグメントに分割した場合、StorageGRIDはオブジェクトの一部またはセグメントのサブセットをサンプリングすることにより、そのオブジェクトがクラウドストレージプールで利用可能かどうかを判断します。場合によっては、GetObjectリクエストが、オブジェクトの一部がすでに取得不可能な状態に移行している場合や、オブジェクトの一部がまだ復元されていない場合に、誤って `200 OK`を返すことがあります。
このような場合:
-
GetObjectリクエストは一部のデータを返す可能性がありますが、転送の途中で停止する場合があります。
-
その後のGetObjectリクエストは `403 Forbidden`を返す可能性があります。
GetObjectおよびクロスグリッド複製
"グリッドフェデレーション"を使用していて、"グリッド間複製"がバケットに対して有効になっている場合、S3クライアントはGetObjectリクエストを発行することでオブジェクトのレプリケーションステータスを確認できます。応答にはStorageGRID固有の `x-ntap-sg-cgr-replication-status`レスポンスヘッダーが含まれ、以下のいずれかの値を持ちます:
| Grid | レプリケーションステータス |
|---|---|
ソース |
|
デスティネーション |
レプリカ:オブジェクトはソースグリッドから複製されました。 |
|
|
StorageGRID は `x-amz-replication-status`ヘッダーをサポートしていません。 |