默认情况下,存储分区未设置任何 CORS 配置。如需为现有存储分区设置或修改 CORS,您需要发出 PUT 请求(将范围限定到存储分区),并使用 cors
查询字符串参数。您必须针对您要应用的一个或多个 CORS 配置,在请求正文中包含 XML 文档。请注意,您无法为正在创建的新存储分区设置 CORS 配置。
您必须具有 FULL_CONTROL
权限才能将 CORS 配置应用于现有存储分区。此外,您还必须经过身份验证才能使用 PUT 存储分区方法。
有关如何在存储分区上设置 CORS 配置的指南,请参阅配置跨域资源共享 (CORS)。
查询字符串参数
参数 | 说明 | 必需 |
---|---|---|
cors |
您可用它来更改现有存储分区的 CORS 配置。您必须在请求正文中提供 CORS XML 文档。 | 否 |
如需了解您在创建和使用签名网址时包含的参数,请参阅签名网址查询字符串参数。
请求标头
请参阅常见请求标头。
请求正文元素
下图显示了 CORS 配置中的 XML 元素嵌套方式。有关详情,请参阅图表下方的表格。
以下请求正文元素仅在您使用 cors
查询字符串参数为现有存储分区指定 CORS 时适用。
元素 | 说明 |
---|---|
CorsConfig |
一个或多个 Cors 配置容器的容器。如果您指定多个 Cors 配置,请注意,Cors 配置将按照 CorsConfig 容器中列出的顺序进行评估。第一个 Cors 配置与用于确定要添加到响应中的任何 CORS 响应标头的请求来源匹配和方法相匹配中下载 Google 健身应用。 |
Cors |
用于应用于存储分区的 CORS 配置的容器。您可在每个 Cors 容器中指定多个来源和多种方法。如果请求来源与 Cors 容器中的任何来源匹配,并且请求方法与 Cors 容器中的任何方法匹配,则匹配。 |
Origins |
允许与此 Cloud Storage 存储分区之间跨源资源共享的源的容器。 |
Origin |
允许与此 Cloud Storage 存储分区共享跨源资源的来源。例如 https://origin1.example.com 。如果您提供仅包含通配符 (<Origin>*</Origin> ) 的值,则允许访问所有源。 |
Methods |
一个或多个 HTTP 方法元素的容器,用于指定允许与此 Cloud Storage 存储分区共享跨源资源共享的方法。 |
Method |
此配置中使用的 HTTP 方法。有效值为 DELETE 、GET 、HEAD 、POST 和 PUT 。 OPTIONS 会被解释为预检请求,因此您无需在 CORS 配置中指定此方法。 |
ResponseHeaders |
一个或多个 ResponseHeader 元素的可选容器。 |
ResponseHeader |
指定用户代理可在源文件之间共享的响应标头。 |
MaxAgeSec |
此值用于响应预检请求,指明客户端(浏览器)在发出请求前必须重复进行预检请求的时间(以秒为单位)。(表示缓存到期时间。) 如果请求方法包含非简单标头,或者请求方法不是 POST、GET 或 HEAD,则必须提供预检请求。值在对预检请求的响应中返回 Access-Control-Max-Age 标头。 |
请求语法
PUT /?cors HTTP/1.1 Host: BUCKET_NAME.storage.googleapis.com Date: DATE_AND_TIME_OF_REQUEST Content-Length: REQUEST_BODY_LENGTH Content-Type: MIME_TYPE_OF_THE_BODY Authorization: AUTHENTICATION_STRING XML_DOCUMENT_DEFINING_CORS
响应标头
请求可以返回各种响应标头,具体取决于您使用的请求标头。
响应正文元素
响应的响应正文中不包含 XML 文档。
示例
以下示例为名为 acme-pets 的存储分区设置了 CORS 配置。此 CORS 配置设置两个来源以及允许这些来源的 HTTP 方法。在此示例中,允许使用所有可用的 HTTP 方法。
请求
PUT /?cors HTTP/1.1 Host: acme-pets.storage.googleapis.com Date: Thu, 12 Mar 2012 03:38:42 GMT Content-Length: 1320 Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg <?xml version="1.0" encoding="UTF-8"?> <CorsConfig> <Cors> <Origins> <Origin>http://origin1.example.com</Origin> <Origin>http://origin2.example.com</Origin> </Origins> <Methods> <Method>GET</Method> <Method>HEAD</Method> <Method>PUT</Method> <Method>POST</Method> <Method>DELETE</Method> </Methods> <ResponseHeaders> <ResponseHeader>x-goog-meta-foo1</ResponseHeader> <ResponseHeader>x-goog-meta-foo2</ResponseHeader> </ResponseHeaders> <MaxAgeSec>1800</MaxAgeSec> </Cors> </CorsConfig>
响应
HTTP/1.1 200 OK Date: Thu, 12 Mar 2012 03:38:42 GMT Expires: Mon, 01 Jan 1990 00:00:00 GMT Cache-Control: no-cache, no-store, must-revalidate Content-Length: 0 Content-Type: text/html