Obter Lista de Blocos

A Get Block List operação obtém a lista de blocos que foram carregados como parte de um blob de blocos.

Existem duas listas de bloqueios mantidas para um blob:

  • Lista de Blocos Consolidada: a lista de blocos que foram consolidados com êxito num blob especificado com a Lista de Blocos Put.

  • Lista de Blocos Não Consolidada: a lista de blocos que foram carregados para um blob com o Put Block, mas que ainda não foram consolidados. Estes blocos são armazenados no Azure em associação com um blob, mas ainda não fazem parte do blob.

Pode ligar Get Block List para devolver a lista de bloqueios consolidada, a lista de bloqueios não consolidada ou ambas as listas. Também pode chamar esta operação para obter a lista de bloqueios consolidada para um instantâneo.

Pedir

O Get Block List pedido pode ser construído da seguinte forma. Recomendamos que utilize HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento:

URI do pedido de método GET Versão HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist

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

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&versionid=<DateTime>
HTTP/1.1

Pedido de serviço de armazenamento emulado

Ao fazer um pedido contra o serviço de armazenamento emulado, especifique o nome do anfitrião do emulador e a porta do serviço Blob como 127.0.0.1:10000, seguido do nome da conta de armazenamento emulada:

URI do pedido de método GET Versão HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1

Para obter mais informações, veja Utilizar o emulador do Azurite para o desenvolvimento local do Armazenamento do Azure.

Parâmetros URI

Pode especificar os seguintes parâmetros adicionais no URI do pedido:

Parâmetro URI Description
snapshot Opcional. O parâmetro instantâneo é um valor opaco DateTime que, quando presente, especifica a lista de blobs a obter. Para obter mais informações sobre como trabalhar com instantâneos de blobs, consulte Criar um instantâneo de um blob.
versionid Opcional para as versões 2019-12-12 e posterior. O versionid parâmetro é um valor opaco DateTime que, quando presente, especifica a versão do blob a obter.
blocklisttype Especifica se pretende devolver a lista de blocos consolidados, a lista de blocos não consolidados ou ambas as listas em conjunto. Os valores válidos são committed, uncommittedou all. Se omitir este parâmetro, Get Block List devolve a lista de blocos consolidados.
timeout Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, veja Definir tempos limite para operações de Armazenamento de Blobs.

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais.

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, o nome da conta e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
x-ms-version Necessário para todos os pedidos autorizados, opcional para pedidos anónimos. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-lease-id:<ID> Opcional. Se este cabeçalho for especificado, a operação só será efetuada se ambas as condições seguintes forem cumpridas:

- A concessão do blob está atualmente ativa.
- O ID de concessão especificado no pedido corresponde ao do blob.

Se este cabeçalho for especificado e uma das condições não for cumprida, o pedido falhará e a operação falhará com o código de estado 412 (Falha na Pré-condição).
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe. Para obter mais informações, veja Monitorizar Armazenamento de Blobs do Azure.

Esta operação também suporta a utilização de cabeçalhos condicionais para executar a operação apenas se for cumprida uma condição especificada. Para obter mais informações, veja Especificar cabeçalhos condicionais para operações de Armazenamento de Blobs.

Corpo do pedido

Nenhum.

Pedido de exemplo

O seguinte URI de pedido de exemplo devolve a lista de bloqueios consolidada para um blob com o nome MOV1.avi:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=committed HTTP/1.1

O seguinte URI de pedido de exemplo devolve a lista de bloqueio consolidada e não consolidada:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=all HTTP/1.1

O seguinte URI de pedido de exemplo devolve a lista de bloqueios consolidada para um instantâneo. Um instantâneo consiste apenas em blocos consolidados, pelo que não existem blocos não comprometidos associados.

GET http://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=2009-09-30T20%3a11%3a15.2735974Z

Resposta

A resposta inclui um código de estado HTTP, um conjunto de cabeçalhos de resposta e um corpo de resposta que contém a lista de blocos.

Código de estado

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

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

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. 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.

Cabeçalho de resposta Descrição
Last-Modified A data/hora em que o blob foi modificado pela última vez. O formato de data segue RFC 1123. Para obter mais informações, veja Representar valores de data/hora em cabeçalhos. Devolvido apenas se o blob tiver blocos consolidados.

Qualquer operação que modifique o blob, incluindo atualizações para os metadados ou propriedades do blob, altera a última hora modificada do blob.
ETag O ETag para o blob. Devolvido apenas se o blob tiver blocos consolidados.
Content-Type O tipo de conteúdo MIME do blob. O valor predefinido é application/xml.
x-ms-blob-content-length O tamanho do blob em bytes.
x-ms-request-id Este cabeçalho identifica exclusivamente o pedido que foi feito e pode ser utilizado para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API.
x-ms-version Indica a versão do serviço que foi utilizada para executar o pedido. Este cabeçalho é devolvido para pedidos feitos na versão 2009-09-19 e posterior.

Este cabeçalho também é devolvido para pedidos anónimos sem uma versão especificada se o contentor foi marcado para acesso público através da versão 2009-09-19 do Armazenamento de Blobs. Nota: apenas a lista de bloqueios consolidada pode ser devolvida através de um pedido anónimo.
Date Um valor de data/hora UTC gerado pelo serviço, que indica a hora em que a resposta foi iniciada.
x-ms-client-request-id Pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho se estiver presente no pedido e o valor não contiver mais de 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, não está presente na resposta.

