Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Obter Blob

 

A palavras-chave Async e Await no Visual Basic e a palavras-chave async e await em c# são o coração da programação assíncrona. Você também pode chamar Get Blob para ler um instantâneo.

A palavras-chave Async e Await no Visual Basic e a palavras-chave async e await em c# são o coração da programação assíncrona. HTTPS é recomendado. Substitua myaccount com o nome da sua conta de armazenamento:

URI de solicitação do método GET

Versão HTTP

https://myaccount.blob.core.windows.net/mycontainer/myblob

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

HTTP/1.0

HTTP/1.1

Ao fazer uma solicitação ao serviço de armazenamento emulado, especifique o nome de host do emulador e a porta do serviço Blob como 127.0.0.1:10000, seguido pelo nome da conta de armazenamento emulado:

URI de solicitação do método GET

Versão HTTP

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.0

HTTP/1.1

Para obter mais informações, consulte usando o emulador de armazenamento do Azure para desenvolvimento e teste.

Os seguintes parâmetros adicionais podem ser especificados no URI da solicitação.

PARAMETER

Descrição

snapshot

Opcional. O parâmetro de instantâneo é opaco DateTime valor que, quando presente, especifica o instantâneo de blob para recuperar. Para obter mais informações sobre como trabalhar com instantâneos de blob, consulte Criando um instantâneo de um Blob.

timeout

Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, consulte Configurando os tempos limite para operações de serviço do Blob.

A tabela a seguir descreve os cabeçalhos de solicitação necessários e opcionais.

Cabeçalho da solicitação

Descrição

Authorization

Obrigatório. Especifica o esquema de autenticação, nome da conta e assinatura. Para obter mais informações, consulte Autenticação federada para os Serviços de Armazenamento do Azure.

Date ou x-ms-date

Obrigatório. Especifica o tempo Universal Coordenado (UTC) para a solicitação. Para obter mais informações, consulte Autenticação federada para os Serviços de Armazenamento do Azure.

x-ms-version

Necessário para todas as solicitações autenticadas, opcionais para solicitações anônimas. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os serviços de armazenamento do Azure.

Range

Opcional. Retorne somente os bytes do blob no intervalo especificado.

x-ms-range

Opcional. Retorne somente os bytes do blob no intervalo especificado. Se ambos os Range e x-ms-range forem especificados, o serviço usa o valor de x-ms-range. Se nenhum for especificado, o conteúdo do blob inteiro será retornado. Consulte Especificando o cabeçalho de intervalo para operações de serviço Blob para obter mais informações.

x-ms-lease-id:<ID>

Opcional. Se esse cabeçalho é especificado, a operação será executada apenas se as duas condições a seguir forem atendidas:

  • A concessão do blob está atualmente ativa.

  • A ID de concessão especificada na solicitação corresponde do blob.

Se esse cabeçalho é especificado e nenhuma dessas condições for atendida, a solicitação falhará e o Get Blob Falha na operação com código de status 412 (Falha na Precondição).

x-ms-range-get-content-md5: true

Opcional. Quando esse cabeçalho é definido como true e especificado junto com o Range cabeçalho, o serviço retorna o hash MD5 para o intervalo, desde que o intervalo é menor ou igual a 4 MB de tamanho.

Se esse cabeçalho é especificado sem o Range cabeçalho, o serviço retornará o código de status 400 (solicitação incorreta).

Se esse cabeçalho é definido como true quando o intervalo exceder 4 MB de tamanho, o serviço retornará o código de status 400 (solicitação incorreta).

Origin

Opcional. Especifica a origem da qual a solicitação é emitida. A presença desse cabeçalho resulta em recursos de origens cruzadas compartilhando (CORS) cabeçalhos na resposta.

x-ms-client-request-id

Opcional. Fornece um valor opaco, gerado pelo cliente, com um limite de caracteres de 1 KB que é registrado nos logs de análise quando o log de análise de armazenamento está habilitado. Usar esse cabeçalho é altamente recomendável para correlacionar atividades do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Sobre o log de análise de armazenamento e o log: Usando Logs para controlar solicitações de armazenamento.

Essa operação também oferece suporte ao uso de cabeçalhos condicionais para ler o blob somente se uma determinada condição for atendida. Para obter mais informações, consulte Especificando cabeçalhos condicionais para operações de serviço Blob.

A resposta inclui um código de status HTTP, um conjunto de cabeçalhos de resposta e o corpo da resposta, que contém o conteúdo do blob.

Uma operação bem-sucedida para ler todo o blob retornará o código de status 200 (OK).

Uma operação bem-sucedida para ler um intervalo especificado retorna o código de status 206 (conteúdo parcial).

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

A resposta para essa operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos padrão HTTP adicionais. Todos os cabeçalhos padrão obedecem a especificação do protocolo HTTP/1.1.

