Compartilhar via


Listar contêineres de blob com .NET

Ao listar contêineres em uma conta de Armazenamento do Azure do seu código, você pode especificar várias opções para gerenciar o modo como os resultados são retornados do Armazenamento do Azure. Esse artigo mostra como listar contêineres usando a biblioteca de clientes do Armazenamento do Azure para .NET.

Pré-requisitos

Configure seu ambiente

Se você não tiver um projeto existente, esta seção mostrará como configurar um projeto para funcionar com a biblioteca de clientes do Armazenamento de Blobs do Azure para .NET. As etapas incluem a instalação do pacote, a adição de diretivas using e a criação de um objeto de cliente autorizado. Para obter detalhes, consulte Introdução ao Armazenamento de Blobs do Azure e ao .NET.

Instalar Pacotes

No diretório do projeto, instale pacotes para as bibliotecas de cliente do Armazenamento de Blobs do Azure e do Azure Identity usando o comando dotnet add package. O pacote Azure.Identity é necessário para conexões sem senha com os serviços do Azure.

dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity

Adicione diretivas using

Adicione essas diretivas using ao topo do seu arquivo de código:

using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;

Alguns exemplos de código neste artigo podem exigir diretivas using adicionais.

Criar um objeto cliente

Para conectar um aplicativo ao Armazenamento de Blobs, crie uma instância do BlobServiceClient. O exemplo a seguir mostra como criar um objeto cliente usando DefaultAzureCredential para autorização:

public BlobServiceClient GetBlobServiceClient(string accountName)
{
    BlobServiceClient client = new(
        new Uri($"https://{accountName}.blob.core.windows.net"),
        new DefaultAzureCredential());

    return client;
}

Você pode registrar um cliente de serviço para injeção de dependência em um aplicativo .NET.

Você também pode criar objetos cliente para contêineres ou blobs específicos. Para saber mais sobre como criar e gerenciar objetos clientes, confira Criar e gerenciar objetos clientes que interagem com recursos de dados.

Autorização

O mecanismo de autorização precisa ter as permissões necessárias para listar contêineres de blob. Para autorização com o Microsoft Entra ID (recomendado), você precisa da função interna de Colaborador de Dados de Blob de Armazenamento ou superior do RBAC do Azure. Para saber mais, consulte as diretrizes de autorização para Listar Contêineres (API REST).

Sobre as opções de listagem de contêineres

Ao listar contêineres do código, você pode especificar opções para gerenciar como os resultados são retornados do Armazenamento do Azure. Você pode especificar o número de resultados a serem retornados em cada conjunto de resultados e, em seguida, recuperar os conjuntos subsequentes. Você também pode filtrar os resultados por um prefixo e retornar metadados de contêiner com os resultados. Essas opções são descritas nas seções a seguir.

Para listar os contêineres em sua conta de armazenamento, use um dos seguintes métodos:

Esses métodos retornam uma lista de objetos BlobContainerItem. Os contêineres são ordenados lexicograficamente pelo nome.

Gerenciar quantos resultados são retornados

Por padrão, uma operação de listagem retorna até 5.000 resultados por vez, mas você pode especificar o número de resultados que deseja que cada operação de listagem retorne. Os exemplos apresentados neste artigo mostram como retornar resultados em páginas. Para saber mais sobre os conceitos de paginação, confira Paginação com o SDK do Azure para NET.

Filtrar resultados com um prefixo

Para filtrar a lista de contêineres, especifique uma cadeia de caracteres para o parâmetro prefix. A cadeia de caracteres de prefixo pode incluir um ou mais caracteres. O Armazenamento do Azure então retorna somente os contêineres cujos nomes começam com esse prefixo.

Incluir metadados de contêiner

Para incluir metadados de contêiner com os resultados, especifique o valor de Metadata para a enumeração BlobContainerTraits. O armazenamento do Azure inclui metadados com cada contêiner retornado, portanto, você não precisa buscar os metadados do contêiner separadamente.

Incluir contêineres excluídos

Para incluir contêineres excluídos com os resultados, especifique o valor de Deleted para a enumeração BlobContainerStates.

Exemplo: listar contêineres

O exemplo a seguir lista de forma assíncrona os contêineres em uma conta de armazenamento que começam com um prefixo especificado. O exemplo lista os contêineres que começam com o prefixo especificado e retorna o número especificado de resultados por uso para a operação de listagem. Em seguida, ele usa o token de continuação para obter o próximo segmento de resultados. O exemplo também retorna metadados de contêiner com os resultados.

async static Task ListContainers(BlobServiceClient blobServiceClient, 
                                string prefix, 
                                int? segmentSize)
{
    try
    {
        // Call the listing operation and enumerate the result segment.
        var resultSegment = 
            blobServiceClient.GetBlobContainersAsync(BlobContainerTraits.Metadata, prefix, default)
            .AsPages(default, segmentSize);

        await foreach (Azure.Page<BlobContainerItem> containerPage in resultSegment)
        {
            foreach (BlobContainerItem containerItem in containerPage.Values)
            {
                Console.WriteLine("Container name: {0}", containerItem.Name);
            }

            Console.WriteLine();
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.Message);
        Console.ReadLine();
        throw;
    }
}

Recursos

Para saber mais sobre como listar contêineres usando a biblioteca de clientes do Armazenamento de Blobs do Azure para .NET, consulte os recursos a seguir.

Operações da API REST

O SDK do Azure para .NET contém bibliotecas que criam sobre a API REST do Azure, permitindo a interação com as operações de API REST por meio de paradigmas conhecidos do .NET. Os métodos da biblioteca de clientes para listar contêineres usam a seguinte operação de API REST:

Recursos da biblioteca de clientes

Confira também

  • Este artigo faz parte do guia para desenvolvedores do Armazenamento de Blobs para .NET. Para saber mais, veja a lista completa de artigos do guia do desenvolvedor em Criar seu aplicativo .NET.