Använda blobindextaggar för att hantera och hitta data med .NET
Den här artikeln visar hur du använder blobindextaggar för att hantera och hitta data 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 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 fungera med blobindextaggar. För auktorisering med Microsoft Entra-ID (rekommenderas) behöver du den inbyggda azure RBAC-rollen Storage Blob Data Owner eller senare. Mer information finns i auktoriseringsvägledningen för Get Blob Tags (REST API), Set Blob Tags (REST API) eller Find Blobs by Tags (REST API).
Om blobindextaggar
Blobindextaggar kategoriserar data i ditt lagringskonto med hjälp av taggattribut för nyckelvärde. Dessa taggar indexeras automatiskt och exponeras som ett sökbart flerdimensionellt index för att enkelt hitta data. Den här artikeln visar hur du anger, hämtar och hittar data med hjälp av blobindextaggar.
Blobindextaggar stöds inte för lagringskonton med hierarkiskt namnområde aktiverat. Mer information om funktionen blobindextagg tillsammans med kända problem och begränsningar finns i Hantera och hitta Azure Blob-data med blobindextaggar.
Ange taggar
Du kan ange indextaggar om koden har auktoriserad åtkomst till blobdata via någon av följande mekanismer:
- Säkerhetsobjekt som har tilldelats en Azure RBAC-roll med åtgärden Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write . Lagringsblobdataägaren är en inbyggd roll som innehåller den här åtgärden.
- Signatur för delad åtkomst (SAS) med behörighet att komma åt blobens taggar (
t
behörighet) - Kontonyckel
Mer information finns i Ange blobindextaggar.
Du kan ange taggar med någon av följande metoder:
I följande exempel utförs den här uppgiften.
public static async Task SetTags(BlobClient blobClient)
{
Dictionary<string, string> tags =
new Dictionary<string, string>
{
{ "Sealed", "false" },
{ "Content", "image" },
{ "Date", "2020-04-20" }
};
await blobClient.SetTagsAsync(tags);
}
Du kan ta bort alla taggar genom att skicka en tom [Ordlista] till metoden SetTags eller SetTagsAsync enligt följande exempel.
Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
Relaterade artiklar |
---|
Hantera och hitta Azure Blob-data med blobindextaggar |
Ange blobtaggar (REST API) |
Hämta taggar
Du kan hämta indextaggar om koden har auktoriserad åtkomst till blobdata via någon av följande mekanismer:
- Säkerhetsobjekt som tilldelas en Azure RBAC-roll med åtgärden Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read . Lagringsblobdataägaren är en inbyggd roll som innehåller den här åtgärden.
- Signatur för delad åtkomst (SAS) med behörighet att komma åt blobens taggar (
t
behörighet) - Kontonyckel
Mer information finns i Hämta och lista blobindextaggar.
Du kan hämta taggar med någon av följande metoder:
I följande exempel utförs den här uppgiften.
public static async Task GetTags(BlobClient blobClient)
{
Response<GetBlobTagResult> tagsResponse = await blobClient.GetTagsAsync();
foreach (KeyValuePair<string, string> tag in tagsResponse.Value.Tags)
{
Console.WriteLine($"{tag.Key}={tag.Value}");
}
}
Filtrera och hitta data med blobindextaggar
Du kan använda indextaggar för att hitta och filtrera data om koden har auktoriserad åtkomst till blobdata via någon av följande mekanismer:
- Säkerhetsobjekt som har tilldelats en Azure RBAC-roll med åtgärden Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action . Lagringsblobdataägaren är en inbyggd roll som innehåller den här åtgärden.
- Signatur för delad åtkomst (SAS) med behörighet att filtrera blobar efter taggar (
f
behörighet) - Kontonyckel
Mer information finns i Hitta data med hjälp av blobindextaggar.
Kommentar
Du kan inte använda indextaggar för att hämta tidigare versioner. Taggar för tidigare versioner skickas inte till blobindexmotorn. Mer information finns i Villkor och kända problem.
Du kan hitta data med någon av följande metoder:
I följande exempel hittas alla blobar taggade med ett datum som ligger mellan ett visst intervall.
public static async Task FindBlobsbyTags(BlobServiceClient serviceClient)
{
string query = @"""Date"" >= '2020-04-20' AND ""Date"" <= '2020-04-30'";
// Find Blobs given a tags query
Console.WriteLine("Find Blob by Tags query: " + query + Environment.NewLine);
List<TaggedBlobItem> blobs = new List<TaggedBlobItem>();
await foreach (TaggedBlobItem taggedBlobItem in serviceClient.FindBlobsByTagsAsync(query))
{
blobs.Add(taggedBlobItem);
}
foreach (var filteredBlob in blobs)
{
Console.WriteLine($"BlobIndex result: ContainerName= {filteredBlob.BlobContainerName}, " +
$"BlobName= {filteredBlob.BlobName}");
}
}
Resurser
Mer information om hur du använder indextaggar för att hantera och hitta data 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 hantera och använda blobindextaggar använder följande REST API-åtgärder:
- Hämta blobtaggar (REST API)
- Ange blobtaggar (REST API)
- Hitta blobar efter taggar (REST API)
Klientbiblioteksresurser
Se även
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för