Sintaxe

Descrição

Last-Modified

A data/hora que o blob foi modificado pela última vez. O formato de data segue RFC 1123.

Qualquer operação que modifica o blob, incluindo uma atualização de metadados ou propriedades, o blob altera a hora da última modificação do blob.

x-ms-meta-name:value

Um conjunto de pares nome-valor associado a esse blob como metadados definidos pelo usuário.

Content-Length

O número de bytes presentes no corpo da resposta.

Content-Type

O tipo de conteúdo especificado para o blob. O tipo de conteúdo padrão é application/octet-stream.

Content-Range

Indica o intervalo de bytes retornados que o cliente solicitou um subconjunto do blob, definindo o Range cabeçalho de solicitação.

ETag

A ETag contém um valor que você pode usar para executar operações condicionalmente. Consulte Especificando cabeçalhos condicionais para operações de serviço Blob para obter mais informações. Se a versão da solicitação é 2011-08-18 ou mais recente, o valor de ETag estará entre aspas.

Content-MD5

Se o blob tiver um hash MD5 e isso Get Blob operação é ler todo o blob, esse cabeçalho de resposta é retornado para que o cliente pode verificar a integridade do conteúdo.

Na versão 2012-02-12 e mais recente, Put Blob conjuntos de valor de hash MD5 de um blob de blocos mesmo quando o Put Blob solicitação não inclui um cabeçalho MD5.

Se a solicitação for para ler um intervalo especificado e o x-ms-range-get-content-md5 é definido como true, a solicitação retornará um hash MD5 para o intervalo, desde que o tamanho do intervalo é menor ou igual a 4 MB.

Se nenhum desses conjuntos de condições for verdadeiro, nenhum valor é retornado para o Content-MD5 cabeçalho.

Se x-ms-range-get-content-md5 for especificado sem o Range cabeçalho, o serviço retornará o código de status 400 (solicitação incorreta).

Se x-ms-range-get-content-md5 for definido como true quando o intervalo exceder 4 MB de tamanho, o serviço retornará o código de status 400 (solicitação incorreta).

Content-Encoding

Esse cabeçalho retorna o valor especificado para o Content-Encoding cabeçalho de solicitação.

Content-Language

Esse cabeçalho retorna o valor especificado para o Content-Language cabeçalho de solicitação.

Cache-Control

Esse cabeçalho é retornado caso tenha sido especificado para o blob.

Content-Disposition

Retornado para solicitações em relação à versão 2013-08-15 e posterior. Esse cabeçalho retorna o valor especificado para o x-ms-blob-content-disposition cabeçalho.

A palavras-chave Async e Await no Visual Basic e a palavras-chave async e await em c# são o coração da programação assíncrona. Por exemplo, se definido como attachment, ele indica que o agente do usuário não deve exibir a resposta, mas mostrar em vez disso, um Salvar como caixa de diálogo com um nome de arquivo diferente do nome do blob especificado.

x-ms-blob-sequence-number

O número de sequência atual para um blob de página.

Esse cabeçalho não é retornado para blobs de bloco ou blobs de acréscimo.

x-ms-blob-type: <BlockBlob| PageBlob|AppendBlob>

Retorna o tipo do blob.

x-ms-copy-completion-time:<datetime>

Versão 2012-02-12 e mais recente. Hora de conclusão da última tentativa Copy Blob operação onde esse blob foi o destino. Esse valor pode especificar a hora de completed, cancelada ou falha na tentativa de cópia. Esse cabeçalho não será exibida se uma cópia estiver pendente, se esse blob nunca tiver sido o destino em um Copy Blob operação, ou se esse blob foi modificado após um concluída Copy Blob operação usando Set Blob Properties, Put Blob, ou Put Block List.

x-ms-copy-status-description: <error string>

Versão 2012-02-12 e mais recente. Aparece somente quando x-ms-copy-status é failed ou pending. Descreve a causa da última falha de operação de cópia fatal ou não fatal. Esse cabeçalho não será exibida se esse blob nunca tiver sido o destino em um Copy Blob operação, ou se esse blob foi modificado após um concluída Copy Blob operação usando Set Blob Properties, Put Blob, ou Put Block List.

x-ms-copy-id: <id>

Versão 2012-02-12 e mais recente. Identificador de cadeia de caracteres para a última tentativa Copy Blob operação onde esse blob foi o destino. Esse cabeçalho não será exibida se esse blob nunca tiver sido o destino em um Copy Blob operação, ou se esse blob foi modificado após um concluída Copy Blob operação usando Set Blob Properties, Put Blob, ou Put Block List.

x-ms-copy-progress: <bytes copied/bytes total>

