Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-24 GMT+08:00

OPTIONS Bucket

Funções

OPTIONS refere-se a pré-solicitações que são enviadas aos servidores pelos clientes. Geralmente, as solicitações são usadas para verificar se os clientes têm permissões para executar operações em servidores. Somente depois que uma pré-solicitação é retornada com sucesso, os clientes começam a executar as solicitações de acompanhamento.

O OBS permite que os buckets armazenem recursos estáticos da Web. Os buckets do OBS podem servir como recursos do site se os buckets forem usados corretamente. Nesse cenário, os buckets no OBS servem como servidores para processar pré-solicitações de OPTIONS dos clientes.

O OBS pode processar pré-solicitações de OPTIONS somente depois que o CORS estiver configurado para buckets no OBS. Para obter detalhes sobre o CORS, consulte Configuração CORS de um bucket.

Diferenças entre o bucket OPTIONS e o objeto OPTIONS

Com o objeto OPTIONS, você precisa especificar um nome de objeto no URL, mas não é necessário um nome de objeto com o bucket OPTIONS, que usa o nome de domínio do bucket como o URL. As linhas de solicitação dos dois métodos são as seguintes:

OPTIONS /object HTTP/1.1
OPTIONS / HTTP/1.1

Sintaxe da solicitação

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

Parâmetros de solicitação

Esta solicitação não contém nenhum parâmetro.

Cabeçalhos de solicitação

Essa solicitação usa os cabeçalhos descritos em Tabela 1.

Tabela 1 Cabeçalhos de solicitação OPTIONS

Cabeçalho

Descrição

Obrigatório

Origin

Origin da solicitação de cross-domain especificada pela pré-solicitação. Geralmente, é um nome de domínio definido em CORS.

Tipo: string

Sim

Access-Control-Request-Method

Um método de HTTP que pode ser usado por uma requisição. A requisição pode usar vários cabeçalhos de método.

Tipo: string

Os valores possíveis são GET, PUT, HEAD, POST e DELETE.

Sim

Access-Control-Request-Headers

Cabeçalhos de HTTP de uma solicitação. A solicitação pode usar vários cabeçalhos de HTTP.

Tipo: string

Não

Elementos de solicitação

Este pedido não envolve elementos.

Sintaxe da resposta

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

Cabeçalhos de resposta

A resposta usa os seguintes cabeçalhos, conforme descrito em Tabela 2.

Tabela 2 Cabeçalhos de resposta CORS

Cabeçalho

Descrição

Access-Control-Allow-Origin

Se a Origin de uma solicitação atender aos requisitos de configuração CORS do servidor, a resposta conterá a Origin.

Tipo: string

Access-Control-Allow-Headers

Se os headers de uma solicitação atenderem aos requisitos de configuração CORS do servidor, a resposta conterá os headers.

Tipo: string

Access-Control-Max-Age

Valor de MaxAgeSeconds na configuração CORS de um servidor

Tipo: inteiro

Access-Control-Allow-Methods

Se o Access-Control-Request-Method de uma solicitação atender aos requisitos de configuração CORS do servidor, a resposta conterá os Methods nesta rule.

Tipo: string

Os valores possíveis são GET, PUT, HEAD, POST e DELETE.

Access-Control-Expose-Headers

Valor de ExposeHeader na configuração CORS de um servidor

Tipo: string

Elementos de resposta

Esta resposta não envolve elementos.

Respostas de erro

Tabela 3 descreve possíveis erros especiais na solicitação.

Tabela 3 Erro especial

Código de erro

Descrição

Código de status de HTTP

Bad Request

Invalid Access-Control-Request-Method: null

Quando CORS e OPTIONS são configurados para um bucket, nenhum cabeçalho de method é adicionado.

400 BadRequest

Bad Request

Insufficient information. Origin request header needed.

Quando CORS e OPTIONS são configurados para um bucket, nenhum cabeçalho de origin é adicionado.

400 BadRequest

AccessForbidden

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

Quando CORS e OPTIONS são configurados para um bucket, Origin, method e Headers não correspondem a nenhuma rule.

403 Forbidden

Para outros erros, veja Tabela 2.

Solicitação de exemplo

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

Resposta de exemplo

 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