OPTIONS,称为预请求,是客户端发送给服务端的一种请求,通常被用于检测客户端是否具有对服务端进行操作的权限。只有当预请求成功返回,客户端才开始执行后续的请求。
OBS允许在桶内保存静态的网页资源,在正确的使用下,OBS的桶可以成为网站资源。在这种使用场景下,OBS中的桶作为服务端,需要处理客户端发送的OPTIONS预请求。
要处理OPTIONS,OBS的桶必须已经配置CORS,关于CORS的使用说明,请参见章节 设置桶的CORS配置。
名称 | 类型 | IN | 必选 | 描述 |
---|---|---|---|---|
Authorization
|
string | header | 是 |
请求消息中可带的签名信息。 |
Date
|
string | header | 否 |
请求发起端的日期和时间,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默认值:无。 条件:如果消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必选。 |
Origin
|
string | header | 是 |
预请求指定的跨域请求Origin(通常为 域名 )。 类型:字符串 |
Access-Control-Request-Method
|
string | header | 是 |
实际请求可以带的HTTP方法,可以带多个方法头域。 类型:字符串 有效值:GET、PUT、HEAD、POST 、DELETE |
Access-Control-Request-Headers
|
string | header | 否 |
实际请求可以带的HTTP头域,可以带多个头域。 类型:字符串 |
bucket_name
|
string | query | 是 |
请求的桶名称。 |
请求成功响应消息。
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Content-Length
|
string | 否 |
响应消息体的字节长度。 |
Connection
|
string | 否 |
指明与服务器的连接是长连接还是短连接。 |
Date
|
string | 否 |
OBS系统响应的时间。 |
ETag
|
string | 否 |
对象的base64编码的128位MD5摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。实际的ETag是对象的哈希值。ETag只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,通过MD5加密后都有唯一的ETag。如果通过多段上传对象,则无论加密方法如何,MD5会拆分ETag,此类情况ETag就不是MD5的摘要。 |
x-obs-id-2
|
string | 否 |
帮助定位问题的特殊符号。 |
x-obs-request-id
|
string | 否 |
由OBS创建来唯一确定本次请求的值,可以通过该值来定位问题。 |
Access-Control-Allow-Origin
|
string | 否 |
如果请求的Origin满足服务端的CORS配置,则在响应中包含这个Origin。 类型:字符串 |
Access-Control-Allow-Headers
|
string | 否 |
如果请求的headers满足服务端的CORS配置,则在响应中包含这个headers。 类型:字符串 |
Access-Control-Max-Age
|
integer | 否 |
服务端CORS配置中的MaxAgeSeconds。 类型:整数 |
Access-Control-Allow-Methods
|
string | 否 |
如果请求的Access-Control-Request-Method满足服务端的CORS配置,则在响应中包含这条rule中的Methods。 类型:字符串 有效值:GET、PUT、HEAD、POST 、DELETE |
Access-Control-Expose-Headers
|
string | 否 |
服务端CORS配置中的ExposeHeader。 类型:字符串 |
请求失败响应消息。 除了公共的错误码外,此接口还会返回一些其他的错误码。下面列出本接口的一些常见错误,以及可能原因。
错误码 | 描述 | HTTP状态码 |
---|---|---|
Bad Request | Invalid Access-Control-Request-Method: null。桶配置了CORS,OPTIONS桶时,没有加入method头域。 | 400 Bad Request |
Bad Request | Insufficient information. Origin request header needed.桶配置了CORS,OPTIONS桶时,没有加入origin头域。 | 400 Bad Request |
请求失败响应消息。 除了公共的错误码外,此接口还会返回一些其他的错误码。下面列出本接口的一些常见错误,以及可能原因。
错误码 | 描述 | HTTP状态码 |
---|---|---|
AccessForbidden | CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec.桶配置了CORS,OPTIONS桶时,Origin、method、Headers与任一rule匹配不上。 | 403 Forbidden |