接口规范
更新时间:2023-08-02
请求响应格式标准
- HTTP请求,Querystring中参数的Key,为首字母小写的驼峰方式。如 upLoadId,partNumber等。
- 所有用户自定义Meta,以
x-bce-meta-*的形式放Header中,自定义Meta总大小不得超过2K。x-bce-meta-*的Key会被Server端统一按照小写进行处理。
例如:用户使用PutObject接口上传了x-bce-meta-DeMo:value,Server端会统一按照小写x-bce-meta-demo:value进行处理,用户在使用GetObject接口时,Sever端的返回值为x-bce-meta-demo:value。
- 除RFC2616规定的标准Header外,其他Header以
x-bce-*的形式定义。 - BOS的RESTful API支持仅支持JSON形式。
- 所有JSON中,Key均为首字母小写的驼峰方式。
- 每个请求响应中均带有
x-bce-request-id和x-bce-debug-id这两个Header。 - Header中Date、Content-MD5、Content-Type、Content-Length等相关字段遵守RFC 2616约束。
-
依据HTTP协议的规定,Content-MD5既要做MD5也要进行Base64编码,其计算方法如下:
Content-MD5 = "Content-MD5" ":" md5-digest md5-digest = <base64 of 128 bit MD5 digest as per RFC 1864>
公共请求头
| 名字 | 类型 | 描述 |
|---|---|---|
| Authorization | String | 用于验证请求合法性的认证信息。更多参见鉴权认证 |
| Content-Length | String | RFC2616中定义的HTTP请求内容的长度。 |
| Content-Type | String | RFC2616中定义的HTTP请求内容的类型。 |
| Content-MD5 | String | RFC2616定义的HTTP请求内容的MD5摘要,可以通过携带该字段来验证保存在BOS侧的文件和用户预期的文件是否一致。 |
| Date | String | HTTP 1.1协议中规定的GMT时间,如Wed, 06 Apr 2016 06:34:40 GMT。 |
| Host | String | 访问Host值,取值为BucketName.bj.baidubce.com。 |
| x-bce-date | String | 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z。 |
公共返回头
| 名字 | 类型 | 描述 |
|---|---|---|
| Content-Length | String | RFC2616中定义的HTTP请求内容长度。 |
| Content-Type | String | RFC2616中定义的HTTP请求内容的类型。 |
| Content-MD5 | String | RFC2616定义的HTTP请求内容的MD5摘要,可以通过携带该字段来验证保存在BOS侧的文件和用户预期的文件是否一致。 |
| Connection | String | 服务器是否断开连接,取值为close或者keep-alive。 |
| Date | String | HTTP 1.1协议中规定的GMT时间,如Wed, 06 Apr 2016 06:34:40 GMT。 |
| eTag | String | Object的HTTP协议实体标签。eTag (entity tag) 在每个Object生成的时候被创建,用于标识一个Object的内容,eTag值可以用于检查Object内容是否发生变化。 |
| Server | String | 服务器的名字,取值为BceBos。 |
| x-bce-request-id | String | 由BCE BOS创建,是请求BceBos的唯一标识。 |
| x-bce-debug-id | String | 由BCE BOS创建,用于帮助排除故障的标识ID,如果在使用BOS过程中遇到问题,可以在工单中提供该字段便于快速定位问题。 |
不同存储类型API接口的差异
文件的存储类型是基于object实现的,低频存储、冷存储和归档存储的API实现时通过给object增加一个storage class属性来实现。storage class属性值为STANDARD、STANDARD_IA (infrequent access)、COLD和ARCHIVE,分别代表标准存储、低频存储、冷存储和归档存储。
以下低频/冷存储/归档存储API接口增加storage class属性,其中归档存储类型不支持AppendObject接口:
- PutObject、InitiateMultipartUpload、CopyObject、AppendObject、PostObject接口在请求头域中设置storage class属性参数x-bce-storage-class。
请求头域
| 名称 | 类型 | 描述 | 是否必需 |
|---|---|---|---|
| x-bce-storage-class | String | 指定BOS的对象的存储类型,目前支持STANDARD、STANDARD_IA、COLD和ARCHIVE。 |
否,默认为STANDARD。 |
-
GetObject和GetObjectMeta在响应头域中返回x-bce-storage-class。
响应头域
名称 类型 描述 x-bce-storage-class String BOS的对象的存储类型,目前支持 STANDARD、STANDARD_IA、COLD和ARCHIVE。
另外,当对象为归档存储类型,并且处于正在取回或已经取回状态时,GetObjectMeta会返回头域“x-bce-restore”,表示对象的取回状态。
-
ListObjects、ListMultipartUploads和ListParts在响应元素中返回storageClass。
响应元素
名称 类型 描述 storageClass String BOS的对象的存储类型,目前支持 STANDARD、STANDARD_IA、COLD和ARCHIVE。
