Containereigenschappen en metagegevens beheren met .NET
Blob-containers ondersteunen systeemeigenschappen en door de gebruiker gedefinieerde metagegevens, naast de gegevens die ze bevatten. In dit artikel wordt beschreven hoe u systeemeigenschappen en door de gebruiker gedefinieerde metagegevens beheert met de Azure Storage-clientbibliotheek voor .NET.
Vereisten
- In dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor .NET. Zie Aan de slag met Azure Blob Storage en .NET voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het toevoegen van
using
instructies en het maken van een geautoriseerd clientobject. - Het autorisatiemechanisme moet machtigingen hebben om te kunnen werken met containereigenschappen of metagegevens. Zie de autorisatierichtlijnen voor de volgende REST API-bewerkingen voor meer informatie:
Over eigenschappen en metagegevens
Systeemeigenschappen: Systeemeigenschappen bestaan op elke Blob Storage-resource. Sommige kunnen worden gelezen of ingesteld, terwijl andere alleen-lezen zijn. Onder de covers komen sommige systeemeigenschappen overeen met bepaalde standaard HTTP-headers. De Azure Storage-clientbibliotheek voor .NET onderhoudt deze eigenschappen voor u.
Door de gebruiker gedefinieerde metagegevens: door de gebruiker gedefinieerde metagegevens bestaan uit een of meer naam-waardeparen die u opgeeft voor een Blob Storage-resource. U kunt metagegevens gebruiken om extra waarden op te slaan met de resource. Metagegevenswaarden zijn alleen voor uw eigen doeleinden en hebben geen invloed op het gedrag van de resource.
Naam/waardeparen van metagegevens zijn geldige HTTP-headers en moeten voldoen aan alle beperkingen voor HTTP-headers. Zie Namen van metagegevens voor meer informatie over naamgevingsvereisten voor metagegevens.
Containereigenschappen ophalen
Als u containereigenschappen wilt ophalen, roept u een van de volgende methoden aan:
In het volgende codevoorbeeld worden de systeemeigenschappen van een container opgehaald en worden enkele eigenschapswaarden naar een consolevenster geschreven:
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();
}
}
Metagegevens instellen en ophalen
U kunt metagegevens opgeven als een of meer naam-waardeparen op een blob of containerresource. Als u metagegevens wilt instellen, voegt u naam-waardeparen toe aan een IDictionary-object en roept u vervolgens een van de volgende methoden aan om de waarden te schrijven:
In het volgende codevoorbeeld worden metagegevens voor een container ingesteld.
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();
}
}
Als u metagegevens wilt ophalen, roept u een van de volgende methoden aan:
Lees vervolgens de waarden, zoals wordt weergegeven in het onderstaande voorbeeld.
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();
}
}
Resources
Zie de volgende resources voor meer informatie over het instellen en ophalen van containereigenschappen en metagegevens met behulp van de Azure Blob Storage-clientbibliotheek voor .NET.
REST API-bewerkingen
De Azure SDK voor .NET bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende .NET-paradigma's. De clientbibliotheekmethoden voor het instellen en ophalen van eigenschappen en metagegevens gebruiken de volgende REST API-bewerkingen:
- Containereigenschappen ophalen (REST API)
- Containermetagegevens instellen (REST API)
- Containermetagegevens ophalen (REST API)
De GetProperties
en GetPropertiesAsync
methoden halen containereigenschappen en metagegevens op door zowel de bewerking Blob-eigenschappen ophalen als de bewerking Blobmetagegevens ophalen aan te roepen.