Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-09-18 GMT+08:00

Configuración de Bucket CORS

Funciones

El intercambio de recursos de origen cruzado (Cross-origin resource sharing, CORS) es un mecanismo estándar propuesto por World Wide Web Consortium (W3C) y permite solicitudes de origen cruzado de los clientes. Para las solicitudes de páginas web estándar, los scripts y contenidos de un sitio web no pueden interactuar con los de otro sitio web debido a la existencia de la Política del Mismo Origen (Same Origin Policy, SOP).

OBS permite que los bucket almacenen recursos web estáticos. Los bucket de OBS pueden servir como recursos del sitio web si los bucket se usan correctamente (para más detalles, consulte Configuración de alojamiento estático de sitios web para un bucket). Un sitio web en OBS puede responder a las solicitudes de otros sitios web solo después de que CORS esté correctamente configurado.

Los escenarios de aplicación típicos son los siguientes:

  • Con el soporte de CORS, puede usar JavaScript y HTML5 para construir aplicaciones web y acceder directamente a los recursos en OBS sin la necesidad de usar servidores proxy para la transferencia.
  • Puede activar la función de arrastre de HTML 5 para cargar directamente archivos a la OBS (con el progreso de carga mostrado) o actualizar los contenidos de la OBS utilizando aplicaciones web.
  • Aloja páginas web externas, hojas de estilo y aplicaciones HTML 5 en diferentes orígenes. Las fuentes web o las imágenes en OBS pueden ser compartidas por varios sitios web.

Para realizar esta operación, debe tener el permiso PutBucketCORS. De forma predeterminada, solo el propietario del bucket puede realizar esta operación. El propietario del bucket puede conceder el permiso a otros usuarios configurando la política de bucket o la política de usuario.

Sintaxis de solicitud

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
PUT /?cors HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com Content-Length: length
Date: date
Authorization: authorization
Content-SHA256: SHA256
<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration> 
    <CORSRule> 
        <ID>id</ID> 
        <AllowedMethod>method</AllowedMethod> 
        <AllowedOrigin>origin</AllowedOrigin> 
        <AllowedHeader>header</AllowedHeader> 
        <MaxAgeSeconds>seconds</MaxAgeSeconds> 
        <ExposeHeader>header</ExposeHeader> 
    </CORSRule> 
</CORSConfiguration>

Parámetros de solicitud

Esta solicitud no contiene parámetros de mensaje.

Encabezados de solicitud

Esta solicitud utiliza encabezados comunes y encabezados de solicitud CORS. Para obtener más información, consulte Tabla 3 y Tabla 1.

Tabla 1 Encabezado de solicitud CORS

Encabezado

Descripción

Obligatorio

Content-SHA256

Resumen de 256 bits SHA256 codificado en base64 del mensaje según SHA.

Tipo: string

Ejemplo: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=

Elementos de solicitud

En esta solicitud, debe configurar el CORS de los bucket en el cuerpo de la solicitud. La configuración del ciclo de vida se especifica como XML con los elementos descritos en Tabla 2.

Tabla 2 Elementos de configuración CORS

Elemento

Descripción

Obligatorio

CORSConfiguration

El nodo raíz de CORSRule y su capacidad no puede superar los 64 KB.

Tipo: container

Antepasado: ninguno

CORSRule

Las reglas del CORS. CORSConfiguration puede contener un máximo de 100 reglas.

Tipo: container

Antepasado: CORSConfiguration

ID

Identificador único de una regla. El valor puede contener un máximo de 255 caracteres.

Tipo: string

Antepasado: CORSRule

No

AllowedMethod

Método permitido por una regla CORS

Tipo: string

Opciones de valor: GET, PUT, HEAD, POST, DELETE

Antepasado: CORSRule

AllowedOrigin

El origen permitido por una regla CORS. Es una string de caracteres y puede contener un comodín (*), y permite un comodín (*) como máximo.

Tipo: string

Antepasado: CORSRule

AllowedHeader

Cabeceras que se permiten en una solicitud PutBucketCORS a través del encabezado Access-Control-Request-Headers. Si una solicitud contiene Access-Control-Request- Headers, solo una solicitud CORS que coincida con la configuración de AllowedHeader se considera como una solicitud válida. Cada AllowedHeader puede contener como máximo un comodín (*) y no puede contener espacios.

Tipo: string

Antepasado: CORSRule

No

MaxAgeSeconds

Indica el tiempo de respuesta de CORS que un cliente puede almacenar en caché. Se expresa en segundos.

Cada CORSRule puede contener solo un MaxAgeSeconds. Se puede establecer en un valor negativo.

Tipo: integer

Antepasado: CORSRule

No

ExposeHeader

Un encabezado adicional en las respuestas CORS. El encabezado proporciona información adicional para los clientes. No puede contener espacios.

Tipo: string

Antepasado: CORSRule

No

Sintaxis de respuesta

1
2
3
4
HTTP/1.1 status_code

Date: date
Content-Length: length

Encabezados de respuesta

La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.

Elementos de respuesta

Esta respuesta no contiene elementos.

Respuestas de error

No se devuelven respuestas de error especiales. Para obtener más información sobre las respuestas de error, consulte Tabla 2.

Modelo de solicitud

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
PUT /?cors HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:51:52 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:lq7BGoqE9yyhdEwE6KojJ7ysVxU=
Content-SHA256: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=
Content-Length: 617

<?xml version="1.0" encoding="utf-8"?>
<CORSConfiguration> 
  <CORSRule> 
    <AllowedMethod>POST</AllowedMethod>  
    <AllowedMethod>GET</AllowedMethod>  
    <AllowedMethod>HEAD</AllowedMethod>  
    <AllowedMethod>PUT</AllowedMethod>  
    <AllowedMethod>DELETE</AllowedMethod>  
    <AllowedOrigin>www.example.com</AllowedOrigin>  
    <AllowedHeader>AllowedHeader_1</AllowedHeader>  
    <AllowedHeader>AllowedHeader_2</AllowedHeader>  
    <MaxAgeSeconds>100</MaxAgeSeconds>  
    <ExposeHeader>ExposeHeader_1</ExposeHeader>  
    <ExposeHeader>ExposeHeader_2</ExposeHeader> 
  </CORSRule>
</CORSConfiguration>

Modelo de respuesta

1
2
3
4
5
6
7
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643627112BD03512FC94A4
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSYi6wLC4bkrvuS9sqnlRjxK2a5Fe3ry
Date: WED, 01 Jul 2015 03:51:52 GMT
Content-Length: 0