Dela via


Lista blobcontainrar med .NET

När du listar containrarna i ett Azure Storage-konto från koden kan du ange ett antal alternativ för att hantera hur resultatet returneras från Azure Storage. Den här artikeln visar hur du listar containrar med hjälp av Azure Storage-klientbiblioteket för .NET.

Förutsättningar

Konfigurera din miljö

Om du inte har ett befintligt projekt visar det här avsnittet hur du konfigurerar ett projekt för att arbeta med Azure Blob Storage-klientbiblioteket för .NET. Stegen omfattar paketinstallation, tillägg av using direktiv och skapande av ett auktoriserat klientobjekt. Mer information finns i Komma igång med Azure Blob Storage och .NET.

Installera paket

Från projektkatalogen installerar du paket för Azure Blob Storage- och Azure Identity-klientbiblioteken med hjälp av dotnet add package kommandot . Azure.Identity-paketet behövs för lösenordslösa anslutningar till Azure-tjänster.

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

Lägga till using direktiv

Lägg till dessa using direktiv överst i kodfilen:

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

Vissa kodexempel i den här artikeln kan kräva ytterligare using direktiv.

Skapa ett klientobjekt

Om du vill ansluta en app till Blob Storage skapar du en instans av BlobServiceClient. I följande exempel visas hur du skapar ett klientobjekt med hjälp av DefaultAzureCredential för auktorisering:

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

    return client;
}

Du kan registrera en tjänstklient för beroendeinmatning i en .NET-app.

Du kan också skapa klientobjekt för specifika containrar eller blobar. Mer information om hur du skapar och hanterar klientobjekt finns i Skapa och hantera klientobjekt som interagerar med dataresurser.

Auktorisering

Auktoriseringsmekanismen måste ha de behörigheter som krävs för att lista blobcontainrar. För auktorisering med Microsoft Entra-ID (rekommenderas) behöver du den inbyggda rollen Storage Blob Data Contributor eller senare. Mer information finns i auktoriseringsvägledningen för REST API (List Containers).

Om alternativ för containerlistning

När du listar containrar från koden kan du ange alternativ för att hantera hur resultatet returneras från Azure Storage. Du kan ange hur många resultat som ska returneras i varje resultatuppsättning och sedan hämta efterföljande uppsättningar. Du kan också filtrera resultatet efter ett prefix och returnera containermetadata med resultatet. De här alternativen beskrivs i följande avsnitt.

Om du vill visa containrar i ditt lagringskonto anropar du någon av följande metoder:

Dessa metoder returnerar en lista över BlobContainerItem-objekt . Containrar beställs lexicographically efter namn.

Hantera hur många resultat som returneras

Som standard returnerar en liståtgärd upp till 5 000 resultat åt gången, men du kan ange antalet resultat som du vill att varje listningsåtgärd ska returnera. Exemplen som presenteras i den här artikeln visar hur du returnerar resultat på sidor. Mer information om sidnumreringsbegrepp finns i Sidnumrering med Azure SDK för .NET.

Filtrera resultat med ett prefix

Om du vill filtrera listan över containrar anger du en sträng för parametern prefix . Prefixsträngen kan innehålla ett eller flera tecken. Azure Storage returnerar sedan endast de containrar vars namn börjar med prefixet.

Inkludera containermetadata

Om du vill inkludera containermetadata med resultatet anger du Metadata värdet för BlobContainerTraits-uppräkningen . Azure Storage innehåller metadata för varje container som returneras, så du behöver inte hämta containermetadata separat.

Inkludera borttagna containrar

Om du vill inkludera mjuk borttagna containrar med resultatet anger du Deleted värdet för BlobContainerStates-uppräkningen .

Kodexempel: Lista containrar

I följande exempel visas asynkront containrarna i ett lagringskonto som börjar med ett angivet prefix. I exemplet visas containrar som börjar med det angivna prefixet och returnerar det angivna antalet resultat per anrop till liståtgärden. Den använder sedan fortsättningstoken för att hämta nästa resultatsegment. Exemplet returnerar även containermetadata med resultatet.

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

Resurser

Mer information om hur du listar containrar med hjälp av Azure Blob Storage-klientbiblioteket för .NET finns i följande resurser.

REST API-åtgärder

Azure SDK för .NET innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta .NET-paradigm. Klientbiblioteksmetoderna för att visa containrar använder följande REST API-åtgärd:

Klientbiblioteksresurser

Se även