下载对象

最近更新时间: 2024-10-17 17:10:00

功能描述

GET Object 接口请求可以在 COS 的存储桶中将一个文件(对象)下载至本地。该操作需要请求者对目标对象具有读权限或目标对象对所有人都开放了读权限(公有读)。

请求

请求示例:

GET /<ObjectName> HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: GMT Date
Authorization: Auth String

说明:

Authorization: Auth String (详细参见请求签名章节)。

请求行

GET /{ObjectName} HTTP/1.1

该 API 接口接受 GET 请求。

请求参数

名称 类型 必选 描述
response-content-type string 设置响应头部中的 Content-Type 参数
response-content-language string 设置响应头部中的 Content-Language 参数
response-expires string 设置响应头部中的 Content-Expires 参数
response-cache-control string 设置响应头部中的 Cache-Control 参数
response-content-disposition string 设置响应头部中的 Content-Disposition 参数
response-content-encoding string 设置响应头部中的 Content-Encoding 参数
versionId string 当启用版本控制时,指定要下载的版本 ID,如不指定则下载对象的最新版本

请求头

公共头部

该请求操作的实现使用公共请求头,了解公共请求头详细请参见 公共请求头部 章节。

非公共头部

名称 类型 必选 描述
Range string RFC 2616 中定义的指定文件下载范围,以字节(bytes)为单位
If-Unmodified-Since string 如果文件修改时间早于或等于指定时间,才返回文件内容。否则返回 412 (precondition failed)
If-Modified-Since string 当 Object 在指定时间后被修改,则返回对应 Object meta 信息,否则返回 304(not modified)
If-Match string 当 ETag 与指定的内容一致,才返回文件。否则返回 412 (precondition failed)
If-None-Match string 当 ETag 与指定的内容不一致,才返回文件。否则返回 304 (not modified)

请求体

该请求请求体为空。

响应

响应头

此接口除返回公共响应头部外,还返回以下响应头部,了解公共响应头部详情请参见 公共响应头部 文档。

名称 描述 类型
Cache-Control RFC 2616 中定义的缓存指令,仅当对象元数据包含此项或通过请求参数指定了此项时才会返回该头部 string
Content-Disposition RFC 2616 中定义的文件名称,仅当对象元数据包含此项或通过请求参数指定了此项时才会返回该头部 string
Content-Encoding RFC 2616 中定义的编码格式,仅当对象元数据包含此项或通过请求参数指定了此项时才会返回该头部 string
Content-Range RFC 2616 中定义的返回内容的字节范围,仅当请求中指定了 Range 请求头部时才会返回该头部 string
Expires RFC 2616 中定义的缓存失效时间,仅当对象元数据包含此项或通过请求参数指定了此项时才会返回该头部 string
x-cos-meta-* 包括用户自定义元数据头部后缀和用户自定义元数据信息 string
x-cos-storage-class 对象存储类型,例如 STANDARD_IA,ARCHIVE。仅当对象不是标准存储(STANDARD)时才会返回该头部 Enum

版本控制相关头部

启用版本控制的存储桶内的对象将返回下列响应头部:

名称 描述 类型
x-cos-version-id 对象的版本 ID string

响应体

下载成功,文件内容在响应体中。

错误码

错误码 描述 HHTP 状态码
InvalidArgument 提供的参数错误 400 Bad Request
SignatureDoesNotMatch 提供的签名不符合规则,返回该错误码 403 Forbidden
NoSuchKey 如果下载的文件不存在,返回该错误码 404 Not Found

实际案例

请求一

GET /123 HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Wed, 28 Oct 2014 22:32:00 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKIDWtTCBYjM5OwLB9CAwA1Qb2ThTSUjfGFO&q-sign-time=1484212200;32557108200&q-key-time=1484212200;32557108200&q-header-list=host&q-url-param-list=&q-signature=11522aa3346819b7e5e841507d5b7f156f34e639

响应一

HTTP/1.1 200 OK
Date: Wed, 28 Oct 2014 22:32:00 GMT
Content-Type: application/octet-stream
Content-Length: 16087
Connection: keep-alive
Accept-Ranges: bytes
Content-Disposition: attachment; filename=\"filename.jpg\"
Content-Range: bytes 0-16086/16087
ETag: \"9a4802d5c99dafe1c04da0a8e7e166bf\"
Last-Modified: Wed, 28 Oct 2014 20:30:00 GMT
x-cos-request-id: NTg3NzQ3ZmVfYmRjMzVfMzE5N182NzczMQ==

[Object]

请求二

携带 response-xxx 参数

GET /123?response-content-type=application%2fxml HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Date: Wed, 28 Oct 2014 22:32:00 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKIDWtTCBYjM5OwLB9CAwA1Qb2ThTSUjfGFO&q-sign-time=1484212200;32557108200&q-key-time=1484212200;32557108200&q-header-list=host&q-url-param-list=&q-signature=11522aa3346819b7e5e841507d5b7f156f34e639

响应二

HTTP/1.1 200 OK
Date: Wed, 28 Oct 2014 22:32:00 GMT
Content-Type: application/xml
Content-Length: 16087
Connection: keep-alive
Accept-Ranges: bytes
Content-Disposition: attachment; filename=\"filename.jpg\"
Content-Range: bytes 0-16086/16087
ETag: \"9a4802d5c99dafe1c04da0a8e7e166bf\"
Last-Modified: Wed, 28 Oct 2014 20:30:00 GMT
x-cos-request-id: NTg3NzQ3ZmVfYmRjMzVfMzE5N182NzczMQ==

[Object]