GET Object
オブジェクトを取得します。
オブジェクトに対しREAD権限を持たなければ、オブジェクトを取得することはできません。
匿名ユーザにREAD権限が付与されていれば、Authorizationヘッダーを利用せずにオブジェクトを取得することができます。
リクエスト情報
シンタックス
GET /{bucket name}/{object key} HTTP/1.1 Host: s3api.iot.iij.jp Date: {date} Authorization: {authorization string} Range: bytes={byte range}
リクエストパラメータ
この操作では、以下のリクエストパラメータが使用可能です。
これらのリクエストパラメータを設定することで、ユーザは GET Object のレスポンスヘッダを上書きできます。 パラメータを設定しない場合は、PUT Object 時にリクエストヘッダーで指定した値が返されます。
GET Object に失敗した場合、エラーレスポンスのレスポンスヘッダは上書きされません。
パラメータ名 | 説明 | 必須 |
---|---|---|
response-content-type | レスポンスヘッダの Content-Type を指定します。
| × |
response-content-language | レスポンスヘッダの Content-Language を指定します。
| × |
response-expires | レスポンスヘッダの Expires を指定します。
| × |
response-cache-control | レスポンスヘッダの Cache-Control を指定します。
| × |
response-content-disposition | レスポンスヘッダの Content-Disposition を指定します。
| × |
response-content-encoding | レスポンスヘッダの Content-Encoding を指定します。
| × |
リクエストヘッダー
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
表. GET Object リクエストヘッダー一覧
HTTPヘッダー | 説明 | 必須 |
---|---|---|
Range | ダウンロードするオブジェクトの範囲を指定します。 bytes=開始位置-終了位置 の形式で記述します。開始位置を省略した場合、開始位置は 0 となり、終了位置を省略した場合はファイルの終了位置(オブジェクトのサイズ)となります。また、先頭の bytes= を省略することもできます。
値の指定パターンは、以下の3通りです。
範囲をカンマ区切りで複数指定された場合、最初に記載されている範囲のみを解釈します。 (e.x., bytes=0-999, bytes=1000-, -1999) | × |
If-Modified-Since | 指定された時間以降にオブジェクトが更新されていればオブジェクトを返し、その他の場合には304 Not Modifiedを返します。
| × |
If-Unmodified-Since | 指定された時間以降にオブジェクトが更新されていなければ、オブジェクトを返し、その他の場合には412 Precondition Failedを返します。
| × |
If-Match | 指定された値がオブジェクトのETagと 一致する 場合にオブジェクトを返します。一致しない場合には412 Precondition Failedを返します。
| × |
If-None-Match | 指定された値がオブジェクトのETagと 一致しない 場合にオブジェクトを返します。一致する場合には304 Not Modifiedを返します。
| × |
サーバサイド暗号化 で暗号化されたオブジェクトを取得する場合、以下のヘッダを指定します。
名前 | 説明 | 必須 |
---|---|---|
x-iijgio-server-side-encryption-customer-algorithm | オブジェクトの復号に用いるアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 |
x-iijgio-server-side-encryption-customer-key | オブジェクトの復号に用いる暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。 暗号化キーは対象オブジェクトの暗号化後に速やかに破棄されます。 | 〇 |
x-iijgio-server-side-encryption-customer-key-MD5 | 暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
リクエストエレメント
この操作ではリクエストエレメントは使用しません。
レスポンス情報
レスポンスヘッダー
この操作では基本レスポンスヘッダーに加え、以下のヘッダーを返します。
表. GET Object レスポンスヘッダー一覧
HTTPヘッダー | 説明 |
---|---|
x-iijgio-meta-* | オブジェクトのPUT操作をした際にメタデータを用意していた場合、x-iijgio-meta-を接頭辞として、レスポンスヘッダーで返されます。
|
Content-TypeはPUT Object時に指定された値が返されます。 PUT Object時にContent-Typeを指定されなかったオブジェクトについては、”binary/octet-stream”として返されます。
Rangeヘッダーを指定したリクエストに対しては、レスポンスに以下のヘッダーに正しい値を設定して返します。
Content-Length: xxx Accept-Ranges: yyy Content-Range: start-end/total
取得対象のオブジェクトが サーバサイド暗号化 で暗号化されている場合、追加で以下のヘッダを返します。
HTTPヘッダー | 説明 |
---|---|
x-iijgio-server-side-encryption-customer-algorithm | 暗号化に利用したアルゴリズムを返します。
|
x-iijgio-server-side-encryption-customer-key-MD5 | 暗号化に利用した暗号化キーのMD5値を返します。
|
レスポンスエレメント
この操作はレスポンスエレメントを返しません。
エラー情報
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
AccessDenied | 403 Forbidden | オブジェクトに対するREAD権限がありません。 |
NoSuchKey | 404 Not Found | 指定Keyのオブジェクトが存在しません。 |
InvalidRange | 416 Request Range Not Satisfiable | 無効な範囲が指定されています。 |
InvalidArgument | 400 Bad Request | 以下のいずれかが原因です。
|
InvalidEncryptionAlgorithmError | 400 Bad Request | x-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル
サンプル1:オブジェクトを取得する
リクエスト
GET /bucket/my-image.jpg HTTP/1.1 Host: s3api.iot.iij.jp Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: IIJGIO 02236Q3V0WHVSRW0EXG2:0RQf4/cRonhpaBX5sCYVf1bNRuU=
レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC148832E5 Date: Wed, 28 Oct 2009 22:32:00 GMT Last-Modified: Wed, 12 Oct 2009 17:50:00 GMT ETag: "fba9dede5f27731c9771645a39863328" Content-Length: 434234 Content-Type: text/plain Server: s3api.iot.iij.jp [434234 bytes of object data]
サンプル2:サーバサイド暗号化されたオブジェクトを取得する
リクエスト
GET /bucket/my-image.jpg HTTP/1.1 Host: s3api.iot.iij.jp Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: IIJGIO 02236Q3V0WHVSRW0EXG2:0RQf4/cRonhpaBX5sCYVf1bNRuU= x-iijgio-server-side-encryption-customer-algorithm: AES256 x-iijgio-server-side-encryption-customer-key: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI= x-iijgio-server-side-encryption-customer-key-md5: dnF5x6K/8ZZRzpfSlMMM+w==
レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC148832E5 x-iijgio-server-side-encryption-customer-algorithm: AES256 x-iijgio-server-side-encryption-customer-key-md5: dnF5x6K/8ZZRzpfSlMMM+w== Date: Wed, 28 Oct 2009 22:32:00 GMT Last-Modified: Wed, 12 Oct 2009 17:50:00 GMT ETag: "7510dc34e6d7b31a30bd83c81a570274" Content-Length: 434234 Content-Type: text/plain Server: s3api.iot.iij.jp [434234 bytes of object data]