Gestire le proprietà e i metadati dei contenitori con .NET
Oltre ai dati che contengono, i contenitori BLOB supportano le proprietà di sistema e i metadati definiti dall'utente. Questo articolo illustra come gestire le proprietà di sistema e i metadati definiti dall'utente con la libreria client di Archiviazione di Azure per .NET.
Prerequisiti
- Questo articolo presuppone che sia già stato configurato un progetto per l'uso con la libreria client di Archiviazione BLOB di Azure per .NET. Per informazioni sulla configurazione del progetto, incluse l'installazione del pacchetto, l'aggiunta di direttive
using
e la creazione di un oggetto client autorizzato, consultare Introduzione ad Archiviazione BLOB di Azure e .NET. - Il meccanismo di autorizzazione deve disporre delle autorizzazioni per utilizzare proprietà o metadati dei contenitori. Per ulteriori informazioni, consultare le linee guida per l'autorizzazione delle le seguenti operazioni API REST:
Informazioni su proprietà e metadati
Proprietà di sistema: le proprietà di sistema esistono in ogni risorsa di archiviazione BLOB. Alcune di esse possono essere lette o impostate, mentre altre sono di sola lettura. Anche se in modo non esplicito, alcune proprietà di sistema corrispondono a specifiche intestazioni HTTP standard. La libreria client di Archiviazione di Azure per .NET mantiene queste proprietà per l'utente.
Metadati definiti dall'utente: i metadati definiti dall'utente sono costituiti da una o più coppie nome-valore specificate per una risorsa di archiviazione BLOB. È possibile usare i metadati per archiviare valori aggiuntivi con la risorsa. I valori di metadati sono solo per le proprie esigenze e non influiscono sul comportamento della risorsa.
Le coppie nome/valore di metadati sono intestazioni HTTP valide e devono essere conformi alle restrizioni imposte sulle intestazioni HTTP. Per ulteriori informazioni sui requisiti di denominazione dei metadati, consultare Nomi dei metadati.
Recuperare le proprietà del contenitore
Per recuperare le proprietà di un contenitore, usare uno dei seguenti metodi:
Nell'esempio di codice riportato di seguito vengono recuperate le proprietà di sistema di un contenitore e vengono scritti alcuni valori di proprietà in una finestra della console:
private static async Task ReadContainerPropertiesAsync(BlobContainerClient container)
{
try
{
// Fetch some container properties and write out their values.
var properties = await container.GetPropertiesAsync();
Console.WriteLine($"Properties for container {container.Uri}");
Console.WriteLine($"Public access level: {properties.Value.PublicAccess}");
Console.WriteLine($"Last modified time in UTC: {properties.Value.LastModified}");
}
catch (RequestFailedException e)
{
Console.WriteLine($"HTTP error code {e.Status}: {e.ErrorCode}");
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
Impostare e recuperare i metadati
È possibile specificare i metadati come uno o più coppie nome-valore in una risorsa BLOB o contenitore. Per impostare i metadati, aggiungere coppie nome-valore a un oggetto IDictionary e quindi usare uno dei seguenti metodi per scrivere i valori:
Il seguente codice di esempio imposta i metadati in un contenitore.
public static async Task AddContainerMetadataAsync(BlobContainerClient container)
{
try
{
IDictionary<string, string> metadata =
new Dictionary<string, string>();
// Add some metadata to the container.
metadata.Add("docType", "textDocuments");
metadata.Add("category", "guidance");
// Set the container's metadata.
await container.SetMetadataAsync(metadata);
}
catch (RequestFailedException e)
{
Console.WriteLine($"HTTP error code {e.Status}: {e.ErrorCode}");
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
Per recuperare i metadati, usare uno dei seguenti metodi:
Quindi, leggere i valori come illustrato nel seguente esempio.
public static async Task ReadContainerMetadataAsync(BlobContainerClient container)
{
try
{
var properties = await container.GetPropertiesAsync();
// Enumerate the container's metadata.
Console.WriteLine("Container metadata:");
foreach (var metadataItem in properties.Value.Metadata)
{
Console.WriteLine($"\tKey: {metadataItem.Key}");
Console.WriteLine($"\tValue: {metadataItem.Value}");
}
}
catch (RequestFailedException e)
{
Console.WriteLine($"HTTP error code {e.Status}: {e.ErrorCode}");
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
Risorse
Per ulteriori informazioni sull'impostazione e il recupero di proprietà e metadati del contenitore tramite la libreria client di Archiviazione BLOB di Azure per .NET, consultare le seguenti risorse.
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 per impostare e recuperare proprietà di metadati tramite la libreria client usano le seguenti operazioni API REST:
- Ottenere proprietà dei contenitori (API REST)
- Impostare metadati dei contenitori (API REST)
- Ottenere metadati dei contenitori (API REST)
I metodi GetProperties
e GetPropertiesAsync
recuperano proprietà e metadati di contenitori eseguendo entrambe le operazioni Get Blob Properties e Get Blob Metadata.