GetObject はオブジェクトを取得するために使用されます。 GetObject 関数を使用する前に、読み取り権限が必要です。

リクエスト構文

  1. GET /ObjectName HTTP/1.1Host: BucketName.oss-cn-hangzhou.aliyuncs.comDate: GMT DateAuthorization: SignatureValueRange: bytes=ByteRange (Optional)

リクエストパラメーター

GET リクエストを送信するときに、OSS レスポンスでいくつかのヘッダーをカスタマイズできます。 匿名のユーザーリクエストを送信した場合は、 content-type ヘッダーのみをカスタマイズできます。 他のヘッダーでは、署名付きの GET リクエストを送信する必要があります。 これらのヘッダーには以下が含まれます。

名前 説明
response-content-type string OSS によって返されたリクエスト内のコンテンツタイプヘッダーを指定します。 匿名ユーザーリクエストを送信する場合は、コンテンツタイプヘッダーを指定することもできます。

デフォルト値:なし

response-content-language string OSS が返すリクエスト内のコンテンツ言語ヘッダーを指定します。

デフォルト値:なし

response-expires string OSS が返すリクエスト内の expires ヘッダーを指定します。

デフォルト値:なし

response-cache-control string OSS によって返されたリクエスト内のキャッシュ制御ヘッダーを指定します。

デフォルト値:なし

Response-content-Disposition string OSS によって返されたリクエスト内のコンテンツ処理ヘッダーを指定します。

デフォルト値:なし

response-content-encoding string OSS によって返されたリクエスト内のコンテンツエンコーディングヘッダーを指定します。

デフォルト値:なし

リクエストヘッダー

名前 説明
Range string ファイル転送の範囲を指定します。 たとえば、範囲が bytes = 0-9 に設定されている場合、システムはバイト 0 をバイト 9 に転送します。

デフォルト値:なし

If-Modified-Since string 指定した時刻が実際の変更時刻よりも前の場合、システムはファイルを正常に転送し、200 OK メッセージを返します。 それ以外の場合は、304 Not Modified メッセージが返されます。

デフォルト値:なし

時間形式:GMT 、例: Fri, 13 Nov 2015 14:47:53 GMT

If-Unmodified-Since string 指定された時刻が実際のファイル変更時刻と同じか遅い場合、システムはファイルを正常に転送し、200 OK メッセージを返します。 そうでない場合、システムは 412 Precondition Failed メッセージを返します。

デフォルト値:なし

時間形式:GMT 、例: Fri, 13 Nov 2015 14:47:53 GMT

If-Match string 導入される予定の ETag がオブジェクトの ETag と一致すると、システムはファイルを正常に転送し、200 OK メッセージを返します。 そうでない場合、システムは 412 Precondition Failed メッセージを返します。

デフォルト値:なし

If-None-Match string 導入された ETag がオブジェクトの ETag と一致しない場合、システムはファイルを正常に転送し、200 OK メッセージを返します。 それ以外の場合は、304 Not Modified メッセージが返されます。

デフォルト値:なし

