VENDAS: 1-800-867-1389

Obter lista de blocos

Atualizado: fevereiro de 2014

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

Há duas listas de blocos mantidas para um blob:

  • Lista de Blocos Confirmados: a lista de blocos que foram confirmados com êxito para um determinado blob com Colocar lista de blocos.

  • Lista de Blocos não Confirmados: a lista de blocos que foram carregados para um blob que usa Colocar Bloco, mas que ainda não foram confirmados. Esses blocos são armazenados no Windows Azure em associação com um blob, mas ainda não fazem parte do blob.

Você pode chamar Get Block List para retornar a lista de blocos confirmados, a lista de blocos não confirmados ou as duas listas. Você também pode chamar essa operação para recuperar a lista de blocos confirmados para um instantâneo.

A solicitação Get Block List pode ser criada da seguinte maneira. HTTPS é recomendado. Substitua myaccount pelo nome da sua conta de armazenamento:

 

  URI de solicitação do método GET Versão de HTTP

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist

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

HTTP/1.1

Ao fazer uma solicitação no 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 de HTTP

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist

HTTP/1.1

Para obter mais informações, consulte Uso do Azure Storage Emulator para desenvolvimento e testes.

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

 

Parâmetro URI Descrição

snapshot

Opcional. O parâmetro de instantâneo é um valor DateTime opaco que, quando presente, especifica a lista de blobs a ser recuperada. Para obter mais informações sobre como trabalhar com instantâneos de blob, consulte Criando um instantâneo de um blob.

blocklisttype

Especifica se é necessário retornar a lista de blocos confirmados, a lista de blocos não confirmados ou as duas listas. Os valores válidos são committed, uncommitted ou all. Se você omitir esse parâmetro, Get Block List retornará a lista de blocos confirmados.

timeout

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

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

 

Cabeçalho de solicitação Descrição

Authorization

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

Date ou x-ms-date

Obrigatória. 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

Obrigatório para todas as solicitações autenticadas, opcional 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.

x-ms-lease-id:<ID>

Opcional. Se esse cabeçalho for especificado, a operação será executada apenas se as seguintes condições 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 for especificado e nenhuma dessas condições for atendida, a solicitação não será feita e ocorrerá uma falha na operação com o código de status 412 (Falha no Pré-requisito).

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. É altamente recomendável usar esse cabeçalho para correlacionar atividades do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Sobre o registro em log da Análise de Armazenamento e Log do Windows Azure: Usando logs para rastrear solicitações de armazenamento.

O seguinte exemplo de URI de solicitação retorna a lista de blocos confirmados para um blob denominado MOV1.avi:

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

O seguinte exemplo de URI de solicitação retorna as listas de blocos confirmados e não confirmados:

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

O seguinte exemplo de URI de solicitação retorna a lista de blocos confirmados para um instantâneo. Observe que um instantâneo consiste apenas em blocos confirmados, portanto, não há blocos não confirmados associados a ele.

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

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

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

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

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos padrão HTTP adicionais. Todos os cabeçalhos padrão obedecem à especificação de protocolo HTTP/1.1.

 

Cabeçalho de resposta Descrição

Last-Modified

A data e a hora da última modificação feita no blob. O formato da data segue a RFC 1123. Consulte Representação de valores de data/hora em cabeçalhos para obter mais informações. Esse cabeçalho será retornado somente se o blob tiver blocos confirmados.

Qualquer operação que modificar o blob, incluindo atualizações nos metadados ou nas propriedades do blob, altera a hora da última modificação do blob.

ETag

A ETag do blob. Esse cabeçalho será retornado somente se o blob tiver blocos confirmados.

Content-Type

O tipo de conteúdo MIME do blob. O valor padrão é application/xml.

x-ms-blob-content-length

O tamanho do blob em bytes.

x-ms-request-id

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

x-ms-version

Indica a versão do serviço Blob usado para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente.

Esse cabeçalho será retornado também 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. Observe que apenas a lista de blocos confirmados pode ser retornada por uma solicitação anônima.

Date

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

Essa operação também dará suporte ao uso de cabeçalhos condicionais para obter a lista de bloqueio somente se uma determinada condição for atendida. Para obter mais informações, consulte Especificando cabeçalhos condicionais para operações do serviço Blob.

O formato do corpo de resposta para uma solicitação que retorna somente blocos confirmados é 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 para uma solicitação que retorna blocos confirmados e não confirmados é 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>

No exemplo a seguir, o parâmetro blocklisttype foi definido como committed, de forma que apenas os blocos confirmados do blob são retornados 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 parâmetro blocklisttype foi definido como all, e os blocos confirmados e não confirmados do blob são retornados 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, o parâmetro blocklisttype foi definido como all, mas o blob ainda não foi confirmado, portanto, o elemento CommittedBlocks 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>

Se a ACL do contêiner for definido para permitir acesso anônimo, qualquer cliente poderá chamar Get Block List; porém, apenas os blocos confirmados poderão ser acessados publicamente. O acesso à lista de blocos não confirmados é restrito ao proprietário da conta e a qualquer pessoa que use uma assinatura de acesso compartilhado que tenha permissão para ler esse blob ou seu contêiner.

Chame Get Block List para retornar a lista de blocos que foram confirmados para um blob de blocos, a lista de blocos que ainda não foram confirmados ou as duas listas. Use o parâmetro blocklisttype para especificar qual lista de blocos deve ser retornada.

A lista de blocos confirmados é retornada na mesma ordem em que eles foram confirmados pela operação Colocar lista de blocos. Nenhum bloco pode aparecer mais de uma vez na lista de blocos confirmados.

Você pode usar a lista de blocos não confirmados para determinar quais blocos estão ausentes do blob em caso de falha nas chamadas para Put Block ou Put Block List. A lista de blocos não confirmados é retornada a partir do bloco carregado mais recentemente até o bloco mais antigo. Se uma ID de bloco tiver sido carregada mais de uma vez, apenas o bloco carregado recentemente aparecerá na lista.

Observe que quando um blob ainda não tiver sido confirmado, a chamada de Get Block List com blocklisttype=all retornará os blocos não confirmados, e o elemento CommittedBlocks estará vazio.

Get Block List é aplicável apenas a blobs de bloco. A chamada de Get Block List em um blob de páginas resulta no código de status 400 (Solicitação Incorreta).

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft