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

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:

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.

Clientbibliotheekbronnen