Esta operação também suporta a utilização de cabeçalhos condicionais para obter a lista de bloqueios apenas se for cumprida uma condição especificada. Para obter mais informações, veja Especificar cabeçalhos condicionais para operações de Armazenamento de Blobs.

Corpo da resposta

O formato do corpo de resposta de um pedido que devolve apenas blocos consolidados é o seguinte:

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  <CommittedBlocks>
</BlockList>

O formato do corpo de resposta de um pedido que devolve blocos consolidados e não comprometidos é o seguinte:


<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
     <Block>
        <Name>base64-encoded-block-id</Name>
        <Size>size-in-bytes</Size>
     </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  </UncommittedBlocks>
 </BlockList>

Resposta de amostra

No exemplo seguinte, o blocklisttype parâmetro foi definido como committed, pelo que apenas os blocos consolidados do blob são devolvidos na resposta.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:33:19 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
</BlockList>

Neste exemplo, o blocklisttype parâmetro foi definido como all, e os blocos consolidados e não comprometidos do blob são devolvidos na resposta.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:35:56 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>BlockId003</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024000</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

Neste exemplo seguinte, o blocklisttype parâmetro foi definido como all, mas o blob ainda não foi consolidado, pelo que o CommittedBlocks elemento está vazio.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Wed, 14 Sep 2011 00:40:22 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks />
  <UncommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId003</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

Autorização

A autorização é necessária ao chamar qualquer operação de acesso a dados no Armazenamento do Azure. Pode autorizar a Get Block List operação conforme descrito abaixo.

O Armazenamento do Azure suporta a utilização de Microsoft Entra ID para autorizar pedidos para dados de blobs. Com Microsoft Entra ID, pode utilizar o controlo de acesso baseado em funções do Azure (RBAC do Azure) para conceder permissões a um principal de segurança. O principal de segurança pode ser um utilizador, grupo, principal de serviço de aplicação ou identidade gerida do Azure. O principal de segurança é autenticado por Microsoft Entra ID para devolver um token OAuth 2.0. Em seguida, o token pode ser utilizado para autorizar um pedido contra o serviço Blob.

Para saber mais sobre a autorização através de Microsoft Entra ID, veja Autorizar o acesso a blobs com Microsoft Entra ID.

Permissões

Abaixo estão listadas as ações RBAC necessárias para que um utilizador, grupo ou principal de serviço Microsoft Entra chame a Get Block List operação e a função RBAC do Azure com menos privilégios que inclua esta ação:

Para saber mais sobre como atribuir funções com o RBAC do Azure, veja Atribuir uma função do Azure para acesso a dados de blobs.

Observações

Chame Get Block List para devolver a lista de blocos que foram consolidados num blob de blocos, a lista de blocos que ainda não foram consolidados ou ambas as listas. Utilize o blocklisttype parâmetro para especificar a lista de blocos a devolver. A lista de blocos consolidados é devolvida pela mesma ordem em que foram consolidados pela operação Colocar Lista de Blocos .

Pode utilizar a lista de bloqueios não consolidada para determinar que blocos estão em falta no blob nos casos em que as chamadas de ou Put Block List para Put Block o tiverem falhado. A lista de blocos não comprometidos é devolvida por ordem alfabética. Se um ID de bloco tiver sido carregado mais de uma vez, apenas o bloco carregado mais recentemente é apresentado na lista.

Nota

Quando um blob ainda não foi consolidado, chamar Get Block List com blocklisttype=all devolve os blocos não comprometidos e o CommittedBlocks elemento está vazio.

Get Block List não suporta simultaneidade quando lê a lista de blocos não comprometidos. Chama para Get Block List onde blocklisttype=uncommitted ou blocklisttype=all tem uma taxa de pedido máxima mais baixa do que outras operações de leitura. Para obter detalhes sobre o débito de destino para operações de leitura, veja Metas de escalabilidade e desempenho do Armazenamento do Azure.

A partir da versão 2019-12-12, um blob de blocos pode conter blocos de até 4000 mebibytes (MiB). Para proteger aplicações que utilizam um número inteiro assinado de 32 bits para representar o tamanho do bloco, chamar Get Block List um blob de blocos que contenha um bloco maior que 100 MiB com uma versão REST anterior a 2019-12-12 resulta no código de estado 409 (Conflito).

Get Block List aplica-se apenas a blobs de blocos. Chamar Get Block List num blob de página resulta no código de estado 400 (Pedido Incorreto).

Get Block List num blob de bloco arquivado falhará.

Faturação

Os pedidos de preços podem ter origem em clientes que utilizam APIs de Armazenamento de Blobs, diretamente através da API REST do Armazenamento de Blobs ou a partir de uma biblioteca de cliente do Armazenamento do Azure. Estes pedidos acumulam custos por transação. O tipo de transação afeta a forma como a conta é cobrada. Por exemplo, as transações de leitura acumulam-se numa categoria de faturação diferente das transações de escrita. A tabela seguinte mostra a categoria de faturação dos Get Block List pedidos com base no tipo de conta de armazenamento:

Operação Tipo de conta de armazenamento Categoria de faturação
Obter Lista de Blocos Blob de bloco premium
Standard para fins gerais v2
Outras operações
Obter Lista de Blocos Standard para fins gerais v1 Operações de leitura

Para saber mais sobre os preços da categoria de faturação especificada, veja Armazenamento de Blobs do Azure Preços.

Ver também

Autorizar pedidos para o Estado do Armazenamento do Azuree códigos de erro Códigos de erro do Armazenamento de BlobsDefinir tempos limite para operações de Armazenamento de Blobs