CORS(Cross Origin Resource Sharing),即跨域资源共享,是W3C标准化组织提出的一种规范机制,允许客户端的跨域请求的配置。在通常的网页请求中,由于安全策略SOP(Same Origin Policy)的存在,一个网站的脚本和内容是不能与另一个网站的脚本和内容发生交互的。
OBS允许在桶内保存静态的网页资源,在正确的使用下,OBS的桶可以成为网站资源(请参见设置桶的网站配置)。只有进行了适当的CORS配置,OBS中的网站才能响应另一个网站的跨域请求。
典型的应用场景如下:
你可以使用CORS支持,使用JavaScript和HTML 5来构建Web应用,直接访问OBS中的资源,而不再需要代理服务器做中转。 可以使用HTML 5中的拖拽功能,直接向OBS上传文件,展示上传进度,或是直接从Web应用中更新内容。 托管在不同域中的外部网页、样式表和HTML 5应用,现在可以引用存储在OBS中的Web字体或图片,让这些资源能被多个网站共享。 要正确执行此操作,需要确保执行者有PutBucketCORS权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。
名称 | 类型 | IN | 必选 | 描述 |
---|---|---|---|---|
Authorization
|
string | header | 是 |
请求消息中可带的签名信息。 |
Date
|
string | header | 否 |
请求发起端的日期和时间,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默认值:无。 条件:如果消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必选。 |
Content-MD5
|
string | header | 是 |
按照RFC 1864标准计算出消息体的MD5摘要字符串,即消息体128-bit MD5值经过base64编码后得到的字符串。也支持设置Content-SHA256头域,其值为消息体256-bit SHA256值经过base64编码后得到的字符串,Content-MD5和Content-SHA256二选一。 类型:字符串 示例:n58IG6hfM7vqI4K0vnWpog== |
bucket_name
|
string | query | 是 |
请求的桶名称。 |
cors
|
string | query | 是 |
cors表示请求桶的CORS配置API。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
CORSRule
|
Array of CORSRule objects | 是 |
CORS规则,CORSConfiguration下可最多包含100个规则。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
ID
|
string | 否 |
一条Rule的标识,由不超过255个字符的字符串组成。 类型:字符串。 父节点:CORSRule。 |
AllowedMethod
|
Array of strings | 是 |
CORS规则允许的Method。 类型:字符串。 有效值:GET、PUT、HEAD、POST 、DELETE 父节点:CORSRule。 |
AllowedOrigin
|
string | 是 |
CORS规则允许的Origin(表示 域名 的字符串),可以带一个匹配符””。每一个AllowedOrigin可以带最多一个“”通配符。 类型:字符串。 父节点:CORSRule。 |
AllowedHeader
|
string | 否 |
配置CORS请求中允许携带的“Access-Control-Request-Headers”头域。如果一个请求带了“Access-Control-Request-Headers”头域,则只有匹配上AllowedHeader中的配置才认为是一个合法的CORS请求。每一个AllowedHeader可以带最多一个“*”通配符,不可出现空格。 类型:字符串。 父节点:CORSRule。 |
MaxAgeSeconds
|
string | 否 |
客户端可以缓存的CORS响应时间,以秒为单位。 每个CORSRule可以包含至多一个MaxAgeSeconds,可以设置为负值。 类型:整数。 父节点:CORSRule。 |
ExposeHeader
|
string | 否 |
CORS响应中带的附加头域,给客户端提供额外的信息,不可出现空格。 类型:字符串。 父节点:CORSRule。 |
请求成功响应消息。
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
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创建来唯一确定本次请求的值,可以通过该值来定位问题。 |