Definir CORS do bucket

Por padrão, os blocos não possuem qualquer conjunto de configurações de CORS. Para definir ou modificar o CORS para um bucket existente, faça uma solicitação PUT com escopo para o bucket e use o parâmetro de string de consulta cors. Você precisa incluir um documento XML no corpo da solicitação que contenha uma ou mais configurações CORS que você quer aplicar. Não é possível definir uma configuração de CORS em um novo bucket que você está criando.

Você precisa ter a permissão FULL_CONTROL para aplicar uma configuração de CORS a um bucket existente. Além disso, você precisa estar autenticado para usar o método PUT Bucket.

Para ver um guia sobre como definir configurações de CORS em buckets, consulte Como definir o compartilhamento de recursos entre origens (CORS).

Parâmetros de string de consulta

Parâmetro Descrição Obrigatório
cors Use para alterar a configuração de CORS em um bloco existente. É necessário fornecer o documento XML de CORS no corpo da solicitação. Não

Consulte parâmetros de string de consulta de URL assinado para informações sobre os parâmetros incluídos ao criar e usar URLs assinados.

Cabeçalhos de solicitação

Veja cabeçalhos de solicitação comuns.

Elementos do corpo da solicitação

No diagrama a seguir, veja o aninhamento dos elementos XML na configuração do CORS. Veja a tabela abaixo do diagrama para obter detalhes adicionais.

Os elementos do corpo da solicitação a seguir são aplicáveis somente se você usar o parâmetro de string de consulta cors para especificar o CORS para um bucket existente.

Element Descrição
CorsConfig Recipiente para um ou mais recipientes de configuração de Cors. Se você especificar múltiplas configurações de Cors, saiba que as configurações de Cors serão avaliadas na ordem listada dentro do recipiente CorsConfig, com a primeira configuração de Cors correspondendo à Origem e ao Método da solicitação usada para determinar quaisquer cabeçalhos de resposta do CORS para adição à resposta.
Cors Recipiente para uma configuração de CORS a ser aplicada ao bloco. É possível especificar diversas Origens e Métodos em cada recipiente do Cors. Haverá uma correspondência se a Origem da solicitação corresponder a qualquer uma das Origens no recipiente do Cors e o Método da solicitação corresponder a qualquer um dos Métodos no recipiente do Cors.
Origins Contêiner das origens permitidas para compartilhamento de recursos de origem cruzada com esse bucket do Cloud Storage.
Origin Uma origem permitida para compartilhamento de recursos de origem cruzada com esse bucket do Cloud Storage. Por exemplo, https://origin1.example.com Se você fornecer um valor que consiste apenas no caractere curinga (<Origin>*</Origin>), isso dará acesso a TODAS as origens.
Methods Contêiner para um ou mais elementos do método HTTP, especificando os métodos permitidos no compartilhamento de recursos de origem cruzada com esse bucket do Cloud Storage.
Method Um método HTTP usado nessa configuração. Os valores válidos são: DELETE, GET, HEAD, POST e PUT. OPTIONS é interpretado como uma solicitação de simulação. Portanto, não é necessário especificar esse método na configuração do CORS.
ResponseHeaders Recipiente opcional para um ou mais elementos ResponseHeader.
ResponseHeader Especifica um cabeçalho de resposta que pode ser compartilhado pelo agente usuário entre origens.
MaxAgeSec Esse valor é usado para responder a solicitações simuladas, indicando o número de segundos que o cliente (navegador) tem permissão para fazer solicitações antes de o cliente precisar repetir a solicitação de simulação. Indica o tempo de expiração do cache. As solicitações de simulação são obrigatórias se o método de solicitação contiver cabeçalhos não simples ou se não for POST, GET ou HEAD. O valor é retornado no cabeçalho Access-Control-Max-Age em respostas às simulações de solicitação.

Sintaxe da solicitação

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

Cabeçalhos de resposta

A solicitação pode retornar diversos cabeçalhos de resposta, dependendo dos cabeçalhos de solicitação usados.

Elementos do corpo da resposta

A resposta não inclui um documento XML no corpo da resposta.

Exemplo

O exemplo a seguir define uma configuração de CORS em um bloco chamado acme-pets. Essa configuração de CORS define duas origens e os métodos HTTP permitidos para essas origens. Nesse exemplo, todos os métodos HTTP disponíveis têm permissão.

Solicitação

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>

Resposta

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