Teilen über


Verwenden von Blobindextags zum Verwalten und Suchen von Daten mit .NET

In diesem Artikel wird beschrieben, wie Blobindextags zum Verwalten und Suchen von Daten mithilfe der Azure Storage-Clientbibliothek für .NET verwendet werden.

Voraussetzungen

Erstellen Ihrer Umgebung

Wenn Sie nicht über ein vorhandenes Projekt verfügen, wird in diesem Abschnitt gezeigt, wie Sie ein Projekt für die Arbeit mit der Azure Blob Storage-Clientbibliothek für .NET einrichten. Die Schritte umfassen die Paketinstallation, das Hinzufügen von using-Anweisungen und das Erstellen eines autorisierten Clientobjekts. Ausführlichere Informationen finden Sie unter Erste Schritte mit Azure Blob Storage und .NET.

Installieren von Paketen

Installieren Sie in Ihrem Projektverzeichnis mithilfe des Befehls dotnet add package Pakete für die Azure Blob Storage- und Azure Identity-Clientbibliotheken. Für kennwortlose Verbindungen mit Azure-Diensten wird das Azure.Identity-Paket benötigt.

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

Fügen Sie Anweisungen vom Typ using hinzu.

Fügen Sie diese using-Anweisungen am Anfang der Codedatei hinzu:

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

Einige Codebeispiele in diesem Artikel erfordern möglicherweise zusätzliche using-Anweisungen.

Erstellen eines Clientobjekts

Um eine App mit Blob Storage zu verbinden, erstellen Sie eine Instanz von BlobServiceClient. Das folgende Beispiel zeigt, wie Sie ein Clientobjekt mithilfe von DefaultAzureCredential für die Autorisierung erstellen:

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

    return client;
}

Sie können auch einen Dienstclient für die Abhängigkeitsinjektion in einer .NET-App registrieren. Weitere Informationen zum Erstellen und Verwalten von Clientobjekten finden Sie unter Erstellen und Verwalten von Clientobjekten, die mit Datenressourcen interagieren.

Autorisierung

Der Autorisierungsmechanismus muss über die erforderlichen Berechtigungen zum Arbeiten mit Blobindextags verfügen. Für die Autorisierung mit Microsoft Entra ID (empfohlen) benötigen Sie mindestens die integrierte Azure RBAC-Rolle Storage-Blobdatenbesitzer. Weitere Informationen finden Sie in den Autorisierungsanleitungen für Get Blob Tags (REST API), Set Blob Tags (REST API) oder Find Blobs by Tags (REST API).

Informationen zu Blobindextags

Blobindextags kategorisieren Daten in Ihrem Speicherkonto mithilfe von Schlüssel-Wert-Tagattributen. Diese Tags werden automatisch indiziert und als durchsuchbarer mehrdimensionaler Index verfügbar gemacht, um Daten einfach finden zu können. In diesem Artikel wird erörtert, wie Sie Daten mithilfe von Blobindextags festlegen, abrufen und suchen.

Blobindextags werden für Speicherkonten mit aktivierten hierarchischen Namespaces nicht unterstützt. Weitere Informationen zu diesem Blobindextag sowie zu bekannten Problemen und Einschränkungen finden Sie unter Verwalten und Finden von Azure-Blobdaten mit Blobindextags (Vorschau).

Festlegen von Tags

Sie können Indextags festlegen, wenn Ihr Code autorisierten Zugriff auf Blobdaten über einen der folgenden Mechanismen hat:

Weitere Informationen finden Sie unter Festlegen von Blobindextags.

Sie können für das Festlegen der Tags eine der folgenden Methoden verwenden:

Im folgenden Beispiel wird diese Aufgabe ausgeführt.

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

Sie können alle Tags löschen, indem Sie ein leeres [Wörterbuch] an die Methoden SetTags oder SetTagsAsync übergeben, wie im folgenden Beispiel gezeigt.

Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
Verwandte Artikel
Verwalten und Finden von Azure-Blobdaten mit Blobindextags
Festlegen von Blobtags (REST-API)

Abrufen von Tags

Sie können Indextags abrufen, wenn Ihr Code autorisierten Zugriff auf Blobdaten über einen der folgenden Mechanismen hat:

Weitere Informationen finden Sie unter Abrufen und Auflisten von Blobindextags.

Sie können für das Abrufen von Tags eine der folgenden Methoden verwenden:

Im folgenden Beispiel wird diese Aufgabe ausgeführt.

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

Filtern und Suchen von Daten mit Blobindextags

Sie können Daten mithilfe von Indextags suchen und filtern, wenn Ihr Code autorisierten Zugriff auf Blobdaten über einen der folgenden Mechanismen hat:

Weitere Informationen finden Sie unter Suchen nach Daten mithilfe von Blobindextags.

Hinweis

Indextags können nicht verwendet werden, um frühere Versionen abzurufen. Tags für Vorgängerversionen werden nicht an das Blobindexmodul übermittelt. Weitere Informationen finden Sie unter Bedingungen und bekannte Probleme.

Sie können für das Suchen von Daten eine der folgenden Methoden verwenden:

Im folgenden Beispiel werden alle Blobs gesucht, die mit einem Datum gekennzeichnet sind, das in einem bestimmten Bereich liegt.

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

}

Ressourcen

Weitere Informationen zur Verwendung von Indextags zum Verwalten und Suchen von Daten mithilfe der Azure Blob Storage-Clientbibliothek für .NET finden Sie in den folgenden Ressourcen.

REST-API-Vorgänge

Das Azure SDK für .NET enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren, und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute .NET-Paradigmen. Die Methoden der Clientbibliothek zum Verwalten und Verwenden von Blobindextags verwenden die folgenden REST-API-Vorgänge:

Ressourcen zur Clientbibliothek

Weitere Informationen