5.2 桶的高级配置
5.2.44 删除在线解压策略
静态网站托管接口
表2-3 静态网站托管接口
接口 说明
5.3.1 设置桶的网站配置 创建或更新桶的网站配置信息。OBS允许在桶内 保存静态的网页资源,如.html网页文件、flash 文件、音视频文件等,当客户端通过桶的 Website接入点访问这些对象资源时,浏览器可 以直接解析出这些支持的网页资源,呈现给最终 用户。
5.3.2 获取桶的网站配置 获取桶的网站配置信息。
5.3.3 删除桶的网站配置 删除桶的网站配置信息。
5.3.4 设置桶的CORS配置 设置桶的跨域资源共享配置信息。OBS允许在桶 内保存静态的网页资源,在正确的使用下,OBS 的桶可以成为网站资源。只有进行了适当的 CORS配置,OBS中的网站才能响应另一个网站的 跨域请求。
5.3.5 获取桶的CORS配置 获取桶的跨域资源共享配置信息。
5.3.6 删除桶的CORS配置 删除桶的跨域资源共享配置信息。
5.3.7 OPTIONS桶 检测客户端是否具有对服务端进行操作的权限。
通常用于跨域访问之前。
5.3.8 OPTIONS对象 检测客户端是否具有对服务端进行操作的权限。
通常用于跨域访问之前。
对象操作接口
表2-4 对象操作接口
接口 说明
5.4.1 PUT上传 上传简单对象到指定的桶。
5.4.2 POST上传 基于表单上传对象到指定的桶。
5.4.3 复制对象 为OBS上已经存在的对象创建一个副本。
5.4.4 获取对象内容 下载对象。
5.4.5 获取对象元数据 获取对象的元数据信息。包括对象的过期时间、
版本号、CORS配置等信息。
5.4.6 删除对象 删除指定的对象。也可以携带versionId删除指定 版本的对象。
接口 说明
5.4.7 批量删除对象 将一个桶内的一部分对象一次性删除,删除后不
可恢复。
5.4.8 取回归档存储对象 将归档存储对象的内容取回,取回后才能下载。
5.4.9 追加写对象 在指定桶内的一个对象尾追加上传数据,不存在
相同对象键值的对象则创建新对象。
5.4.10 设置对象ACL 设置一个指定对象的ACL信息。通过ACL可以控 制对象的读写权限。
5.4.11 获取对象ACL 获取一个指定对象的ACL信息。
5.4.12 修改对象元数据 添加、修改或删除桶中已经上传的对象的元数 据。
5.4.13 修改写对象 将指定并行文件系统内的一个对象从指定位置起
修改为其他内容。
5.4.14 截断对象 将指定并行文件系统内的一个对象截断到指定大
小。
5.4.15 重命名对象 将指定并行文件系统内的一个对象重命名为其他
对象名。
多段操作接口
表2-5 多段操作接口
接口 说明
5.5.1 列举桶中已初始化多段任 务
查询一个桶中所有的初始化后还未合并以及未取 消的多段上传任务。
5.5.2 初始化上传段任务 使用多段上传特性时,必须首先调用此接口初始 化上传段任务,获取全局唯一的多段上传任务 号,用于后续的上传段、合并段、列举段等操 作。
5.5.3 上传段 为特定的任务上传段。
5.5.4 拷贝段 将已上传对象的一部分或全部拷贝为段。
5.5.5 列举已上传的段 查询一个任务所属的所有段信息。
5.5.6 合并段 将指定的段合并成一个完整的对象。
5.5.7 取消多段上传任务 取消一个多段上传的任务。
Data+接口
表2-6 Data+接口
接口 说明
5.7.1 创建工作流 本接口用于直接创建Data+工作流。
5.7.2 查询工作流详情 本接口用于根据工作流名称查询工作流详细信
息。
5.7.3 删除工作流 本接口用于标记删除工作流。
5.7.4 更新工作流 本接口用于更新工作流参数值。
5.7.5 查询工作流列表 本接口用于查询工作流列表。
5.7.6 API异步启动工作流 本接口用于API方式异步启动已有工作流,产生 工作流实例。
5.7.7 查询工作流实例列表 本接口用于查询用户工作流的实例列表。
5.7.8 查询工作流实例 本接口用于查询指定工作流实例详细。
5.7.9 恢复失败状态的工作流实 例
本接口用于恢复一个执行失败状态的工作流实 例。恢复后,工作流实例将从上次失败的状态处 继续执行,而工作流步骤中已经执行成功的状态 不会再执行。
5.7.10 开通授权 本接口用于开通授权,由OBS服务自动帮助用户
创建工作流运行时需要的函数服务权限,以及函 数服务运行时的权限。
5.7.11 查询授权 本接口用于查询授权,查询由OBS服务自动帮助
用户创建工作流运行时需要的函数服务权限,以 及函数服务运行时的权限。
5.7.12 查询华为云算子模板详情 本接口用于按名称查询Action模板。
5.7.13 查询华为云算子模板列表 本接口用于查询已有预置Action模板列表。
5.7.14 配置桶触发器 本接口用于在桶上绑定工作流触发器。
5.7.15 查询桶触发器 本接口用于查询桶上绑定工作流触发器。
5.7.16 删除桶触发器 本接口用于删除在桶上绑定工作流触发器。
3 如何调用 API
3.1 构造请求 3.2 认证鉴权 3.3 返回结果
3.1 构造请求
本节介绍REST API请求的组成。
您还可以通过这个视频教程了解如何构造请求调用API:https://
bbs.huaweicloud.com/videos/101580
请求 URI
OBS根据桶和对象及带的资源参数来确定具体的URI,当需要进行资源操作时,可以使 用这个URI地址。
URI的一般格式为(方括号内为可选项):
protocol://[bucket.]domain[:port][/object][?param]
表3-1 URI 中的参数
参数 描述 是否必
选 protocol 请求使用的协议类型,如HTTP、HTTPs。HTTPs表示通过安
全的HTTPs访问该资源,对象存储服务支持HTTP,HTTPs两 种传输协议。
必选
bucket 请求使用的桶资源路径,在整个系统中唯一标识一个桶。 可选
domain 存放资源的服务器的域名或IP地址。 必选
参数 描述 是否必 选 port 请求使用的端口号。根据软件服务器的部署不同而不同。缺
省时使用默认端口,各种传输协议都有默认的端口号,如 HTTP的默认端口为80,HTTPs的默认端口为443。
OBS对象存储服务的http方式访问端口为80,HTTPs方式访问 端口为443。
可选
object 请求使用的对象资源路径。 可选
param 请求使用的桶和对象的具体资源,缺省默认为请求桶或对象 自身资源。
可选
须知
除获取桶列表之外的所有接口,都应当包含桶名。OBS基于DNS解析性能和可靠性的 考虑,要求凡是携带桶名的请求,在构造URL的时候都必须将桶名放在domain前面,
形成三级域名形式,又称为虚拟主机访问域名。
例如,如果您有一个位于cn-north-4区域的名为test-bucket的桶,期望访问桶中一个
名为test-object对象的acl,正确的访问URL为https://test-bucket.obs.cn-north-4.myhuaweicloud.com/test-object?acl
请求方法
HTTP方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。
表3-2 对象存储支持的 REST 请求方法
方法 说明
GET 请求服务器返回指定资源,如获取桶列表、下载对象等。
PUT 请求服务器更新指定资源,如创建桶、上传对象等。
POST 请求服务器新增资源或执行特殊操作,如初始化上传段任务、合并段 等。
DELETE 请求服务器删除指定资源,如删除对象等。
HEAD 请求服务器返回指定资源的概要,如获取对象元数据等。
OPTIONS 请求服务器检查是否具有某个资源的操作权限,需要桶配置CORS。
请求消息头
可选的附加请求头字段,如指定的URI和HTTP方法所要求的字段。详细的公共请求消 息头字段请参见表3-3。
表3-3 公共请求消息头
消息头名称 描述 是否必选
Authorization 请求消息中可带的签名信息。
类型:字符串。
默认值:无。
条件:匿名请求不需要带,其他请求必选。
有条件必选
Content-Length RFC 2616中定义的消息(不包含消息头)长 度。
类型:字符串。
默认值:无。
条件:PUT操作和加载XML的操作必须带。
有条件必选
Content-Type 资源内容的类型,例如: text/plain。
类型:字符串。
默认值:无。
否
Date 请求发起端的日期和时间,例如:Wed, 27 Jun 2018 13:39:15 +0000。
类型:字符串。
默认值:无。
条件:如果是匿名请求或者消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必 选。
有条件必选
Host 表明主机地址。如bucketname.obs.cn-north-4.myhuaweicloud.com。
类型:字符串。
默认值:无。
是
请求消息体(可选)
请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-type 对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必 须为UTF-8编码。
每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消 息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根 据具体接口而定。
发起请求
共有两种方式可以基于已构建好的请求消息发起请求,分别为:
● cURL
cURL是一个命令行工具,用来执行各种URL操作和信息传输。cURL充当的是 HTTP客户端,可以发送HTTP请求给服务端,并接收响应消息。cURL适用于接口
调试。关于cURL详细信息请参见https://curl.haxx.se/。由于cURL无法计算签 名,使用cURL时仅支持访问匿名的公共OBS资源。
● 编码
通过编码调用接口,组装请求消息,并发送处理请求消息。可以使用SDK或自行 编码实现。
3.2 认证鉴权
3.2.1 用户签名验证
OBS通过AK/SK对请求进行签名,在向OBS发送请求时,客户端发送的每个消息头需要 包含由SK、请求时间、请求类型等信息生成的签名信息。
● AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥 ID和私有访问密钥一起使用,对请求进行加密签名。格式例如:
HCY8BGCN1YM5ZWYOK1MH
● SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,
可标识发送方,并防止请求被修改。格式例如:
9zYwf1uabSQY0JTnFqbUqG7vcfqYBaTdXde2GUcq
用户可以在IAM服务中获取AK和SK,获取的方法请参见7.3 获取访问密钥(AK/
SK)。
OBS根据应用场景,提供了3.2.2 Header中携带签名、3.2.3 URL中携带签名和3.2.4 基于浏览器上传的表单中携带签名3种签名计算方式。
OBS提供的SDK已集成了签名计算,建议您使用SDK进行开发。
以Header中携带签名为例,用户签名验证流程如表3-4所示。Header中携带签名方法 的具体参数说明及代码示例,请参见3.2.2 Header中携带签名。
表3-4 OBS 签名计算和验证步骤
步骤 示例
签名
计算 1. 构造HTTP消息 PUT /object HTTP/1.1
计算 1. 构造HTTP消息 PUT /object HTTP/1.1