Condividi tramite


Usare i tag indice BLOB per gestire e trovare dati con :NET

Questo articolo mostra come usare i tag indice BLOB per gestire e trovare i dati tramite la libreria client di Archiviazione di Azure per .NET.

Prerequisiti

Configurazione dell'ambiente

Se non si ha un progetto esistente, questa sezione spiega come configurare un progetto per l'uso con la libreria client di Archiviazione BLOB di Azure per .NET. I passaggi includono l'installazione del pacchetto, l'aggiunta di direttive using e la creazione di un oggetto client autorizzato. Per informazioni dettagliate, vedere Introduzione ad Archiviazione BLOB di Azure e .NET.

Installare i pacchetti

Nella directory del progetto installare i pacchetti per le librerie client di Archiviazione BLOB di Azure e Azure Identity usando il comando dotnet add package. Il pacchetto Azure.Identity è necessario per le connessioni senza password ai servizi di Azure.

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

Aggiungere le direttive using

Aggiungere queste direttive using all'inizio del file del codice:

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

Alcuni esempi di codice in questo articolo potrebbero richiedere direttive using aggiuntive.

Creare un oggetto client

Per connettere un'app ad Archiviazione BLOB, creare un'istanza di BlobServiceClient. Nell'esempio seguente viene illustrato come creare un oggetto client usando DefaultAzureCredential per l'autorizzazione:

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

    return client;
}

È possibile registrare un client del servizio per l'inserimento delle dipendenze in un'app .NET.

È anche possibile creare oggetti client per contenitori o BLOB specifici. Per altre informazioni sulla creazione e la gestione di oggetti client, vedere Creare e gestire oggetti client che interagiscono con le risorse dati.

Autorizzazione

Il meccanismo di autorizzazione deve disporre delle autorizzazioni necessarie per usare i tag di indice BLOB. Per l'autorizzazione con Microsoft Entra ID (scelta consigliata), è necessario disporre del ruolo predefinito Controllo degli accessi in base al ruolo di Azure Proprietario dati BLOB di archiviazione o versione successiva. Per altre informazioni, vedere il materiale sussidiario Ottenere tag BLOB (API REST), Impostare tag BLOB (API REST) o Trovare BLOB per tag (API REST).

Informazioni sui tag di indice BLOB

I tag indice BLOB categorizzano i dati nell'account di archiviazione usando gli attributi di tag chiave-valore. Questi tag vengono indicizzati e esposti automaticamente come indice multidimensionale ricercabile per facilitare la ricerca di dati. Questo articolo illustra come impostare, ottenere e trovare i dati usando i tag indice BLOB.

I tag di indice BLOB non sono supportati per gli account di archiviazione con spazio dei nomi gerarchico abilitato. Per ulteriori informazioni sulla funzionalità tag di indice BLOB e su problemi e limitazioni noti, consultare Gestire e trovare i dati BLOB di Azure con tag indice BLOB.

Impostare i tag

È possibile impostare i tag di indice se il codice ha autorizzato l'accesso ai dati BLOB tramite uno dei meccanismi seguenti:

Per altre informazioni, vedere Impostazione dei tag di indice BLOB.

È possibile impostare i tag usando uno dei metodi seguenti:

Nell'esempio seguente viene eseguita questa attività.

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

È possibile eliminare tutti i tag passando un [Dictionary] vuoto nel metodo SetTags o SetTagsAsync, come illustrato nell'esempio seguente.

Dictionary<string, string> noTags = new Dictionary<string, string>();
await blobClient.SetTagsAsync(noTags);
Articoli correlati
Gestire e trovare i dati BLOB di Azure con tag indice BLOB
Impostare tag BLOB (API REST)

Ottenere tag

È possibile ottenere tag di indice se il codice ha autorizzato l'accesso ai dati BLOB tramite uno dei meccanismi seguenti:

Per altre informazioni, vedere Ottenere ed elencare i tag di indice BLOB.

È possibile ottenere i tag usando uno dei metodi seguenti:

Nell'esempio seguente viene eseguita questa attività.

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

Filtrare e trovare dati con tag indice BLOB

È possibile usare i tag di indice per trovare e filtrare i dati se il codice ha autorizzato l'accesso ai dati BLOB tramite uno dei meccanismi seguenti:

Per altre informazioni, vedere Ricerca di dati tramite tag di indice BLOB.

Nota

Non è possibile usare tag indice per recuperare versioni precedenti. I tag per versioni precedenti non vengono trasmessi al motore di indicizzazione BLOB. Per ulteriori informazioni, consultare Condizioni e problemi noti.

È possibile trovare i dati usando uno dei metodi seguenti:

Nell'esempio seguente vengono trovati tutti i BLOB contrassegnati con una data compresa in un intervallo specifico.

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

}

Risorse

Per altre informazioni su come usare i tag indice per gestire e trovare dati usando la libreria client di Archiviazione BLOB di Azure per .NET, vedere le risorse seguenti.

Operazioni dell'API REST

Azure SDK per .NET contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi .NET noti. I metodi della libreria client per la gestione e l'uso dei tag di indice BLOB usano le operazioni API REST seguenti:

Risorse della libreria client

Vedi anche

  • Questo articolo fa parte della Guida per sviluppatori di Archiviazione BLOB per .NET. Per altre informazioni, vedere l’elenco completo degli articoli della Guida per sviluppatori inCreare la propria app .NET.