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 2023-07-11 GMT+08:00

OPTIONS Bucket

Funciones

OPTIONS se refiere a las solicitudes previas que los clientes envían a los servidores. Generalmente, las solicitudes se utilizan para comprobar si los clientes tienen permisos para realizar operaciones en servidores. Solo después de que una solicitud previa se devuelve correctamente, los clientes comienzan a ejecutar las solicitudes de seguimiento.

OBS permite que los bucket almacenen los recursos web estáticos. Los bucket de OBS pueden servir como recursos del sitio web si los bucket se usan correctamente. En este escenario, los bucket en la OBS sirven como servidores para procesar las solicitudes previas de OPTIONS de los clientes.

OBS puede procesar solicitudes previas de OPTIONS solo después de configurar CORS para bucket en OBS. Para más detalles sobre CORS, véase Configuración de Bucket CORS.

Diferencias entre el bucket OPTIONS y el objeto OPTIONS

Con el objeto OPTIONS, debe especificar un nombre de objeto en la URL, pero no se requiere un nombre de objeto con el bucket OPTIONS, que utiliza el nombre de dominio del bucket como URL. Las líneas de solicitud de los dos métodos son las siguientes:

OPTIONS /object HTTP/1.1
OPTIONS / HTTP/1.1

Sintaxis de solicitud

1
2
3
4
5
OPTIONS / HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com Date: date
Authorization: authorization
Origin: origin
Access-Control-Request-Method: method

Parámetros de solicitud

Esta solicitud no contiene ningún parámetro.

Encabezados de solicitud

Esta solicitud utiliza los encabezados descritos en Tabla 1.

Tabla 1 Encabezados de solicitud OPTIONS

Encabezado

Descripción

Obligatorio

Origin

Origen de la solicitud entre dominios especificada por la solicitud previa. Generalmente, es un nombre de dominio establecido en CORS.

Tipo: string

Access-Control-Request-Method

Un método HTTP que puede ser utilizado por una solicitud. La solicitud puede utilizar varios encabezados de método.

Tipo: string

Los valores posibles son GET, PUT, HEAD, POST y DELETE.

Access-Control-Request-Headers

Cabeceras HTTP de una solicitud. La solicitud puede utilizar varios encabezados HTTP.

Tipo: string

No

Elementos de solicitud.

Esta solicitud no implica ningún elemento.

Sintaxis de respuesta

1
2
3
4
5
6
7
8
9
HTTP/1.1 status_code
Content-Type: application/xml 
Access-Control-Allow-Origin: origin
Access-Control-Allow-Methods: method
Access-Control-Allow-Header: header
Access-Control-Max-Age: time
Access-Control-Expose-Headers: header
Date: date
Content-Length: length

Encabezados de respuesta

La respuesta utiliza los siguientes encabezados como se describe en Tabla 2.

Tabla 2 Cabeceras de respuesta CORS

Encabezado

Descripción

Access-Control-Allow-Origin

Si el origen de una solicitud cumple con los requisitos de configuración de CORS del servidor, la respuesta contiene el origen.

Tipo: string

Access-Control-Allow-Headers

Si los encabezados de una solicitud cumplen con los requisitos de configuración de CORS del servidor, la respuesta contiene los encabezados.

Tipo: string

Access-Control-Max-Age

Valor de MaxAgeSeconds en la configuración CORS de un servidor

Tipo: integer

Access-Control-Allow-Methods

Si el método de solicitud de control de acceso de una solicitud cumple con los requisitos de configuración de CORS del servidor, la respuesta contiene los métodos de la regla.

Tipo: string

Los valores posibles son GET, PUT, HEAD, POST y DELETE.

Access-Control-Expose-Headers

Valor de ExposeHeader en la configuración CORS de un servidor

Tipo: string

Elementos de respuesta

Esta respuesta no implica elementos.

Respuestas de error

Tabla 3 describe posibles errores especiales en la solicitud.

Tabla 3 Error especial

Código de error

Descripción

Código de estado de HTTP

Bad Request

Invalid Access-Control-Request-Method: null

Cuando CORS y OPTIONS están configurados para un bucket, no se agrega ningún encabezado de método.

400 BadRequest

Bad Request

Insufficient information. Origin request header needed.

Cuando se configuran CORS y OPTIONS para un bucket, no se agrega ninguna cabecera de origen.

400 BadRequest

AccessForbidden

CORSResponse: This CORS request is not allowed. This is usually because the evaluation of Origin, request method / Access-Control-Request-Method or Access-Control-Request-Headers are not whitelisted by the resource's CORS specification.

Cuando CORS y OPTIONS están configurados para un bucket, el origen, el método y los encabezados no coinciden con ninguna regla.

403 Forbidden

Para otros errores, consulte Tabla 2.

Modelo de solicitud

1
2
3
4
5
6
7
8
OPTIONS / HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 04:02:15 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:7RqP1vjemo6U+Adv9/Y6eGzWrzA=
Origin: www.example.com
Access-Control-Request-Method: PUT

Modelo de respuesta

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF260000016436314E8FF936946DBC9C
Access-Control-Allow-Origin: www.example.com
Access-Control-Allow-Methods: POST,GET,HEAD,PUT,DELETE
Access-Control-Max-Age: 100
Access-Control-Expose-Headers: ExposeHeader_1,ExposeHeader_2
Access-Control-Allow-Credentials: true
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCTlYimJvOyJncCLNm5y/iz6MAGLNxTuS
Date: WED, 01 Jul 2015 04:02:15 GMT
Content-Length: 0