获取对象
更新时间:2021-12-29
接口说明
此命令用于从BOS获取某个Object。此操作需要请求者对该Object有读权限。请求者可以在Header中设置Range来指定需要获取的Object数据的范围。
注意:
- GetObject通过Range参数可以支持断点续传,对于比较大的Object建议使用该功能。
- 如果在请求头中使用Range参数;则返回消息中会包含整个文件的长度和此次返回的范围,例如:Content-Range: bytes 0-9/44,表示整个文件长度为 44,此次返回的范围为0-9。
- 对于Range读大小为0字节的对象, 会返回400错误, Range是前闭后闭区间。
- 归档存储类型对象需要先取回才能调用GetObject接口。
如您想在response请求里面获得某些特定的header信息,可通过如下两种方式:
- 在PutObject时增加header信息,则GetObject时会直接返回在response里面,请参考PutObject接口。
- GetObject时,在queryString里面直接增加“responseXXX=YYY”,返回的header里面会包含“XXX: YYY”。例如:GET /testBucket/testObject?responseContentType= image/jpg,在这个http请求的response里面就会有“Content-Type: image/jpg”。 具体的形式为response$header=urlencode(value),需要注意,当前$header只支持“ContentDisposition、ContentType、ContentLanguage、Expires、CacheControl、ContentEncoding”。
注意: responseContentDisposition的设置在BOS自有域名($region.bcebos.com和*.$region.bcebos.com无效)。
请求URI
GET /v1/{bucketName}/{objectKey}
参数名称 | 参数类型 | 是否必须 | 描述 | 示例值 | 参数位置 |
---|---|---|---|---|---|
bucketName | String | 是 | bucket的名称 | "bucketName_example" | Path |
objectKey | String | 是 | object的名称 | "objectKey_example" | Path |
请求头参数
参数名称 | 参数类型 | 是否必须 | 描述 | 示例值 |
---|---|---|---|---|
range | String | 否 | 指定Object返回的文件范围。设定 bytes=0-9,表示传送第0到第9这10个字符。默认返回全部数据 | "range_example" |
请求体参数
请求体字段数据结构说明
响应头参数
参数名称 | 参数类型 | 描述 | 示例值 |
---|---|---|---|
Cache-Control | String | 下载Object的Cache设置,常见的可取值为private、no-cache、max-age、must-revalidate | |
Content-Disposition | String | 设置浏览器是否下载,可取值为inline、attachment; filename="download.txt" | |
Content-Length | String | 返回Object的数据大小 | |
Content-Range | String | 有range的情况下返回Object的数据范围 | |
Content-Type | String | Object的类型及编码方式 | |
Expires | String | 下载Object时的缓存失效时间 | |
ETag | String | Object的HTTP协议实体标签 | |
x-bce-meta-* | String | 如果有自定meta,才返回此项 | |
x-bce-storage-class | String | 标准存储返回STANDARD,低频存储返回STANDARD_IA,冷存储返回COLD,归档存储返回ARCHIVE;如果是多AZ类型bucket,多AZ低频存储返回MAZ_STANDARD_IA,多AZ标准存储返回MAZ_STANDARD。 | |
x-bce-server-side-encryption | String | Object的服务器端加密类型,当前只支持AES256加密。 |
响应体参数
响应体字段数据结构说明
请求示例
GET /v1/bucketName_example/objectKey_example
<公共请求头>
Range: range_example
{ }
响应示例
HTTP/1.1 200 OK
<公共响应头>
{ }
错误码
请参考通用错误码