Solicitação de simulação de blob

A Preflight Blob Request operação consulta as regras de CORS (Compartilhamento de Recursos entre Origens) para Armazenamento de Blobs do Azure antes de enviar a solicitação.

Um navegador da Web ou outro agente de usuário envia uma solicitação de simulação que inclui o domínio de origem, o método e os cabeçalhos para a solicitação que o agente deseja fazer. Se o CORS estiver habilitado para o Armazenamento de Blobs, o Armazenamento de Blobs avaliará a solicitação de pré-voo em relação às regras cors configuradas pelo proprietário da conta por meio de Definir Propriedades do Serviço blob. Em seguida, o Armazenamento de Blobs aceita ou rejeita a solicitação.

Para obter mais informações sobre o CORS e a solicitação de pré-voo, consulte a especificação cors e osuporte a CORS para o Armazenamento do Azure.

Solicitação

Você pode especificar Preflight Blob Request da seguinte maneira. Substitua <account-name> com o nome da sua conta de armazenamento. Substitua <blob-resource> pelo contêiner ou recurso de blob que será o destino da solicitação.

Verbo HTTP URI da solicitação Versão HTTP
OPTIONS http://<account-name>.blob.core.windows.net/<blob-resource> HTTP/1.1

O URI sempre deve incluir a barra (/) para separar o nome do host das partes de caminho e consulta do URI. No caso dessa operação, a parte do caminho do URI pode estar vazia ou apontar para qualquer contêiner ou recurso de blob.

O recurso pode ou não existir no momento em que a solicitação de pré-voo é feita. A solicitação de pré-voo é avaliada no nível de serviço em relação às regras CORS do serviço, portanto, a presença ou ausência do nome do recurso não afeta o êxito ou a falha da operação.

Parâmetros do URI

Nenhum.

Cabeçalhos da solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais:

Cabeçalho da solicitação Descrição
Origin Obrigatórios. Especifica a origem da qual a solicitação será emitida. A origem é verificada em relação às regras de CORS de serviço para determinar o êxito ou a falha da solicitação de simulação.
Access-Control-Request-Method Obrigatórios. Especifica o método (ou verbo HTTP) para a solicitação. O método é verificado em relação às regras de CORS de serviço para determinar a falha ou êxito da solicitação de simulação.
Access-Control-Request-Headers Opcional. Especifica os cabeçalhos de solicitação que serão enviados. Se não estiver presente, o serviço pressupõe que a solicitação não inclua cabeçalhos.

Corpo da solicitação

Nenhum.

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 200 (OK).

Para obter informações sobre códigos de status, consulte Códigos de status e de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Para obter detalhes sobre cabeçalhos de solicitação de pré-vôo, consulte a especificação CORS.

Cabeçalho de resposta Descrição
Access-Control-Allow-Origin Indica a origem permitida, que corresponde ao cabeçalho de origem na solicitação se a solicitação de pré-vôo for bem-sucedida.
Access-Control-Allow-Methods Se a solicitação de pré-vôo for bem-sucedida, esse cabeçalho será definido como o valor ou os valores especificados para o cabeçalho Access-Control-Request-Methodde solicitação .
Access-Control-Allow-Headers Se a solicitação de pré-vôo for bem-sucedida, esse cabeçalho será definido como o valor ou os valores especificados para o cabeçalho Access-Control-Request-Headersde solicitação .
Access-Control-Max-Age Especifica o período de tempo em que o agente do usuário tem permissão para armazenar em cache a solicitação de pré-voo para solicitações futuras.
Access-Control-Allow-Credentials Indica se a solicitação pode ser feita por meio de credenciais. Este cabeçalho é sempre definido como true.

Corpo da resposta

Nenhum.

Autorização

A Preflight Blob Request operação sempre é executada anonimamente. Ele não requer autorização e ignora as credenciais se elas forem fornecidas.

Observação

Se você habilitou a análise do Armazenamento do Azure e está registrando métricas, uma chamada para a Preflight Blob Request operação será registrada como AnonymousSuccess. Por esse motivo, se você exibir métricas no portal do Azure, verá AnonymousSuccess registrado em log para Preflight Blob Request. Essa métrica não indica que seus dados privados foram comprometidos, mas apenas que a Preflight Blob Request operação foi bem-sucedida com um código status de 200 (OK).

Exemplo de solicitação e resposta

O exemplo a seguir envia uma solicitação de pré-vôo para a origem www.contoso.com. O método de solicitação é definido como PUTe os cabeçalhos de solicitação são definidos como content-type e accept.

OPTIONS http://myaccount.blob.core.windows.net/mycontainer/myblockblob  HTTP/1.1  
Accept: */*  
Origin: www.contoso.com  
Access-Control-Request-Method: PUT  
Access-Control-Request-Headers: content-type, accept  
Accept-Encoding: gzip, deflate  
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)  
Content-Length: 0  
  

A resposta indica que o CORS está habilitado para o serviço e que uma regra CORS corresponde à solicitação de pré-vôo:

HTTP/1.1 200 OK  
Connection: Keep-Alive  
Content-Length: 0  
Content-Type: text/html; charset=UTF-8  
Access-Control-Allow-Origin: *  
Access-Control-Max-Age: 60  
Access-Control-Allow-Methods: PUT  
Access-Control-Allow-Headers: accept,content-type  
  

Comentários

Se o CORS estiver habilitado para o serviço e uma regra CORS corresponder à solicitação de pré-vôo, o serviço responderá à solicitação de pré-voo com status código 200 (OK). A resposta inclui os cabeçalhos Access-Control necessários. Nesse caso, a solicitação é cobrada.

Se CORS não estiver habilitado ou nenhuma regra CORS corresponder à solicitação de simulação, o serviço responde com o código de status 403 (Proibido). Nesse caso, a solicitação não é cobrada.

Se a solicitação OPTIONS estiver malformada, o serviço responderá com status código 400 (Solicitação Incorreta) e a solicitação não será cobrada. Um exemplo de uma solicitação malformada é aquele que não contém os cabeçalhos e Access-Control-Request-Method necessáriosOrigin.

A solicitação de pré-voo é um mecanismo para consultar a funcionalidade CORS de um serviço de armazenamento associado a uma determinada conta de armazenamento. A solicitação de simulação não é destinada a um recurso específico.

Cobrança

As solicitações de preços podem ser originadas de clientes que usam APIs de Armazenamento de Blobs, diretamente por meio da API REST do Armazenamento de Blobs ou de uma biblioteca de clientes do Armazenamento do Azure. Essas solicitações acumulam encargos por transação. O tipo de transação afeta a forma como a conta é cobrada. Por exemplo, as transações de leitura se acumulam em uma categoria de cobrança diferente das transações de gravação. A tabela a seguir mostra a categoria de cobrança para Preflight Blob Request solicitações com base no tipo de conta de armazenamento:

Operação Tipo de conta de armazenamento Categoria de cobrança
Solicitação de simulação de blob Blob de blocos Premium
Uso geral v2 Standard
Outras operações
Solicitação de simulação de blob Uso geral v1 Standard Operações de leitura

Para saber mais sobre os preços para a categoria de cobrança especificada, consulte Armazenamento de Blobs do Azure Preços.

Confira também

Operações na conta (Armazenamento de Blobs)
Suporte do CORS para o Armazenamento do Azure