腾讯云对象存储PutBucketcors

PutBucketCORS描述

为指定Bucket添加cors配置。如果配置存在,腾讯云对象存储将会替换它,仅Bukcet的Owner可操作。你可以在Bucket上设置此配置,以便存储桶可以为跨域访问提供服务。

腾讯云对象存储地址 https://cloud.tencent.com/product/cos
腾讯云对象存储官方最新文档说明 https://cloud.tencent.com/product/cos/document

cors规则以XML文本形式展示,包含来源和HTTP方法。该文本最大64KB。例如,Bucket的cors配置有以下两个规则:

  • 第一条CORSRule允许来自https://www.example.com的跨域PUT、POST、DELETE请求。该规则还允许通过Access-Control-Request-Headers发起OPTIONS预请求,因此,为了响应OPTIONS预请求,腾讯云对象存储将会返回所有的请求Header。
  • 第二条CORSRule允许所有跨域的GET请求,""通配符指所有来源。
CORSConfigurationCORSRuleAllowedOriginhttp://www.example.com/AllowedOriginAllowedMethodPUT/AllowedMethodAllowedMethodPOST/AllowedMethodAllowedMethodDELETE/AllowedMethodAllowedHeader/AllowedHeader/CORSRuleCORSRuleAllowedOrigin/AllowedOriginAllowedMethodGET/AllowedMethod/CORSRule/CORSConfiguration

cors配置还允许其他可选参数,如下所示:

CORSConfigurationCORSRuleAllowedOriginhttp://www.example.com/AllowedOriginAllowedMethodPUT/AllowedMethodAllowedMethodPOST/AllowedMethodAllowedMethodDELETE/AllowedMethodAllowedHeader/AllowedHeaderMaxAgeSeconds3000/MaxAgeSecondsExposeHeaderx-amz-server-side-encryption/ExposeHeader/CORSRule/CORSConfiguration

CORSRule包括以下附加可选参数:

  • MaxAgeSeconds-指定浏览器缓存腾讯云对象存储对预请求的响应时间,在示例中,该参数为3000秒。缓存能避免浏览器重复像腾讯云对象存储发起OPTIONS预请求。
  • ExposeHeader-暴露给浏览器的header列表,即用户从应用程序中访问的响应头。当腾讯云对象存储收到跨域请求(OPTIONS预请求),会根据Bucket中cors配置,并根据CORSRule依次匹配来自浏览器的请求。匹配成功需以下条件:
  • 请求中的Origin头必须匹配AllowedOrigin元素
  • 请求方法或预请求方法必须匹配AllowedMethod元素
  • 所有预请求中的Access-Control-Request-Headers头必须匹配AllowedHeader元素
请求语法PUT/?corsHTTP/1.1Host:BUCKET_NAME.s3.REGION.jdcloud-oss.comContent-Length:lengthDate:dateAuthorization:authorizationstring(seeAuthenticatingRequests(AWSSignatureVersion4))Content-MD5:MD5CORSConfigurationCORSRuleAllowedOriginOriginyouwanttoallowcross-domainrequestsfrom/AllowedOriginAllowedOrigin.../AllowedOrigin...AllowedMethodHTTPmethod/AllowedMethodAllowedMethod.../AllowedMethod...MaxAgeSecondsTimeinsecondsyourbrowsertocachethepre-flightOPTIONSresponseforaresource/MaxAgeSecondsAllowedHeaderHeadersthatyouwantthebrowsertobeallowedtosend/AllowedHeaderAllowedHeader.../AllowedHeader...ExposeHeaderHeadersintheresponsethatyouwantaccessiblefromclientapplication/ExposeHeaderExposeHeader.../ExposeHeader.../CORSRuleCORSRule.../CORSRule.../CORSConfiguration请求参数

无请求参数

请求Header名称描述必须Content-MD5对报文主体进行MD5算法获得128位二进制数,在通过Base64编码写入Content-MD5。可用于数据完整性检查。是请求元素名称描述必须CORSConfigurationCORSRule元素的集合,最多100个。
Type:Container
Children:CORSRules
Ancestor:None是CORSRule允许的来源和方法。最多100个。
Type:Container
Children:AllowedOrigin,AllowedMethod,MaxAgeSeconds,ExposeHeader,ID.
Ancestor:CORSConfiguration是ID每条规则的唯一标识ID。ID最长255个字符。
Type:String
Ancestor:CORSRule否AllowedMethod允许来源执行的HTTP方法。
Type:Enum(GET,PUT,HEAD,POST,DELETE)
Ancestor:CORSRule是AllowedOrigin允许跨域请求的来源,支持通配符"",且最多包含一个通配符
Type:String
Ancestor:CORSRule是AllowedHeader指定预请求中Access-Control-Request-Headers允许的Header。腾讯云对象存储将会返回请求中允许的Header。
Type:String
Ancestor:CORSRule否MaxAgeSeconds指定浏览器缓存腾讯云对象存储对预请求的响应时间,最多1个
Type:Integer(seconds)
Ancestor:CORSRule否ExposeHeader暴露给浏览器的header列表,即用户从应用程序中访问的响应头。
Type:String
Ancestor:CORSRule否响应响应Header

无特殊响应Header

响应元素

无响应元素

示例请求示例PUT/?corsHTTP/1.1Host:BUCKET_NAME.s3.REGION.jdcloud-oss.comx-amz-date:Tue,21Aug201217:54:50GMTContent-MD5:8dYiLewFWZyGgV2Q5FNI4W==Authorization:authorizationstringContent-Length:216CORSConfigurationCORSRuleAllowedOriginhttp://www.example.com/AllowedOriginAllowedMethodPUT/AllowedMethodAllowedMethodPOST/AllowedMethodAllowedMethodDELETE/AllowedMethodAllowedHeader/AllowedHeaderMaxAgeSeconds3000/MaxAgeSecExposeHeaderx-amz-server-side-encryption/ExposeHeader/CORSRuleCORSRuleAllowedOrigin/AllowedOriginAllowedMethodGET/AllowedMethodAllowedHeader/AllowedHeaderMaxAgeSeconds3000/MaxAgeSeconds/CORSRule/CORSConfiguration响应示例HTTP/1.1200OKx-amz-request-id:BDC4B83DF5096BBEDate:Tue,21Aug201217:54:50GMTServer:JDCloud腾讯云对象存储