Según la configuración predeterminada, los depósitos no tienen establecida ninguna configuración de CORS. A fin de establecer o modificar CORS para un depósito existente, realiza una solicitud PUT con alcance al depósito y usa el parámetro de string de consulta cors
. Debes incluir un documento XML en el cuerpo de la solicitud que contenga una o más opciones de configuración de CORS que desees aplicar. Ten en cuenta que no puedes establecer la configuración de CORS en un depósito nuevo que estés creando.
Debes tener el permiso FULL_CONTROL
para aplicar una configuración de CORS a un depósito existente. También debes autenticarte para usar el método de depósito PUT.
Para obtener una guía sobre cómo establecer configuraciones de CORS en depósitos, consulta la sección sobre cómo configurar el uso compartido de recursos multiorigen (CORS).
Parámetros de string de consulta
Parámetro | Descripción | Obligatorio |
---|---|---|
cors |
Usa esto para cambiar la configuración de CORS en un depósito existente. Debes proporcionar el documento XML de CORS en el cuerpo de la solicitud. | No |
Consulta los parámetros de string de consulta de URL firmados para obtener información sobre los parámetros que incluyes cuando creas y usas URL firmadas.
Solicita encabezados
Consulta encabezados de solicitud comunes.
Elementos de cuerpo de la solicitud
En el diagrama siguiente, se muestra la anidación de los elementos XML en la configuración de CORS. Consulta la tabla debajo del diagrama para obtener detalles adicionales.
Los siguientes elementos del cuerpo de la solicitud solo se aplican si usas el parámetro de string de consulta cors
para especificar CORS en un depósito existente.
Elemento | Descripción |
---|---|
CorsConfig |
Contenedor para uno o más contenedores de configuración de Cors. Si especificas varias configuraciones de Cors, ten en cuenta que las configuraciones de Cors se evaluarán en el orden determinado dentro del contenedor CorsConfig, con la primera configuración de Cors que coincide con el Origin y Method de la solicitud que se usa para determinar cualquier encabezado de respuesta CORS para agregar a la respuesta. las rutas "a GCP". |
Cors |
Contenedor para que se aplique una configuración de CORS al depósito. Puedes especificar varios orígenes y varios métodos en cada contenedor de Cors. Habrá una coincidencia si la fuente coincide con cualquiera de los orígenes en el contenedor de Cors y el método de solicitud coincide con cualquiera de los métodos del contenedor de Cors. |
Origins |
Contenedor para los orígenes permitidos para el uso compartido de recursos multiorigen con este depósito de Cloud Storage. |
Origin |
Un origen permitido para los recursos compartidos de origen cruzado con este depósito de Cloud Storage. Por ejemplo, https://origin1.example.com . Si proporcionas un valor que consiste solo en el comodín (<Origin>*</Origin> ), esto otorga acceso a TODOS los orígenes. |
Methods |
Contenedor para uno o más elementos de método HTTP, y especifica los métodos permitidos en el uso compartido de recursos de origen cruzado con este depósito de Cloud Storage. |
Method |
Un método HTTP que se usa en esta configuración. Los valores válidos son DELETE , GET , HEAD , POST y PUT .
OPTIONS se interpreta como una solicitud de comprobación previa, por lo que no necesitas especificar este método en tu configuración de CORS. |
ResponseHeaders |
Contenedor opcional para uno o más elementos de ResponseHeader |
ResponseHeader |
Especifica un encabezado de respuesta que el usuario-agente puede compartir entre los orígenes. |
MaxAgeSec |
Este valor se utiliza para responder a las solicitudes de comprobación previa, lo que indica la cantidad de segundos que el cliente (navegador) puede realizar solicitudes antes de que el cliente deba repetir la solicitud de verificación previa. (Indica el tiempo de caducidad de la caché). Las solicitudes de comprobación previa son obligatorias si el método de solicitud contiene encabezados no simples o si el método de solicitud no es POST, GET o HEAD. El valor se muestra en el encabezado Access-Control-Max-Age en las respuestas a las solicitudes de comprobación previa. |
Sintaxis de la solicitud
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
Encabezados de respuesta
La solicitud puede mostrar una variedad de encabezados de respuesta según los encabezados de la solicitud que uses.
Elementos del cuerpo de la respuesta
La respuesta no incluye un documento XML en el cuerpo de la respuesta.
Ejemplo
En el siguiente ejemplo, se configura una configuración de CORS en un depósito llamado acme-pets. Esta configuración de CORS establece dos orígenes y los métodos HTTP permitidos para esos orígenes. En este ejemplo, se permiten todos los métodos HTTP disponibles.
Solicitud
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>
Respuesta
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