Verwalten von Containereigenschaften und -metadaten mit .NET
Blobcontainer unterstützen neben den enthaltenen Daten auch Systemeigenschaften und benutzerdefinierte Metadaten. In diesem Artikel erfahren Sie, wie Sie Systemeigenschaften und benutzerdefinierte Metadaten mithilfe der Azure Storage-Clientbibliothek für .NET verwalten.
Voraussetzungen
- In diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt für die Arbeit mit der Azure Blob Storage-Clientbibliothek für .NET eingerichtet haben. Informationen zum Einrichten Ihres Projekts, einschließlich der Paketinstallation, dem Hinzufügen von
using
-Anweisungen und dem Erstellen eines autorisierten Clientobjekts, finden Sie unter Erste Schritte mit Azure Blob Storage und .NET. - Der Autorisierungsmechanismus muss über Berechtigungen zum Arbeiten mit Containereigenschaften oder -metadaten verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:
Informationen zu Eigenschaften und Metadaten
Systemeigenschaften: Systemeigenschaften sind in jeder Blobspeicherressource vorhanden. Einige davon können gelesen oder festgelegt werden, während andere schreibgeschützt sind. Darüber hinaus entsprechen einige Systemeigenschaften bestimmten HTTP-Standardheadern. Die Azure Storage-Clientbibliothek für .NET verwaltet diese Eigenschaften für Sie.
Benutzerdefinierte Metadaten: Benutzerdefinierte Metadaten bestehen aus mindestens einem Name-Wert-Paar, das Sie für eine Blobspeicherressource angeben. Metadaten können verwendet werden, um zusätzliche Werte mit der Ressource zu speichern. Metadatenwerte sind nur für Ihre eigenen Zwecke bestimmt und wirken sich nicht auf das Verhalten der Ressource aus.
Name/Wert-Paare für Metadaten sind gültige HTTP-Header und sollten allen Einschränkungen für HTTP-Header entsprechen. Weitere Informationen zu den Benennungsanforderungen für Metadaten finden Sie unter Metadatennamen.
Abrufen von Containereigenschaften
Rufen Sie zum Abrufen von Containereigenschaften eine der folgenden Methoden auf:
Das folgende Codebeispiel ruft die Systemeigenschaften eines Containers ab und schreibt einige Eigenschaftswerte in ein Konsolenfenster:
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();
}
}
Festlegen und Abrufen von Metadaten
Sie können Metadaten als ein oder mehrere Name-Wert-Paare für eine Blob- oder Containerressource angeben. Fügen Sie zum Festlegen von Metadaten Name-Wert-Paare zu einem Objekt vom Typ IDictionary hinzu, und rufen Sie dann eine der folgenden Methoden auf, um die Werte zu schreiben:
Das folgende Codebeispiel legt die Metadaten für einen Container fest.
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();
}
}
Rufen Sie zum Abrufen von Metadaten eine der folgenden Methoden auf:
Lesen Sie anschließend die Werte, wie im folgenden Beispiel gezeigt:
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();
}
}
Ressourcen
Weitere Informationen zum Festlegen und Abrufen von Containereigenschaften und Metadaten 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 Festlegen und Abrufen von Eigenschaften und Metadaten verwenden die folgenden REST-API-Vorgänge:
- Get Container Properties (REST-API)
- Set Container Metadata (REST-API)
- Get Container Metadata (REST-API)
Die Methoden GetProperties
und GetPropertiesAsync
rufen Containereigenschaften und Metadaten ab, indem sie sowohl den Vorgang Blobeigenschaften abrufen als auch der Vorgang Blobmetadaten abrufen aufrufen.