1. 创建请求

对象存储服务提供的是一组RESTful风格的API接口,可以使用REST API开发自有应用程序。目前,系统提供的REST接口支持认证请求,即使用场景需要经过认证的请求才可以访问成功。经过认证的请求总是需要包含一个签名值,该签名值以请求者的访问密钥作为加密因子、结合请求体携带的特定信息计算而成。

通过REST API自行开发程序进行对接,需要按照对象存储服务定义的签名算法来计算签名并添加到请求中。

创建请求的步骤如下:

1、获取访问密钥(AccessKey)

请参阅访问控制模块下的获取API访问密钥文档说明。

2、获取访问域名(Endpoint)

各区域与终端节点信息,请参考 可用地域 文档说明 。

3、构造请求方法

使用REST API接口创建请求方法如下:

1) 构造HTTP请求

一个HTTP请求由四部分构成,请求方法、请求URL、请求头、请求体。

  • 支持的请求方法:
请求方法 说明
GET 请求服务器返回指定资源,如获取桶列表、下载对象等。
PUT 请求服务器存储指定资源,如创建桶、上传对象等。
POST 请求服务器存储特殊的资源或执行特殊操作,如初始化上传段任务、合并段等。
DELETE 请求服务器删除指定资源,如删除对象等。
HEAD 请求服务器返回指定资源的概要,如获取对象元数据等。
OPTIONS 请求服务器检查是否具有某个资源的操作权限,需要桶配置CORS。
  • 请求URL

请求URL构成:

<schema>://<bucketname>.<endpoint>/<objectname>?querystrings

  • schema:http或https

  • bucketname:Bucket的名称

  • endpoint:Bucket所在区域的终端域名

  • objectname:文件名称

示例:

如果您有一个位于华东一区的Bucket名为testBucket001,需要访问其中一个文件名为testobject对象的acl,华东一区endpoint为cn-east-1.cloud-oss.com,则正确的访问url为:

https://testBucket001.cn-east-1.cloud-oss.com/testobject?acl

  • 请求头

对象存储服务使用的HTTP头包括 HTTP标准头和自定义元数据。

支持参数与相关说明,请参阅 对象概述 文档中的“对象元数据(Metadata)”说明。

  • 请求体

不是所有接口都需要携带请求体,一般只有PUT、POST方法定义的接口需要携带。对象存储服务的REST API接口定义的请求体一般是XML、JSON、或二进制数据,具体每个接口的差异请参阅API文档的说明。

2)为请求添加签名

为请求添加签名的三种形式:

形式 说明
在头域中包含签名 在头域中包含签名是最常见的情况,这种方式需要在HTTP请求头域中添加一个认证头域,示例如下:
Authorization:
OBS HCY8BGCN1YM5ZWYOK1MH:51KOKYY9CVvk/DtUt4W8aFHvfsc=
在URL中包含签名 在URL的querystring中包含签名,一般用于限时分享链接的场景,示例如下:
https://bucketname.obs.cn-north-1.myhwclouds.com/objectname?AccessKeyId=HCY8BGCN1YM5ZWYOK1MH&Expires=1528857302&Signature=OgynyFAkBRU6FUHkEqsMVsPolok=
在POST表单中包含签名 在POST表单中包含签名,一般用于浏览器上传的场景,示例如下:
------WebKitFormBoundaryx4WluntRxFeG3GAD
Content-Disposition: form-data; name="AccessKeyId"
HCY8BGCN1YM5ZWYOK1MH
------WebKitFormBoundaryx4WluntRxFeG3GAD
Content-Disposition: form-data; name="signature"
Bpj82MEqa23d7GEot7LCqJY8Zdg=

详细计算签名的方式,请参阅API接口说明中 计算请求签名 文档说明。

results matching ""

    No results matching ""