Delen via


Blobcontainers weergeven met .NET

Wanneer u de containers in een Azure Storage-account uit uw code weergeeft, kunt u een aantal opties opgeven om te beheren hoe resultaten worden geretourneerd vanuit Azure Storage. In dit artikel wordt beschreven hoe u containers weergeeft met behulp van de Azure Storage-clientbibliotheek voor .NET.

Vereisten

Uw omgeving instellen

Als u geen bestaand project hebt, ziet u in deze sectie hoe u een project instelt voor gebruik met de Azure Blob Storage-clientbibliotheek voor .NET. De stappen omvatten pakketinstallatie, het toevoegen van using instructies en het maken van een geautoriseerd clientobject. Zie Aan de slag met Azure Blob Storage en .NET voor meer informatie.

Pakketten installeren

Installeer vanuit uw projectmap pakketten voor de Azure Blob Storage- en Azure Identity-clientbibliotheken met behulp van de dotnet add package opdracht. Het Azure.Identity-pakket is nodig voor verbindingen zonder wachtwoord met Azure-services.

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

Voeg using-instructies toe

Voeg deze using instructies toe aan het begin van het codebestand:

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

Voor sommige codevoorbeelden in dit artikel zijn mogelijk aanvullende using instructies vereist.

Een clientobject maken

Als u een app wilt verbinden met Blob Storage, maakt u een exemplaar van BlobServiceClient. In het volgende voorbeeld ziet u hoe u een clientobject maakt met behulp van DefaultAzureCredential autorisatie:

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

    return client;
}

U kunt een serviceclient registreren voor afhankelijkheidsinjectie in een .NET-app.

U kunt ook clientobjecten maken voor specifieke containers of blobs. Zie Clientobjecten maken en beheren die interactie hebben met gegevensbronnen voor meer informatie over het maken en beheren van clientobjecten.

Autorisatie

Het autorisatiemechanisme moet over de benodigde machtigingen beschikken om blobcontainers weer te geven. Voor autorisatie met Microsoft Entra ID (aanbevolen) hebt u ingebouwde Azure RBAC-rol Opslagblobgegevensbijdrager of hoger nodig. Zie de autorisatierichtlijnen voor List Containers (REST API) voor meer informatie.

Over opties voor containervermelding

Wanneer u containers uit uw code opgeeft, kunt u opties opgeven om te beheren hoe resultaten worden geretourneerd vanuit Azure Storage. U kunt het aantal resultaten opgeven dat moet worden geretourneerd in elke set resultaten en vervolgens de volgende sets ophalen. U kunt de resultaten ook filteren op een voorvoegsel en containermetagegevens retourneren met de resultaten. Deze opties worden beschreven in de volgende secties.

Als u containers in uw opslagaccount wilt weergeven, roept u een van de volgende methoden aan:

Met deze methoden wordt een lijst met BlobContainerItem-objecten geretourneerd. Containers worden lexicografisch gesorteerd op naam.

Beheren hoeveel resultaten worden geretourneerd

Standaard retourneert een vermeldingsbewerking maximaal 5000 resultaten tegelijk, maar u kunt het aantal resultaten opgeven dat elke vermeldingsbewerking moet retourneren. De voorbeelden in dit artikel laten zien hoe u resultaten op pagina's kunt retourneren. Zie Paginering met de Azure SDK voor .NET voor meer informatie over pagineringsconcepten.

Resultaten filteren met een voorvoegsel

Als u de lijst met containers wilt filteren, geeft u een tekenreeks op voor de prefix parameter. De tekenreeks voor het voorvoegsel kan een of meer tekens bevatten. Azure Storage retourneert vervolgens alleen de containers waarvan de namen beginnen met dat voorvoegsel.

Containermetagegevens opnemen

Als u containermetagegevens wilt opnemen met de resultaten, geeft u de Metadata waarde op voor de enum BlobContainerTraits . Azure Storage bevat metagegevens voor elke container die wordt geretourneerd, zodat u de containermetagegevens niet afzonderlijk hoeft op te halen.

Verwijderde containers opnemen

Als u voorlopig verwijderde containers wilt opnemen met de resultaten, geeft u de Deleted waarde op voor de enum BlobContainerStates .

Codevoorbeeld: Containers vermelden

In het volgende voorbeeld worden asynchroon de containers in een opslagaccount weergegeven die beginnen met een opgegeven voorvoegsel. Het voorbeeld bevat containers die beginnen met het opgegeven voorvoegsel en retourneert het opgegeven aantal resultaten per aanroep naar de vermeldingsbewerking. Vervolgens wordt het vervolgtoken gebruikt om het volgende segment met resultaten op te halen. Het voorbeeld retourneert ook containermetagegevens met de resultaten.

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

Resources

Zie de volgende resources voor meer informatie over het weergeven van containers met behulp van de Azure Blob Storage-clientbibliotheek voor .NET.

REST API-bewerkingen

De Azure SDK voor .NET bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende .NET-paradigma's. De clientbibliotheekmethoden voor het weergeven van containers gebruiken de volgende REST API-bewerking:

Clientbibliotheekbronnen

Zie ook