下载对象

下载对象。

GET 对象的请求可以包括 HTTP 1.1 RFC 中定义的 Range 标头,以限制对象中返回数据的范围,但切记在某些情况下, 101}range 标头将被忽略。

满足某些条件时,Cloud Storage 中压缩状态的对象可以自动解压缩到下载请求中。这种转码行为无需请求者解压缩对象的需求。

请求还可以包含 If-Modified-Since 或 If-Unmodified-Since 标头,因此,如果由于指定时间戳而对象未经修改或已修改,则响应会省略正文。如果对象不符合 If- Modified-Since 标头条件,则响应为 304 Not Modified,如果对象不符合 If-Unmodified-Since 标头条件,则响应为 {101 }412 前提条件失败。

同样,请求可以包含 If-Match 和 If-None-Match 标头以及要匹配的 ETag。如果对象与 If-Match 标头条件不匹配,则响应为 412 Precondition Failed,如果对象与 If-None-Match 标头中的指定哈希匹配,则响应为 304 Not{101 }已修改。

如需了解如何下载对象,请参阅下载对象指南。

查询字符串参数

参数 说明 必需
generation 如果要提取特定对象版本,您可以使用此属性。

如需了解您在创建和使用签名网址时包含的参数,请参阅签名网址查询字符串参数

请求标头

除了通用请求标头之外,您还可以使用以下内容。

标题 说明 必需
If-Match 实体标记 (ETag)。如果您指定的 ETag 与对象的 ETag 相同,则会下载该对象。
If-Modified-Since 日期和时间。如果在修改日期和时间之前修改过对象,则系统会下载该对象。
If-None-Match 实体标记 (ETag)。如果您指定的 ETag 与对象的 ETag 不同,则会下载对象。
If-Unmodified-Since 日期和时间。如果在指定日期后对象未经过修改,则会下载该对象。
Range 要下载的对象范围(以字节为单位)。

警告:从 Cloud Storage 下载数据时返回的校验和涵盖了完整的对象内容。因此,如果您指定请求范围,则无法单独检测该字节范围的数据损坏。因此,我们建议您仅使用范围请求,以在上次接收偏移量后重启完整对象的下载,因为在这种情况下,您可以计算和验证整个下载完成后的校验和。

要下载由客户提供的加密密钥加密的对象,请在请求中使用“加密”页面上列出的标头

请求正文元素

此请求不包含 XML 文档。

请求语法

以下语法适用于不使用 acl 查询字符串参数的 GET Object 请求。

GET /OBJECT_NAME HTTP/1.1
Host: BUCKET_NAME.storage.googleapis.com
Content-Length: 0
Authorization: AUTHENTICATION_STRING
Range: bytes=BYTE_RANGE
If-Match: ENTITY_TAG
If-Modified-Since: DATE
If-None-Match: ENTITY_TAG
If-Unmodified-Since: DATE

响应标头

请求可能会返回各种响应标头,具体取决于您使用的请求标头:Cache-ControlContent-LengthContent-TypeContent-DispositionETagLast-Modified.

响应正文元素

响应包含对象数据。

示例

以下示例下载名为 paris.jpg 的对象,它位于名为 travel-maps 的存储分区中。

请求

GET /paris.jpg HTTP/1.1
Host: travel-maps.storage.googleapis.com
Content-Length: 0
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

响应

HTTP/1.1 200 OK
Content-Type: image/jpg
Last-Modified: Fri, 19 Feb 2010 22:13:49 GMT
ETag: "2281880ef78388266ecd7d4c1b472a0e"
Content-Length: 328
Date: Fri, 19 Feb 2010 22:13:49 GMT

328 bytes of data...