オブジェクトを照会します。 この操作を呼び出すには、オブジェクトに対する読み取り権限が必要です。
使用上の注意
デフォルトでは、GetObject操作はHTTPおよびHTTPS経由のアクセスをサポートします。 HTTPS経由でのみバケットへのアクセスを許可するには、アクセス方法を指定するようにバケットポリシーを設定します。 詳細については、「バケットポリシーの設定」をご参照ください。
Archiveオブジェクトを照会する場合は、GetObject操作を呼び出す前に、RestoreObjectリクエストを送信してオブジェクトを復元するか、Archiveオブジェクトが格納されているバケットのArchiveオブジェクトへのリアルタイムアクセスを有効にする必要があります。
バージョン管理
デフォルトでは、GetObjectが呼び出された後、オブジェクトの現在のバージョンのみが返されます。
リクエストでオブジェクトのバージョンIDが指定されている場合、OSSは指定されたバージョンのオブジェクトを返します。 リクエストでバージョンIDがnullに設定されている場合、OSSはバージョンIDがnullのオブジェクトのバージョンを返します。
リクエスト構文
GET /ObjectName HTTP/1.1
ホスト: BucketName.oss-cn-hangzhou.aliyuncs.com
日付: GMT日付
権限付与: SignatureValue
Range: bytes=ByteRange (オプション)
承認ヘッダーの計算方法の詳細については、「承認ヘッダーに署名を含める」をご参照ください。
ネットワーク条件が悪い状態でOSSから100 MBを超えるオブジェクトをダウンロードすると、オブジェクトのダウンロードに失敗する可能性があります。 Rangeヘッダーを指定して、ラージオブジェクトのコンテンツの一部を照会できます。
GetObjectリクエストでは、範囲のみを指定できます。 Rangeは、クエリするオブジェクトのコンテンツ範囲を指定します。 Range: 0からobject size - 1
の有効値。 単位:バイト 例:
Range: bytes=0-499
は、最初の500バイトを指定します。Range: bytes=500-999
は、2番目の500バイトを指定します。Range: bytes=-500
は、最後の500バイトを指定します。Range: bytes=500-
オブジェクトの500番目のバイトから末尾までのコンテンツ範囲を指定します。Range: bytes=0-
最初のバイトから最後のバイトまでのデータ (オブジェクト全体) を指定します。
Rangeを無効な値に設定すると、InvalidRangeエラーコードが報告されます。 たとえば、1,000バイトのオブジェクトの最大有効範囲は0〜999
です。 Rangeをbytes=0-1000
に設定すると、InvalidRangeエラーコードが報告されます。
Rangeヘッダーを使用してOSSのリソースをクエリする方法の詳細については、 HTTP範囲リクエストをセグメント化してOSSリソースを取得する方法。
リクエストヘッダー
GetObjectリクエストを開始するときに、リクエストヘッダーを設定してレスポンスヘッダーをカスタマイズできます。 ただし、レスポンスヘッダーは、リクエストが成功した場合にのみ、リクエストヘッダーで指定された値に設定されます。 リクエストが成功した場合、200 OKが返されます。
匿名ユーザーとしてGetObjectリクエストを開始する場合、リクエストヘッダーを設定してレスポンスヘッダーをカスタマイズすることはできません。
ヘッダー | データ型 | 必須 | 説明 |
response-content-type | String | 任意 | レスポンスで返されるContent-Typeヘッダー。 デフォルトでは、このヘッダーは空のままです。 |
response-content-language | String | 任意 | レスポンスで返されるContent-languageヘッダー。 デフォルトでは、このヘッダーは空のままです。 |
response-expires | String | 任意 | レスポンスで返されるExpiresヘッダー。 デフォルトでは、このヘッダーは空のままです。 |
response-cache-control | String | 任意 | レスポンスで返されるCache-controlヘッダー。 デフォルトでは、このヘッダーは空のままです。 |
response-content-disposition | String | 任意 | レスポンスで返されるContent-dispositionヘッダー。 デフォルトでは、このヘッダーは空のままです。 |
response-content-encoding | String | 任意 | レスポンスで返されるContent-encodingヘッダー。 デフォルトでは、このヘッダーは空のままです。 |
範囲 | String | 任意 | クエリするデータの範囲。
デフォルトでは、このヘッダーは空のままです。 |
If-Modified-Since | String | 任意 | このヘッダーで指定された時刻がオブジェクトの最終変更時刻より前か無効な場合、オブジェクトと200 OKが返されます。 それ以外の場合、304 Not Modifiedが返されます。 時刻はGMTである必要があります。 例: デフォルトでは、このヘッダーは空のままです。 |
If-Unmodified-Since | String | 任意 | このヘッダーで指定された時間がオブジェクトの最後に変更された時間と同じかそれ以降の場合、オブジェクトと200 OKが返されます。 そうでない場合、412 Precondition Failedが返されます。 時刻はGMTである必要があります。 例: リクエストでIf-Modified-SinceおよびIf-Unmodified-Sinceヘッダーを指定できます。 デフォルトでは、このヘッダーは空のままです。 |
If-Match | String | 任意 | リクエストで指定されたETagがオブジェクトのETag値と一致する場合、オブジェクトと200 OKが返されます。 そうでない場合、412 Precondition Failedが返されます。 オブジェクトのETagは、オブジェクトのデータ整合性をチェックするために使用されます。 デフォルトでは、このヘッダーは空のままです。 |
If-None-マッチ | String | 任意 | リクエストで指定されたETagがオブジェクトのETagと一致しない場合、オブジェクトと200 OKが返されます。 それ以外の場合、304 Not Modifiedが返されます。 リクエストでIf-MatchおよびIf-None-Matchヘッダーを指定できます。 デフォルトでは、このヘッダーは空のままです。 |
Accept-Encoding | String | 任意 | クライアント側でのエンコード方法。 オブジェクトをGZIP形式で返す場合は、リクエストにAccept-Encoding:gzipヘッダーを含める必要があります。 OSSは、Content-Typeヘッダーに基づいて、GZIP形式で圧縮されたオブジェクトを返すかどうか、およびオブジェクトのサイズが1 KB以上かどうかを決定します。 説明
デフォルトでは、このヘッダーは空のままです。 |
レスポンスヘッダー
要求されたオブジェクトがシンボリックリンクである場合、シンボリックリンクが指すオブジェクトのコンテンツが返される。 Content-Length
、ETag
、およびContent-Md5
のレスポンスヘッダーは、返されたオブジェクトのメタデータを示します。 Last-Modified
ヘッダーの戻り値は、シンボリックリンクの最終修正時刻またはシンボリックリンクが指すオブジェクトの最終修正時刻のいずれか遅い方です。 その他のヘッダーは、シンボリックリンクのメタデータを示します。
ヘッダー | データ型 | 説明 |
x-oss-server-side-encryption | String | 要求されたオブジェクトがエントロピーエンコーディングに基づくサーバー側暗号化アルゴリズムを使用して暗号化されている場合、OSSはオブジェクトを自動的に復号し、GetObject要求を受信した後に復号化されたオブジェクトを返します。 OSSには、サーバー上のオブジェクトの暗号化に使用される暗号化アルゴリズムを示すx-oss-server-side-encryptionヘッダーがレスポンスに含まれています。 |
x-oss-tagging-count | String | オブジェクトに追加されたタグの数。 このヘッダーは、オブジェクトのタグを照会する権限がある場合にのみ返されます。 |
x-oss-expiration | String | ライフサイクルルールが設定されているバケット内のオブジェクトの有効期限。
|
例
シンプルなGetObjectリクエスト
リクエストの例
GET /oss.jpg HTTP/1.1 ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com 日付: 2月24日金曜日2012 06:38:30 GMT 権限付与: OSS qn6qrrqxo2oawuk53otfjbyc:UNQDb7GapEgJkcde6OhZ9J *****
オブジェクトのサンプル応答
HTTP/1.1 200 OK x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b ***** x-oss-object-type: Normal 日付: 2月24日金曜日2012 06:38:30 GMT 最終変更: 2月24日金曜日2012 06:07:48 GMT ETag: "5B3C1A2E0563E1B002CC607C *****" コンテンツタイプ: image/jpg コンテンツ-長さ: 344606 サーバー: AliyunOSS [344606バイトのオブジェクトデータ]
ディレクトリのサンプル応答
重要GetObjectリクエストがディレクトリに対して開始された場合、GetObjectリクエストで指定されたresponse-content-typeやRangeなどのカスタムレスポンスヘッダーは有効になりません。
HTTP/1.1 200 OK x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b ***** x-oss-object-type: Normal 日付: 3月31日水曜日2021 06:38:30 GMT 最終変更: 3月30日2021日火曜日06:07:48 GMT ETag: "null" Content-Type: application/x-directory コンテンツ長: 0 サーバー: AliyunOSS
Rangeヘッダーを含むGetObjectリクエスト
リクエストの例
GET /oss.jpg HTTP/1.1 Hos t:oss-example.oss-cn-hangzhou.aliyuncs.com 日付: 2月28日金曜日2012 05:38:42 GMT 範囲: バイト=100-900 権限付与: OSS qn6qrrqxo2oawuk5jbyc:qZzjF3DUtd + yK16BdhGtFcC *****
レスポンスの例
HTTP/1.1 206部分コンテンツ x-oss-request-id: 28f6-15ea-8224-234e-c0ce407 ***** x-oss-object-type: Normal 日付: 2月28日金曜日2012 05:38:42 GMT 最終変更: 2月24日金曜日2012 06:07:48 GMT ETag: "5B3C1A2E05E1B002CC607C *****" Accept-Ranges: バイト Content-Range: バイト100-900/344606 コンテンツタイプ: image/jpg コンテンツ-長さ: 801 サーバー: AliyunOSS [801バイトのオブジェクトデータ]
カスタム応答ヘッダーを含むGetObjectリクエスト
リクエストの例
GET /oss.jpg?response-expires=Thu % 2C % 2001% 20Feb % 202012% 2017% 3A00% 3A00% 20GMT& response-content-type=text&response-cache-control=No-cache&response-content-encoding=utf-8&response-content-language=% E4 % B8 % AD % E6 % HTTP 96% 87 /1.1 ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com: 日付: 2月24日金曜日2012 06:09:48 GMT
レスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC75A644 ***** x-oss-object-type: Normal 日付: 2月24日金曜日2012 06:09:48 GMT 最終変更: 2月24日金曜日2012 06:07:48 GMT ETag: "5B3C1A2E053D1B002CC607 *****" コンテンツ-長さ: 344606 接続: キープアライブ Content-disposition: attachment; filename=testing.txt コンテンツ言語: en コンテンツ符号化: utf-8 Content-type: テキスト Cache-control: no-cache 有効期限: 2月24日金曜日2012 17:00:00 GMT サーバー: AliyunOSS [344606バイトのオブジェクトデータ]
シンボリックリンクのGetObjectリクエスト
リクエストの例
GET /link-to-oss.jpg HTTP/1.1 Accept-Encoding: ID 日付: 11月2016日火曜日03:17:58 GMT ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com 権限付与: OSS qn6qrrqxok53otfjbyc:qZzjF3DUtd + yK16BdhGtFc *****
レスポンスの例
HTTP/1.1 200 OK サーバー: AliyunOSS 日付: 11月2016日火曜日03:17:58 GMT Content-Type: application/octet-stream コンテンツ-長さ: 20 接続: キープアライブ x-oss-request-id: 582143E6A212AD ***** Accept-Ranges: バイト ETag: "8086265EFC021F9A2F09BF4 ****" 最終変更: 11月2016日火曜日03:17:58 GMT x-oss-object-type: Symlink Content-MD5: gIYmXvwCEe0fmi8Jv0Y ****
復元されたオブジェクトのGetObjectリクエスト
リクエストの例
GET /oss.jpg HTTP/1.1 ホスト: oss-archive-example.oss-cn-hangzhou.aliyuncs.com 日付: 4月15日 (土) 2017 09:38:30 GMT 承認: OSS qn6qrrqxo2o *** k53otfjbyc:zUglwRPGkbByZxm1 + y4eyu + *****
レスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 58F723829F29F18D7F00 ***** x-oss-object-type: Normal x-oss-restore: 継続的な要求="false" 、有効期限="Sun、4月16日08:12:33 GMT" 2017 日付: 4月15日 (土) 2017 09:38:30 GMT 最終変更: 4月15日土曜日2017 06:07:48 GMT ETag: "5B3C1A2E0763E1B002CC607C *****" コンテンツタイプ: image/jpg コンテンツ-長さ: 344606 サーバー: AliyunOSS [354606バイトのオブジェクトデータ]
バージョンIDが指定されているオブジェクトを照会するために送信されるGetObjectリクエスト
リクエストの例
GET /example?versionId=CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0 **** HTTP/1.1 ホスト: versioning-get.oss-cn-hangzhou.aliyuncs.com 日付: 4月2019日火曜日02:58:06 GMT 権限付与: OSS lkojgxic6e:8wcOrEDt4iSxpBPfQW9OJNw *****
レスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 5CAC0A3EDE0170 ***** x-oss-version-id: CAEQNhiBgM0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY ***** x-oss-object-type: Normal 日付: 4月2019日火曜日02:58:06 GMT 最終変更: 3月22日金曜日2018 08:07:50 GMT ETag: "5B3C1A2E053D7002CC607C5A *****" コンテンツタイプ: text/html コンテンツ-長さ: 362149 サーバー: AliyunOSS [362149バイトのオブジェクトデータ]
バージョンIDが指定されておらず、現在のバージョンが削除マーカーであるオブジェクトを照会するために送信されるGetObjectリクエスト
リクエストの例
GET /例HTTP/1.1 ホスト: versioning-get.oss-cn-hangzhou.aliyuncs.com 日付: 4月2019日火曜日03:22:33 GMT 承認: OSS duagpvtn35:taVlDvAJMhEumrR + oLMWtQp *****
レスポンスの例
HTTP/1.1 404が見つかりません x-oss-request-id: 5CAC0FEADE0170 ***** x-oss-delete-marker: true x-oss-version-id: CAEQNxiBgyA0BYiIDc4ZDdmNTA2MGViZTRiNjE5NzZlZWM4OWM5OT ***** 日付: 4月2019日火曜日03:22:33 GMT Content-Type: application/xml 接続: キープアライブ サーバー: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <エラー> <Code>NoSuchKey</Code> <Message> 指定されたキーは存在しません。</Message> <RequestId>5CAC0FEADE0170 *****</RequestId> <HostId>versioning-get.oss-cn-hangzhou.aliyun *****</HostId> <キー> 例 </キー> </エラー>
バージョンIDが指定され、バージョンが削除マーカーであるオブジェクトを照会するために送信されるGetObjectリクエスト
リクエストの例
GET /example?versionId=CAEQMxiBgMCfqaWA0BYiIDliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk3 **** HTTP/1.1 ホスト: versioning-get.oss-cn-hangzhou.aliyuncs.com 日付: 4月2019日火曜日03:09:44 GMT 権限付与: OSS tvqm50uz4y:51UaP + wQt5k1RQang/U6Eeq *****
レスポンスの例
HTTP/1.1 405メソッドが許可されていない x-oss-request-id: 5CAC0CF8DE01700 ***** x-oss-delete-marker: true x-oss-version-id: CAEQMxiBgMCfqaWADliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk ***** 許可: 削除 日付: 4月2019日火曜日03:09:44 GMT Content-Type: application/xml コンテンツ-長さ: 318 接続: キープアライブ サーバー: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <エラー> <Code>MethodNotAllowed</Code> <Message> 指定されたメソッドはこのリソースに対して許可されません。</Message> <RequestId>5CAC0CF8DE0170 *****</RequestId> <HostId>versioning-get.oss-cn-hangzhou.aliyunc *****</HostId> <Method>GET</Method> <ResourceType>DeleteMarker</ResourceType> </エラー>
OSS SDK
次のプログラミング言語のOSS SDKを使用して、GetObject操作を呼び出すことができます。
エラーコード
エラーコード | HTTPステータスコード | 説明 |
NoSuchKey | 404 | 指定されたオブジェクトは存在しません。 |
SymlinkTargetNotExist | 404 | 要求されたオブジェクトはシンボリックリンクであり、シンボリックリンクが指すオブジェクトは存在しない。 |
InvalidTargetType | 400 | 要求されたオブジェクトはシンボリックリンクであり、シンボリックリンクが指すオブジェクトは別のシンボリックリンクである。 |
InvalidObjectState | 403 | アーカイブオブジェクトをダウンロードすると、次のいずれかのシナリオが発生します。
|
Not Modified | 304 | 考えられる原因:
|
Precondition Failed | 412 | 考えられる原因:
|
Not Found | 404 | オブジェクトのバージョンIDがリクエストに指定されておらず、オブジェクトの現在のバージョンが削除マーカーです。 |
Method Not Allowed | 405 | オブジェクトのバージョンIDはリクエストで指定され、バージョンは削除マーカーです。 |