跳到主要内容

GetObject

请求语法

GET /objectName HTTP/1.1
Host: bucketname.cos.chinac.com
Date: GMT Date
Authorization: SignatureValue
Range: bytes=ByteRange

请求Header

NameTypeDescription
RangeString指定文件传输的范围。如,设定 bytes=0-9,表示传送第0到第9这10个字符
If-Modified-SinceString如果指定的时间早于实际修改时间,则正常传送文件,并返回200 OK;否则返回304 not modified

细节分析

  1. GetObject通过range参数可以支持断点续传,对于比较大的Object建议使用该功能
  2. 如果在请求头中使用Range参数;则返回消息中会包含整个文件的长度和此次返回的范围,例如:Content-Range: bytes 0-9/44,表示整个文件长度为44,此次返回的范围为0-9。如果不符合范围规范,则传送整个文件,并且不在结果中提及Content-Range
  3. 如果包含If-Modified-Since,指定的时间早于实际修改时间,则正常传送文件,并返回200 OK;否则返回304 not modified
  4. 如果文件不存在返回404 Not Found错误。错误码:NoSuchKey

不带range示例

请求示例

GET /cos.jpg HTTP/1.1
Host: test-bucket.cos.chinac.com
Date: Fri, 24 Feb 2012 06:38:30 GMT
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:UNQDb7GapEgJCZkcde6OhZ9Jfe8=

返回示例

HTTP/1.1 200 OK
x-cos-request-id: 3a89276f-2e2d-7965-3ff9-51c875b99c41
x-cos-object-type: Normal
Date: Fri, 24 Feb 2012 06:38:30 GMT
Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
ETag: "5B3C1A2E053D763E1B002CC607C5A0FE "
Content-Type: image/jpg
Content-Length: 344606
Server: COS

[344606 bytes of object data]

带Range示例

请求示例

GET /cos.jpg HTTP/1.1
Host:test-bucket.cos.chiac.com
Date: Fri, 28 Feb 2012 05:38:42 GMT
Range: bytes=100-900
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:qZzjF3DUtd+yK16BdhGtFcCVknM=

返回示例

HTTP/1.1 206 Partial Content
x-cos-request-id: 28f6508f-15ea-8224-234e-c0ce40734b89
x-cos-object-type: Normal
Date: Fri, 28 Feb 2012 05:38:42 GMT
Last-Modified: Fri, 24 Feb 2012 06:07:48 GMT
ETag: "5B3C1A2E053D763E1B002CC607C5A0FE "
Accept-Ranges: bytes
Content-Range: bytes 100-900/344606
Content-Type: image/jpg
Content-Length: 801
Server: COS

[801 bytes of object data]