Versão 2012-02-12 e mais recente. Contém o número de bytes copiados e o total de bytes na origem na última tentativa Copy Blob operação onde esse blob foi o destino. Pode mostrar entre 0 e Content-Length bytes copiados. Esse cabeçalho não será exibida se esse blob nunca tiver sido o destino em um Copy Blob operação, ou se esse blob foi modificado após um concluída Copy Blob operação usando Set Blob Properties, Put Blob, ou Put Block List.

x-ms-copy-source: url

Versão 2012-02-12 e mais recente. URL para cima a 2 KB de comprimento que especifica o blob de origem ou o arquivo usado na última tentativa Copy Blob operação onde esse blob foi o destino. Esse cabeçalho não será exibida se esse blob nunca tiver sido o destino em um Copy Blob operação, ou se esse blob foi modificado após um concluída Copy Blob operação usando Set Blob Properties, Put Blob, ou Put Block List.

x-ms-copy-status: <pending | success | aborted | failed>

Versão 2012-02-12 e mais recente. Estado da operação de cópia identificada por x-ms-copy-id, com estes valores:

  • success: Cópia concluída com êxito.

  • pending: Cópia está em andamento. Verificar x-ms-copy-status-description se intermitente, erros não fatais lento o andamento da cópia, mas não causarem falha.

  • aborted: Cópia foi finalizada pelo Abort Copy Blob.

  • failed: Falha na cópia. Consulte x-ms-copy-status-description para obter detalhes da falha.

Esse cabeçalho não será exibida se esse blob nunca tiver sido o destino em um Copy Blob operação, ou se esse blob foi modificado após um concluído Copy Blob operação usando Set Blob Properties, Put Blob, ou Put Block List.

x-ms-lease-duration: <infinite | fixed>

Versão 2012-02-12 e mais recente. Quando um blob é concedido, especifica se a concessão de duração infinita ou fixa.

x-ms-lease-state: <available | leased | expired | breaking | broken>

Versão 2012-02-12 e mais recente. Estado do blob de concessão.

x-ms-lease-status:<locked, unlocked>

O status de concessão atual do blob.

x-ms-request-id

Esse cabeçalho identifica exclusivamente a solicitação foi feita e pode ser usada para solucionar problemas na solicitação. Para obter mais informações, consulte Solucionando problemas nas operações de API.

x-ms-version

Indica a versão do serviço Blob usado para executar a solicitação. Incluído para solicitações feitas com a versão 2009-09-19 e mais recente.

Esse cabeçalho também é retornado para solicitações anônimas sem uma versão especificada se o contêiner foi marcado para acesso público usando a versão 2009-09-19 do serviço Blob.

Accept-Ranges: bytes

Indica que o serviço oferece suporte a solicitações de conteúdo de blob parcial. Incluído para solicitações feitas usando a versão 2011-08-18 e mais recentes e para o serviço de armazenamento local no SDK versão 1.6 ou mais recente.

Date

Um valor de data/hora UTC gerado pelo serviço que indica a hora em que a resposta foi iniciada.

Access-Control-Allow-Origin

Retornado se a solicitação inclui um Origin cabeçalho e CORS está habilitado com uma regra de correspondência. Esse cabeçalho retorna o valor do cabeçalho de solicitação de origem no caso de uma correspondência.

Access-Control-Expose-Headers

Retornado se a solicitação inclui um Origin cabeçalho e CORS está habilitado com uma regra de correspondência. Retorna a lista de cabeçalhos de resposta que devem ser expostos ao cliente ou emissor da solicitação.

Vary

Retornado com o valor de Origin cabeçalho quando as regras de CORS são especificadas. Consulte O suporte para os serviços de armazenamento do Azure (CORS) de compartilhamento de recursos entre origens para obter detalhes.

Access-Control-Allow-Credentials

Retornado se a solicitação inclui um Origin cabeçalho e CORS está habilitado com uma regra de correspondência que não permite todas as origens. Esse cabeçalho será definido como true.

x-ms-blob-committed-block-count

O número de blocos confirmados presentes no blob. Esse cabeçalho é retornado apenas para blobs de acréscimo.

O corpo da resposta contém o conteúdo do blob.

Status Response:
HTTP/1.1 200 OK

Response Headers:
x-ms-blob-type: BlockBlob
x-ms-lease-status: unlocked
x-ms-lease-state: available
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: <date>
ETag: "0x8CB171DBEAD6A6B"
Vary: Origin
Last-Modified: <date>
x-ms-version: 2015-02-21
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-copy-id: 36650d67-05c9-4a24-9a7d-a2213e53caf6
x-ms-copy-source: <url>
x-ms-copy-status: success
x-ms-copy-progress: 11/11
x-ms-copy-completion-time: <date>

