Partilhar via


Compreender como as aplicações interagem com os recursos de dados do Armazenamento de Blobs

À medida que você cria aplicativos para trabalhar com recursos de dados no Armazenamento de Blobs do Azure, seu código interage principalmente com três tipos de recursos: contas de armazenamento, contêineres e blobs. Este artigo explica esses tipos de recursos e mostra como eles se relacionam entre si. Ele também mostra como o código do aplicativo usa as bibliotecas de cliente do Armazenamento de Blob do Azure para interagir com esses vários recursos.

Tipos de recursos de armazenamento de Blob

As bibliotecas de cliente do Armazenamento de Blobs do Azure permitem que você interaja com três tipos de recursos no serviço de armazenamento:

O diagrama a seguir mostra a relação entre esses recursos:

Diagrama mostrando a relação entre uma conta de armazenamento, contêineres e blobs

Contas de armazenamento

Uma conta de armazenamento fornece um namespace exclusivo no Azure para seus dados. Cada objeto que você armazena no Armazenamento do Azure tem um endereço que inclui seu nome de conta exclusivo. A combinação do nome da conta e do ponto de extremidade de Armazenamento Blob forma o endereço base para os objetos da sua conta de armazenamento.

Por exemplo, se sua conta de armazenamento for chamada sampleaccount, o ponto de extremidade padrão para o Armazenamento de Blobs é:

https://sampleaccount.blob.core.windows.net

Para saber mais sobre os tipos de contas de armazenamento, consulte Visão geral da conta de armazenamento do Azure.

Contentores

Um contêiner organiza um conjunto de blobs, semelhante a um diretório em um sistema de arquivos. Uma conta de armazenamento pode incluir um número ilimitado de contêineres e um contêiner pode armazenar um número ilimitado de blobs.

O URI de um contêiner é semelhante a:

https://sampleaccount.blob.core.windows.net/sample-container

Para obter mais informações sobre como nomear contêineres, consulte Nomenclatura e referência de contêineres, blobs e metadados.

Blocos

O Armazenamento do Azure dá suporte a três tipos de blobs:

  • Blobs de bloco armazenam texto e dados binários. Os blobs de bloco são compostos por blocos de dados que podem ser gerenciados individualmente. Os blobs de bloco podem armazenar cerca de 190,7 TiB.
  • Os blobs de acréscimo são formados por blocos, semelhantes aos blobs de blocos, mas são otimizados para operações de acréscimo. Os blobs de acréscimo são ideais para cenários como o registo de dados de máquinas virtuais.
  • Os blobs de página armazenam arquivos de acesso aleatório de até 8 TiB de tamanho. Para obter mais informações sobre blobs de página, consulte Visão geral de blobs de página do Azure

Para obter mais informações sobre os diferentes tipos de blobs, consulte Understanding Block Blobs, Append Blobs e Page Blobs.

O URI de um blob é semelhante a:

https://sampleaccount.blob.core.windows.net/sample-container/sample-blob

Para obter mais informações sobre como nomear blobs, consulte Nomenclatura e referência de contêineres, blobs e metadados.

Trabalhar com recursos de dados usando o SDK do Azure

Os SDKs do Azure contêm bibliotecas que se baseiam na API REST do Azure, permitindo que você interaja com operações da API REST por meio de paradigmas familiares de linguagem de programação. Os SDKs são projetados para simplificar as interações entre seu aplicativo e os recursos do Azure.

Em cenários raros, as aplicações que foram atualizadas para a versão beta mais recente ou a versão geralmente disponível do SDK podem receber uma mensagem de erro InvalidHeaderValue. Este problema pode ocorrer ao usar qualquer uma das bibliotecas de armazenamento. A mensagem de erro é semelhante à amostra seguinte:

HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
Content-Length: 328
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: <REMOVED>
Date: Fri, 19 May 2023 17:10:33 GMT
 
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>InvalidHeaderValue</Code>
<Message>
The value for one of the HTTP headers is not in the correct format.
RequestId:<REMOVED>
Time:2023-05-19T17:10:34.2972651Z
</Message>
<HeaderName>x-ms-version</HeaderName><HeaderValue>yyyy-mm-dd</HeaderValue>
</Error>

If you've upgraded to the latest beta or generally available version of the SDK and you experience this error, it's recommended that you downgrade to the previous generally available version of the SDK to see if the issue resolves.

Você pode exibir detalhes específicos do SDK nos seguintes locais:

If the issue persists, or if the recommendation is not feasible, open a support ticket to explore further options.

Nas bibliotecas de cliente do Armazenamento de Blobs do Azure, cada tipo de recurso é representado por uma ou mais classes associadas. Essas classes fornecem operações para trabalhar com um recurso de Armazenamento do Azure.

A tabela a seguir lista as classes básicas, juntamente com uma breve descrição:

Classe Descrição
BlobServiceClient Representa a conta de armazenamento e fornece operações para recuperar e configurar as propriedades da conta e para trabalhar com contentores Blob na conta de armazenamento.
BlobContainerClient Representa um contentor de blob específico e fornece operações para trabalhar com o contentor e os blobs nele.
BlobClient Representa um blob específico e fornece operações gerais para trabalhar com o blob, incluindo operações para carregar, baixar, excluir e criar instantâneos.
AppendBlobClient Representa um blob de anexação e fornece operações específicas para blobs de anexação, como adicionar dados de log.
BlockBlobClient Representa um blob de bloco e fornece operações específicas para blobs de bloco, como armazenar provisoriamente e depois confirmar blocos de dados.

Os pacotes a seguir contêm as classes usadas para trabalhar com recursos de dados do Armazenamento de Blob:

Próximos passos

O trabalho com recursos do Azure usando o SDK começa com a criação de uma instância de cliente. Para saber mais sobre a criação e o gerenciamento de objetos de cliente, consulte Criar e gerenciar objetos de cliente que interagem com recursos de dados.