詳細分析

  • GetObject リクエストの Range パラメータは、ブレークポイントからの再開可能なデータ転送をサポートするように設定できます。 この関数は、オブジェクトのサイズが大きい場合に推奨されます。
  • Range パラメーターがリクエストヘッダーで使用されている場合、返されるメッセージにはファイル全体の長さとリクエストで返される範囲が含まれます。 たとえば、返されるメッセージが Content-Range:bytes 0-9 / 44 の場合、ファイル全体の長さは 44 であり、返される範囲は 0〜9 です。  範囲パラメータがリクエストヘッダーで使用されている場合、返されるメッセージにはファイル全体の長さとリクエストで返される範囲が含まれます。たにえば、返されるメッセージが Content-Range:bytes 0-9 / 44 の場合 、ファイル全体の長さは 44 であり、返される範囲は 0〜9 です。
  • If-Modified-Since で指定された時間が実際の変更時間と一致しない場合、システムはファイルと 200 OK メッセージを直接返します。
  • If-Modified-Since は If-Unmodified-Since と共存できます。 If-Match も If-None-Match と共存することができます。
  • リクエストに If-Unmodified-Since と If-Unmodified が含まれている場合 - 実際の変更時刻と一致しないか、If-Match および If-Match がオブジェクトの Etag と一致しないため、412 Precondition Failed メッセージが返されます。
  • リクエストに If-Modified-Since と If-Modified-Since が実際の変更時刻と一致しない場合、または If-None-Match および If-None-Match がオブジェクトの ETag と一致しないリクエストが含まれている場合、エラー 304 Not Modified が返されます。
  • ファイルが存在しない場合、エラー 404 が見つかりません。エラーコードは NoSuchKey です。
  • OSS では、匿名アクセス中に GET リクエストのリクエストパラメータを使用して、OSS が返すリクエストのヘッダーをカスタマイズすることはできません。
  • OSS が返すリクエストの一部のヘッダーをカスタマイズすると、リクエストが正常に処理されたとき、つまりシステムが 200 OK メッセージを返すときにのみ、OSS によって GET オブジェクトリクエストのパラメータで指定された値にこれらのヘッダーが設定されます。
  • このオブジェクトがサーバー側で暗号化されている場合、システムは自動的に GET Object リクエストを受け取ると解読されたオブジェクトを返し、x-oss-server-side-encryption をレスポンスヘッダーに返します。 x-oss-server-side-encryption の値は、オブジェクトのサーバー側暗号化アルゴリズムを示します。
  • GZIP を使用して返されたコンテンツを圧縮して転送する場合は、Accept-Encoding:gzip をリクエストヘッダーの表示モードに追加します。 OSS は、GZIP で圧縮されたデータを Content-Type とファイルのサイズに基づいて返すかどうかを決定します。 コンテンツが GZIP を使用して圧縮されている場合、コンテンツには Etag が含まれません。  現在、OSS は HTML、Javascript、CSS、XML、RSS、および JSON のコンテンツタイプに対して GZIP 圧縮をサポートしており、ファイルサイズは少なくとも 1 KB でなければなりません。
  • ファイルタイプがシンボリックリンクの場合、ターゲットファイルの内容が返されます。 レスポンスヘッダーでは、 Content-LengthETag、 および Content-Md5 はターゲットファイルのメタデータであり、 Last-Modified はターゲットファイルとシンボリックリンクの最大値で、その他はシンボリックリンクのメタデータです。
  • ファイル・タイプがシンボリック・リンクで、ターゲット・ファイルが存在しない場合は、エラー 404 が見つかりません。 エラーコードは SymlinkTargetNotExist です。
  • ファイル・タイプがシンボリック・リンクで、ターゲット・ファイル・タイプがシンボリック・リンクである場合、エラー 400 Bad request を戻します。 エラーコードは InvalidTargetType です。
  • アーカイブタイプの場合、オブジェクトをダウンロードする前にリストアリクエストを送信し、リストアを完了します。 オブジェクトは、リストア操作が完了し、タイムアウトしていないときにのみダウンロードできます。
    • リストアリクエストが送信されなかった場合、または最後のリストア操作がタイムアウトした場合、エラー 403 を返します。エラーコードは InvalidObjectState です。
    • 復元リクエストが送信されたが、復元操作が完了していない場合、エラー 403 を返します。エラーコードは InvalidObjectState です。
    • 復元操作が完了し、タイムアウトしていない場合にのみ、データを直接ダウンロードできます。

リクエスト例:

  1. GET /oss.jpg HTTP/1.1Host: oss-example.oss-cn-hangzhou.aliyuncs.comDate: Fri, 24 Feb 2012 06:38:30 GMTAuthorization:OSS qn6qrrqxo2oawuk53otfjbyc:UNQDb7GapEgJCZkcde6OhZ9Jfe8=

レスポンス例:

  1. HTTP/1.1 200 OKx-oss-request-id: 3a89276f-2e2d-7965-3ff9-51c875b99c41x-oss-object-type: NormalDate: Fri, 24 Feb 2012 06:38:30 GMTLast-Modified: Fri, 24 Feb 2012 06:07:48 GMTETag: 5B3C1A2E053D763E1B002CC607C5A0FE Content-Type: image/jpgContent-Length: 344606Server: AliyunOSS[344606 bytes of object data]

指定された範囲のリクエスト例:

  1. GET //oss.jpg HTTP/1.1Host:oss-example. oss-cn-hangzhou.aliyuncs.comDate: Fri, 28 Feb 2012 05:38:42 GMTRange: bytes=100-900Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:qZzjF3DUtd+yK16BdhGtFcCVknM=

レスポンス例:

  1. HTTP/1.1 206 Partial Contentx-oss-request-id: 28f6508f-15ea-8224-234e-c0ce40734b89x-oss-object-type: NormalDate: Fri, 28 Feb 2012 05:38:42 GMTLast-Modified: Fri, 24 Feb 2012 06:07:48 GMTETag: 5B3C1A2E053D763E1B002CC607C5A0FE Accept-Ranges: bytesContent-Range: bytes 100-900/344606Content-Type: image/jpgContent-Length: 801Server: AliyunOSS[801 bytes of object data]

返されたメッセージヘッダーをカスタマイズしたリクエストの例:

  1. 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-disposition=attachment%253B%2520filename%253Dtesting.txt&response-content-encoding=utf-8&response-content-language=%E4%B8%AD%E6%96%87 HTTP/1.1Host: oss-example.oss-cn-hangzhou.aliyuncs.com:Date: Fri, 24 Feb 2012 06:09:48 GMT

レスポンス例:

  1. HTTP/1.1 200 OKx-oss-request-id: 559CC9BDC755F95A64485981x-oss-object-type: NormalDate: Fri, 24 Feb 2012 06:09:48 GMTLast-Modified: Fri, 24 Feb 2012 06:07:48 GMTETag: 5B3C1A2E053D763E1B002CC607C5A0FE Content-Length: 344606Connection: keep-aliveContent-disposition: attachment; filename:testing.txtContent-language: ChineseContent-encoding: utf-8Content-type: textCache-control: no-cacheExpires: Fri, 24 Feb 2012 17:00:00 GMTServer: AliyunOSS[344606 bytes of object data]

シンボリックリンクのリクエスト例:

  1. GET /link-to-oss.jpg HTTP/1.1Accept-Encoding: identityDate: Tue, 08 Nov 2016 03:17:58 GMTHost: oss-example.oss-cn-hangzhou.aliyuncs.comAuthorization:OSS qn6qrrqxo2oawuk53otfjbyc:qZzjF3DUtd+yK16BdhGtFcCVknM=

レスポンス例:

  1. HTTP/1.1 200 OKServer: AliyunOSSDate: Tue, 08 Nov 2016 03:17:58 GMTContent-Type: application/octet-streamContent-Length: 20Connection: keep-alivex-oss-request-id: 582143E6D3436A212ADCC87DAccept-Ranges: bytesETag: 8086265EFC0211ED1F9A2F09BF462227Last-Modified: Tue, 08 Nov 2016 03:17:58 GMTx-oss-object-type: SymlinkContent-MD5: gIYmXvwCEe0fmi8Jv0YiJw==

アーカイブタイプのオブジェクトのリストア操作が完了したときのリクエストの例:

  1. GET /oss.jpg HTTP/1.1Host: oss-archive-example.oss-cn-hangzhou.aliyuncs.comDate: Sat, 15 Apr 2017 09:38:30 GMTAuthorization: OSS qn6qrrqxo2oawuk53otfjbyc:zUglwRPGkbByZxm1+y4eyu+NIUs=

レスポンス例

  1. HTTP/1.1 200 OKx-oss-request-id: 58F723894529F18D7F000053x-oss-object-type: Normalx-oss-restore: ongoing-request=”false”, expiry-date=”Sun, 16 Apr 2017 08:12:33 GMTDate: Sat, 15 Apr 2017 09:38:30 GMTLast-Modified: Sat, 15 Apr 2017 06:07:48 GMTETag: 5B3C1A2E053D763E1B002CC607C5A0FE Content-Type: image/jpgContent-Length: 344606Server: AliyunOSS[354606 bytes of object data]