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

Object Storage Service:GetObject

最終更新日:Dec 09, 2024

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

使用上の注意

  • デフォルトでは、GetObject操作はHTTPおよびHTTPS経由のアクセスをサポートします。 HTTPS経由でのみバケットへのアクセスを許可するには、アクセス方法を指定するようにバケットポリシーを設定します。 詳細については、「他のユーザーにOSSリソースへのアクセスを許可するバケットポリシーの設定」をご参照ください。

  • Archiveオブジェクトを照会する場合は、GetObject操作を呼び出す前に、RestoreObjectリクエストを送信してオブジェクトを復元するか、Archiveオブジェクトが格納されているバケットのArchiveオブジェクトへのリアルタイムアクセスを有効にする必要があります。

バージョン管理

デフォルトでは、GetObjectが呼び出された後、オブジェクトの現在のバージョンのみが返されます。

リクエストでオブジェクトのバージョンIDが指定されている場合、OSSは指定されたバージョンのオブジェクトを返します。 リクエストでバージョンIDがnullに設定されている場合、OSSはバージョンIDがnullのオブジェクトのバージョンを返します。

リクエスト構文

GET /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Range: bytes=ByteRange (optional)

承認ヘッダーの計算方法の詳細については、「承認ヘッダーの計算」をご参照ください。

ネットワーク条件が悪い状態でOSSから100 MBを超えるオブジェクトをダウンロードすると、オブジェクトのダウンロードに失敗する可能性があります。 Rangeヘッダーを指定して、ラージオブジェクトのコンテンツの一部を照会できます。 詳細については、「HTTP範囲リクエストをセグメント化してOSSリソースを取得する方法」をご参照ください。

リクエストヘッダー

GetObjectリクエストを開始するときに、リクエストヘッダーを設定してレスポンスヘッダーをカスタマイズできます。 ただし、レスポンスヘッダーは、リクエストが成功した場合にのみ、リクエストヘッダーで指定された値に設定されます。 リクエストが成功した場合、200 OKが返されます。

説明

匿名ユーザーとしてGetObjectリクエストを開始する場合、リクエストヘッダーを設定してレスポンスヘッダーをカスタマイズすることはできません。

ヘッダー

必須 / 任意

