Condividi tramite


Elencare i contenitori BLOB con .NET

Quando si elencano i contenitori BLOB in un account di Archiviazione di Azure tramite il codice, è possibile specificare numerose opzioni per gestire il modo in cui i risultati vengono restituiti da Archiviazione di Azure. Questo articolo illustra come elencare i contenitori usando la libreria client di Archiviazione di Azure per .NET.

Prerequisiti

Configurazione dell'ambiente

Se non si dispone di un progetto esistente, questa sezione illustra come configurare un progetto per l'uso con la libreria client Archiviazione BLOB di Azure per .NET. I passaggi includono l'installazione dei pacchetti, l'aggiunta using di direttive e la creazione di un oggetto client autorizzato. Per informazioni dettagliate, vedere Introduzione a Archiviazione BLOB di Azure e .NET.

Installare i pacchetti

Nella directory del progetto installare i pacchetti per le librerie client di Archiviazione BLOB di Azure e Azure Identity usando il comando dotnet add package. Il pacchetto Azure.Identity è necessario per le connessioni senza password ai servizi di Azure.

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

Aggiungere le direttive using

Aggiungere queste using direttive all'inizio del file di codice:

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

Alcuni esempi di codice in questo articolo potrebbero richiedere direttive aggiuntive using .

Creare un oggetto client

Per connettere un'app all'archiviazione BLOB, creare un'istanza di BlobServiceClient. Nell'esempio seguente viene illustrato come creare un oggetto client usando DefaultAzureCredential per l'autorizzazione:

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

    return client;
}

È anche possibile registrare un client del servizio per l'inserimento delle dipendenze in un'app .NET. Per altre informazioni sulla creazione e la gestione di oggetti client, vedere Creare e gestire oggetti client che interagiscono con le risorse dati.

Autorizzazione

Il meccanismo di autorizzazione deve disporre delle autorizzazioni necessarie per elencare i contenitori BLOB. Per l'autorizzazione con Microsoft Entra ID (scelta consigliata), è necessario il ruolo predefinito Controllo degli accessi in base al ruolo di Azure Collaboratore ai dati dei BLOB di archiviazione o versione successiva. Per altre informazioni, vedere il materiale sussidiario sull'autorizzazione per Elencare contenitori (API REST).

Informazioni sulle opzioni di elenco dei contenitori

Quando si elencano i contenitori tramite il codice, è possibile specificare diverse opzioni per gestire il modo in cui i risultati vengono restituiti da Archiviazione di Azure. È possibile specificare il numero di risultati da restituire in ogni set di risultati e quindi recuperare i set successivi. È anche possibile filtrare i risultati in base a un prefisso e restituire i metadati del contenitore insieme ai risultati. Le opzioni disponibili sono descritte nelle sezioni seguenti.

Per elencare i contenitori nell'account di archiviazione, chiamare uno dei metodi seguenti:

Questi metodi restituiscono un elenco di oggetti BlobContainerItem. I contenitori vengono elencati in ordine lessicografico in base al nome.

Gestire il numero di risultati restituiti

Per impostazione predefinita, un'operazione di elenco restituisce fino a 5000 risultati alla volta, ma è possibile specificare il numero di risultati che ogni operazione deve restituire. Gli esempi presentati in questo articolo illustrano come restituire i risultati nelle pagine. Per altre informazioni sui concetti relativi alla paginazione, vedere Paginazione in Azure SDK per .NET.

Filtrare i risultati con un prefisso

Per filtrare l'elenco dei contenitori, specificare una stringa per il parametro prefix. La stringa di prefisso può includere uno o più caratteri. Archiviazione di Azure restituisce solo i contenitori i cui nomi iniziano con tale prefisso.

Includere i metadati del contenitore

Per includere i metadati dei contenitori con i risultati, specificare il valore Metadata per l'enumerazione BlobContainerTraits. Archiviazione di Azure include i metadati con ogni contenitore restituito, dunque non è necessario recuperare i metadati del contenitore separatamente.

Includere i contenitori eliminati

Per includere i metadati dei contenitori eliminati temporaneamente con i risultati, specificare il valore Deleted per l'enumerazione BlobContainerStates.

Esempio di codice: elencare i contenitori

L'esempio seguente elenca in modo asincrono i contenitori in un account di archiviazione che iniziano con un prefisso specificato. L'esempio elenca i contenitori che iniziano con il prefisso specificato e restituisce il numero specificato di risultati per ogni chiamata all'operazione di elenco. Usa poi il token di continuazione per recuperare il segmento successivo di risultati. L'esempio restituisce anche i metadati del contenitore con i risultati.

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;
    }
}

Risorse

Per altre informazioni su come elencare i contenitori tramite la libreria client di Archiviazione BLOB di Azure per .NET, vedere le risorse seguenti.

Operazioni dell'API REST

Azure SDK per .NET contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi .NET noti. I metodi della libreria client per elencare i contenitori usano l'operazione API REST seguente:

Risorse per la libreria client

Vedi anche