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