すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:GetObject

最終更新日:Feb 23, 2024

オブジェクトを照会します。 この操作を呼び出すには、オブジェクトに対する読み取り権限が必要です。

使用上の注意

  • デフォルトでは、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

任意

クエリするデータの範囲。

  • 指定された範囲が有効な場合、オブジェクトの合計サイズとデータの範囲が返されます。 たとえば、Content-Range: bytes 0 ~ 9/44は、オブジェクトの合計サイズが44バイトで、返されるデータの範囲が最初の10バイトであることを示します。

  • ただし、指定された範囲が無効な場合、オブジェクト全体が返され、レスポンスにContent-rangeヘッダーは含まれません。

デフォルトでは、このヘッダーは空のままです。

If-Modified-Since

String

任意

このヘッダーで指定された時刻がオブジェクトの最終変更時刻より前か無効な場合、オブジェクトと200 OKが返されます。 それ以外の場合、304 Not Modifiedが返されます。

時刻はGMTである必要があります。 例: 金曜日、11月2015日14:47:53 GMT

デフォルトでは、このヘッダーは空のままです。

If-Unmodified-Since

String

任意

このヘッダーで指定された時間がオブジェクトの最後に変更された時間と同じかそれ以降の場合、オブジェクトと200 OKが返されます。 そうでない場合、412 Precondition Failedが返されます。

時刻はGMTである必要があります。 例: 金曜日、11月2015日14:47:53 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以上かどうかを決定します。

説明
  • オブジェクトがGZIP形式で圧縮されている場合、レスポンスにはオブジェクトのETagは含まれません。

  • Content-Typeが次のいずれかの値に設定されている場合、GZIP形式での圧縮がサポートされます: text/cache-manifest、text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss + xml、application/json、およびtext/json。

デフォルトでは、このヘッダーは空のままです。

レスポンスヘッダー

要求されたオブジェクトがシンボリックリンクである場合、シンボリックリンクが指すオブジェクトのコンテンツが返される。 Content-LengthETag、および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

ライフサイクルルールが設定されているバケット内のオブジェクトの有効期限。

  • バケットのバージョン管理が有効

    • リクエストに含まれていないバージョンID

      要求されたオブジェクトがライフサイクルルールで指定された削除条件と一致する場合、x-oss-expirationヘッダーがレスポンスに含まれ、オブジェクトの現在のバージョンの有効期限が示されます。

    • リクエストに含まれるバージョンID

      要求されたオブジェクトがライフサイクルルールで指定された削除条件に一致するかどうかにかかわらず、x-oss-expirationヘッダーは応答に含まれません。

  • バケットのバージョン管理が有効になっていない

    • 要求されたオブジェクトがライフサイクルルールで指定された削除条件と一致する場合、x-oss-expirationヘッダーがレスポンスに含まれます。

    • 要求されたオブジェクトがライフサイクルルールで指定された削除条件と一致しない場合、x-oss-expirationヘッダーはレスポンスに含まれません。

  • シンプルな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

アーカイブオブジェクトをダウンロードすると、次のいずれかのシナリオが発生します。

  • オブジェクトのRestoreObjectリクエストが開始またはタイムアウトしていません。

  • オブジェクトのRestoreObjectリクエストが開始されましたが、オブジェクトは復元されません。

Not Modified

304

考えられる原因:

  • If-Modified-Sinceヘッダーはリクエストに指定されていますが、リクエストされたオブジェクトは指定された時間以降変更されていません。

  • If-None-Matchヘッダーはリクエストで指定され、リクエストで指定されたETagはリクエストされたオブジェクトのETagと同じです。

Precondition Failed

412

考えられる原因:

  • If-Unmodified-Sinceヘッダーはリクエストに指定されていますが、指定された時刻はリクエストされたオブジェクトの変更時刻よりも前です。

  • If-Matchヘッダーはリクエストで指定されていますが、リクエストで指定されたETagは、リクエストされたオブジェクトのETagとは異なります。

Not Found

404

オブジェクトのバージョンIDがリクエストに指定されておらず、オブジェクトの現在のバージョンが削除マーカーです。

Method Not Allowed

405

オブジェクトのバージョンIDはリクエストで指定され、バージョンは削除マーカーです。