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
- Azure-prenumeration – skapa en kostnadsfritt
- Azure Storage-konto – skapa ett lagringskonto
- Senaste .NET SDK för operativsystemet. Se till att hämta SDK:et och inte körningen.
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 Kom 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:
- Listcontainrar (REST API)
Klientbiblioteksresurser
Se även
Relaterat innehåll
- Den här artikeln är en del av utvecklarguiden för Blob Storage för .NET. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din .NET-app.