更新时间:2024-12-28 gmt 08:00

构造请求-九游平台

本节介绍rest api请求的组成。

您还可以通过这个视频教程了解如何构造请求调用api:

请求uri

obs根据桶和对象及带的资源参数来确定具体的uri,当需要进行资源操作时,可以使用这个uri地址。

uri的一般格式为(方括号内为可选项):

protocol://[bucket.]domain[:port][/object][?param]

表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方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。

表2 对象存储支持的rest请求方法

方法

说明

get

请求服务器返回指定资源,如获取桶列表、下载对象等。

put

请求服务器更新指定资源,如创建桶、上传对象等。

post

请求服务器新增资源或执行特殊操作,如初始化上传段任务、合并段等。

delete

请求服务器删除指定资源,如删除对象等。

head

请求服务器返回指定资源的概要,如获取对象元数据等。

options

请求服务器检查是否具有某个资源的操作权限,需要桶配置cors。

请求消息头

可选的附加请求头字段,如指定的uri和http方法所要求的字段。详细的公共请求消息头字段请参见表3

表3 公共请求消息头

消息头名称

描述

是否必选

authorization

请求消息中可带的签名信息。

类型:string

默认值:无。

条件:匿名请求不需要带,其他请求必选。

有条件必选

content-length

rfc 2616中定义的消息(不包含消息头)长度。

类型:string

默认值:无。

条件:put操作可选,加载xml的操作必须带。

有条件必选

content-type

资源内容的类型,例如: text/plain。

类型:string

默认值:无。

date

请求发起端的日期和时间,例如:wed, 27 jun 2018 13:39:15 0000。

类型:string

默认值:无。

条件:如果是匿名请求或者消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必选。

有条件必选

host

表明主机地址。如bucketname.obs.cn-north-4.myhuaweicloud.com。

类型:string

默认值:无。

请求消息体(可选)

请求消息体通常以结构化格式(如json或xml)发出,与请求消息头中content-type对应,传递除请求消息头之外的内容。如果请求消息体中参数支持中文,则中文字符必须为utf-8编码。

每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),get、delete操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。

发起请求

共有两种方式可以基于已构建好的请求消息发起请求,分别为:

  • curl

    curl是一个命令行工具,用来执行各种url操作和信息传输。curl充当的是http客户端,可以发送http请求给服务端,并接收响应消息。curl适用于接口调试。关于curl详细信息请参见。由于curl无法计算签名,使用curl时仅支持访问匿名的公共obs资源。

  • 编码

    通过编码调用接口,组装请求消息,并发送处理请求消息。可以使用sdk或自行编码实现。

相关文档

网站地图