説明

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-Lengthは含まれません。

  • Content-Typeが次のいずれかの値に設定されている場合、GZIP形式での圧縮がサポートされます: text/cache-manifest、text/xml、text/css、text/html、text/plain、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
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Fri, 24 Feb 2012 06:38:30 GMT
    Authorization: OSS qn6q**************:77Dv****************

    オブジェクトのサンプル応答

    HTTP/1.1 200 OK
    x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b*****
    x-oss-object-type: Normal
    Date: Fri, 24 Feb 2012 06:38:30 GMT
    Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
    ETag: "5B3C1A2E0563E1B002CC607C*****"
    Content-Type: image/jpg
    Content-Length: 344606
    Server: AliyunOSS
    [344606 bytes of object data]

    ディレクトリのサンプル応答

    重要

    GetObjectリクエストがディレクトリに対して開始された場合、GetObjectリクエストで指定されたRangeなどのカスタム応答ヘッダーは有効になりません。

    HTTP/1.1 200 OK
    x-oss-request-id: 3a8f-2e2d-7965-3ff9-51c875b*****
    x-oss-object-type: Normal
    Date: Wed, 31 Mar 2021 06:38:30 GMT
    Last-Modified: Tue, 30 Mar 2021 06:07:48 GMT
    ETag: "null"
    Content-Type: application/x-directory
    Content-Length: 0
    Server: AliyunOSS
  • Rangeヘッダーを含むGetObjectリクエスト

    リクエストの例

    GET /oss.jpg HTTP/1.1
    Host:oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Fri, 28 Feb 2012 05:38:42 GMT
    Range: bytes=100-900
    Authorization: OSS qn6q**************:77Dv****************

    レスポンスの例

    HTTP/1.1 206 Partial Content
    x-oss-request-id: 28f6-15ea-8224-234e-c0ce407*****
    x-oss-object-type: Normal
    Date: Fri, 28 Feb 2012 05:38:42 GMT
    Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
    ETag: "5B3C1A2E05E1B002CC607C*****"
    Accept-Ranges: bytes
    Content-Range: bytes 100-900/344606
    Content-Type: image/jpg
    Content-Length: 801
    Server: AliyunOSS
    [801 bytes of object data]
  • カスタム応答ヘッダーを含むGetObjectリクエスト

    リクエストの例

    GET /oss.jpg?response-expires=Thu%2C%2001%20Feb%202012%2017%3A00%3A00%20GMT&response-cache-control=No-cache&response-content-disposition=attachment%253B%2520filename%253Dtesting.txt&response-content-encoding=utf-8&response-content-language=%E4%B8%AD%E6%96%87 HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com:
    Date: Fri, 24 Feb 2012 06:09:48 GMT

    レスポンスの例

    HTTP/1.1 200 OK
    x-oss-request-id: 559CC9BDC75A644*****
    x-oss-object-type: Normal
    Date: Fri, 24 Feb 2012 06:09:48 GMT 
    Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
    ETag: "5B3C1A2E053D1B002CC607*****"
    Content-Length: 344606
    Connection: keep-alive
    Content-disposition: attachment; filename=testing.txt
    Content-language: en
    Content-encoding: utf-8
    Content-type: jpg
    Cache-control: no-cache
    Expires: Fri, 24 Feb 2012 17:00:00 GMT
    Server: AliyunOSS
    [344606 bytes of object data]
  • シンボリックリンクのGetObjectリクエスト

    リクエストの例

    GET /link-to-oss.jpg HTTP/1.1
    Accept-Encoding: identity
    Date: Tue, 08 Nov 2016 03:17:58 GMT
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Authorization: OSS qn6q**************:77Dv****************

    レスポンスの例

    HTTP/1.1 200 OK
    Server: AliyunOSS
    Date: Tue, 08 Nov 2016 03:17:58 GMT
    Content-Type: application/octet-stream
    Content-Length: 20
    Connection: keep-alive
    x-oss-request-id: 582143E6A212AD*****
    Accept-Ranges: bytes
    ETag: "8086265EFC021F9A2F09BF4****"
    Last-Modified: Tue, 08 Nov 2016 03:17:58 GMT
    x-oss-object-type: Symlink
    Content-MD5: gIYmXvwCEe0fmi8Jv0Y****
  • 復元されたオブジェクトのGetObjectリクエスト

    リクエストの例

    GET /oss.jpg HTTP/1.1
    Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.com
    Date: Sat, 15 Apr 2017 09:38:30 GMT
    Authorization: OSS qn6q**************:77Dv****************

    レスポンスの例

    HTTP/1.1 200 OK
    x-oss-request-id: 58F723829F29F18D7F00*****
    x-oss-object-type: Normal
    x-oss-restore: ongoing-request="false", expiry-date="Sun, 16 Apr 2017 08:12:33 GMT"
    Date: Sat, 15 Apr 2017 09:38:30 GMT
    Last-Modified: Sat, 15 Apr 2017 06:07:48 GMT
    ETag: "5B3C1A2E0763E1B002CC607C*****"
    Content-Type: image/jpg
    Content-Length: 344606
    Server: AliyunOSS
    [354606 bytes of object data]
  • バージョンIDが指定されているオブジェクトを照会するために送信されるGetObjectリクエスト

    リクエストの例

    GET /example?versionId=CAEQNhiBgMDJgZCA0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY0**** HTTP/1.1
    Host: versioning-get.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 02:58:06 GMT
    Authorization: OSS qn6q**************:77Dv****************

    レスポンスの例

    HTTP/1.1 200 OK
    x-oss-request-id: 5CAC0A3EDE0170*****
    x-oss-version-id: CAEQNhiBgM0BYiIDc4MGZjZGI2OTBjOTRmNTE5NmU5NmFhZjhjYmY*****
    x-oss-object-type: Normal
    Date: Tue, 09 Apr 2019 02:58:06 GMT
    Last-Modified: Fri, 22 Mar 2018 08:07:50 GMT
    ETag: "5B3C1A2E053D7002CC607C5A*****"
    Content-Type: text/html
    Content-Length: 362149
    Server: AliyunOSS
    [362149 bytes of object data]
  • バージョンIDが指定されておらず、現在のバージョンが削除マーカーであるオブジェクトを照会するために送信されるGetObjectリクエスト

    リクエストの例

    GET /example HTTP/1.1
    Host: versioning-get.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 03:22:33 GMT
    Authorization: OSS qn6q**************:77Dv****************

    レスポンスの例

    HTTP/1.1 404 Not Found
    x-oss-request-id: 5CAC0FEADE0170*****
    x-oss-delete-marker: true
    x-oss-version-id: CAEQNxiBgyA0BYiIDc4ZDdmNTA2MGViZTRiNjE5NzZlZWM4OWM5OT*****
    Date: Tue, 09 Apr 2019 03:22:33 GMT
    Content-Type: application/xml
    Connection: keep-alive
    Server: AliyunOSS
    <?xml version="1.0" encoding="UTF-8"?>
    <Error>
      <Code>NoSuchKey</Code>
      <Message>The specified key does not exist.</Message>
      <RequestId>5CAC0FEADE0170*****</RequestId>
      <HostId>versioning-get.oss-cn-hangzhou.aliyun*****</HostId>
      <Key>example</Key>
    </Error>
  • バージョンIDが指定され、バージョンが削除マーカーであるオブジェクトを照会するために送信されるGetObjectリクエスト

    リクエストの例

    GET /example?versionId=CAEQMxiBgMCfqaWA0BYiIDliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk3**** HTTP/1.1
    Host: versioning-get.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 03:09:44 GMT
    Authorization: OSS qn6q**************:77Dv****************

    レスポンスの例

    HTTP/1.1 405 Method Not Allowed
    x-oss-request-id: 5CAC0CF8DE01700*****
    x-oss-delete-marker: true
    x-oss-version-id: CAEQMxiBgMCfqaWADliMWI4MGQ0MTVmMjQ3MmE5MDNlMmY4YmFkYTk*****
    Allow: DELETE
    Date: Tue, 09 Apr 2019 03:09:44 GMT
    Content-Type: application/xml
    Content-Length: 318
    Connection: keep-alive
    Server: AliyunOSS
    <?xml version="1.0" encoding="UTF-8"?>
    <Error>
      <Code>MethodNotAllowed</Code>
      <Message>The specified method is not allowed against this resource.</Message>
      <RequestId>5CAC0CF8DE0170*****</RequestId>
      <HostId>versioning-get.oss-cn-hangzhou.aliyunc*****</HostId>
      <Method>GET</Method>
      <ResourceType>DeleteMarker</ResourceType>
    </Error>

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はリクエストで指定され、バージョンは削除マーカーです。