Se a lista de controle de acesso (ACL) do contêiner é definida para permitir acesso anônimo para o blob, qualquer cliente poderá chamar essa operação. Se o contêiner for privado, essa operação pode ser executada pelo proprietário da conta e por qualquer pessoa com uma assinatura de acesso compartilhado que tenha permissão para ler o blob.

Para um blob de página, um Get Blob operação em um intervalo de páginas que ainda não têm conteúdo ou que foi limpo retorna zeros para esses bytes.

Se você chamar Get Blob em um blob de página sem o intervalo especificado, o serviço retorna o intervalo de páginas até o valor especificado para o x-ms-blob-content-length cabeçalho. Para as páginas que carecem de conteúdo, o serviço retornará zero para esses bytes.

Para um blob de anexo, o Get Blob operação retorna x-ms-blob-committed-block-count cabeçalho. Esse cabeçalho indica o número de blocos confirmados no blob. O x-ms-blob-committed-block-count cabeçalho não é retornado para blobs de bloco ou página.

Um Get Blob operação é permitida 2 minutos por MB para concluir. Se a operação está demorando mais de 2 minutos por MB em média, ela atingirá o tempo limite.

A palavras-chave Async e Await no Visual Basic e a palavras-chave async e await em c# são o coração da programação assíncrona. Se o blob pertencer a um contêiner que está disponível para acesso público completo ou parcial, qualquer cliente possa lê-lo sem especificar uma versão; a versão do serviço não é necessária para recuperar um blob que pertence a um contêiner público. Consulte restringir o acesso aos contêineres e Blobs para obter mais informações.

Operações de cópia

Para determinar se um Copy Blob operação for concluída, primeiro verifique se o x-ms-copy-id valor de cabeçalho do blob de destino corresponde a ID da cópia fornecida pela chamada original para Copy Blob. Uma correspondência assegura que outro aplicativo não anulou a cópia e iniciar uma nova Copy Blob operação. Verifique se o x-ms-copy-status: success cabeçalho. No entanto, lembre-se de que todas as operações de gravação em um blob, exceto Lease, Put Page e Put Block operações removem todos os x-ms-copy-* Propriedades do blob. Essas propriedades também não são copiadas por Copy Blob operações que usam versões anteriores a 2012-02-12.

Quando x-ms-copy-status: failed aparece na resposta, x-ms-copy-status-description contém mais informações sobre o Copy Blob falha.

A tabela a seguir descreve os três campos de cada x-ms-copy-status-description valor.

Componente

Descrição

Código de status HTTP

Inteiro de 3 dígitos padrão especifica a falha.

Código de erro

Palavra-chave que descreve o erro que é fornecido pelo Azure no elemento < ErrorCode >. Se nenhum elemento < ErrorCode > aparecer, uma palavra-chave que contém o texto de erro padrão associado com o código de status HTTP de 3 dígitos na especificação de HTTP é usada. Consulte Códigos de erro comuns da API REST.

Informação

Descrição detalhada da falha, entre aspas.

A tabela a seguir descreve o x-ms-copy-status e x-ms-copy-status-description valores de cenários comuns de falha.

System_CAPS_importantImportante

Texto da descrição mostrado aqui pode ser alterado sem aviso, mesmo sem uma alteração de versão, portanto não confie na correspondência exata a esse texto.

Cenário

valor de x-ms-copy-status

valor de x-ms-copy-status-description

Operação de cópia concluída com êxito.

sucesso

vazio

Usuário anulou a operação de cópia antes da conclusão.

anulado

vazio

Falha ao ler do blob de origem durante uma operação de cópia, mas a operação será repetida.

pendente

502 BadGateway "encontrado um erro reproduzível ao ler a origem. Tentará novamente. Hora da falha: < hora > "

Falha ao gravar no blob de destino de uma operação de cópia, mas a operação será repetida.

pendente

500 InternalServerError "encontrado um erro reproduzível. Tentará novamente. Hora da falha: < hora > "

Falha irrecuperável ocorreu durante a leitura do blob de origem de uma operação de cópia.

Falha

404 ResourceNotFound "Falha ao ler a origem de cópia."

System_CAPS_noteObservação

Ao relatar este erro de base, o Azure retorna ResourceNotFound no elemento < ErrorCode >. Se nenhum elemento < ErrorCode > apareceu na resposta, um padrão de cadeia de caracteres representação do status HTTP, como NotFound apareceria.

O período de tempo limite limitando a cópia de todas as operações decorrido. (Atualmente o período de tempo limite é 2 semanas).

Falha

500 OperationCancelled "a cópia excedeu o tempo máximo permitido."

A operação de cópia falhou muitas vezes durante a leitura da origem e não atender a uma proporção mínima de tentativas e êxitos. (Esse tempo limite impede que repetir uma origem muito ruim por duas semanas antes de falhar).

Falha

500 OperationCancelled "a cópia falhou ao ler a origem".

Mostrar: