Delen via


De toegangslaag van een blok-blob instellen of wijzigen met .NET

In dit artikel wordt beschreven hoe u de toegangslaag voor een blok-blob instelt of wijzigt met behulp van de Azure Storage-clientbibliotheek voor .NET.

Vereisten

Uw omgeving instellen

Als u geen bestaand project hebt, ziet u in deze sectie hoe u een project instelt voor gebruik met de Azure Blob Storage-clientbibliotheek voor .NET. De stappen omvatten pakketinstallatie, het toevoegen van using instructies en het maken van een geautoriseerd clientobject. Zie Aan de slag met Azure Blob Storage en .NET voor meer informatie.

Pakketten installeren

Installeer vanuit uw projectmap pakketten voor de Azure Blob Storage- en Azure Identity-clientbibliotheken met behulp van de dotnet add package opdracht. Het Azure.Identity-pakket is nodig voor verbindingen zonder wachtwoord met Azure-services.

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

Voeg using-instructies toe

Voeg deze using instructies toe aan het begin van het codebestand:

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

Voor sommige codevoorbeelden in dit artikel zijn mogelijk aanvullende using instructies vereist.

Een clientobject maken

Als u een app wilt verbinden met Blob Storage, maakt u een exemplaar van BlobServiceClient. In het volgende voorbeeld ziet u hoe u een clientobject maakt met behulp van DefaultAzureCredential autorisatie:

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

    return client;
}

U kunt een serviceclient registreren voor afhankelijkheidsinjectie in een .NET-app.

U kunt ook clientobjecten maken voor specifieke containers of blobs. Zie Clientobjecten maken en beheren die interactie hebben met gegevensbronnen voor meer informatie over het maken en beheren van clientobjecten.

Autorisatie

Het autorisatiemechanisme moet over de benodigde machtigingen beschikken om de toegangslaag van een blob in te stellen. Voor autorisatie met Microsoft Entra ID (aanbevolen) hebt u ingebouwde Azure RBAC-rol Opslagblobgegevensbijdrager of hoger nodig. Zie de autorisatierichtlijnen voor De bloblaag instellen voor meer informatie.

Over blok-blob-toegangslagen

Voor het beheren van de kosten voor opslagbehoeften kan het handig zijn om uw gegevens te organiseren op basis van hoe vaak ze worden geopend en hoe lang deze moeten worden bewaard. Azure Storage biedt verschillende toegangslagen, zodat u uw blobgegevens op de meest rendabele manier kunt opslaan op basis van hoe deze worden gebruikt.

Toegangslagen voor blobgegevens

Azure Storage-toegangslagen zijn onder andere:

  • Dynamische laag : een onlinelaag die is geoptimaliseerd voor het opslaan van gegevens die regelmatig worden geopend of gewijzigd. De dynamische laag heeft de hoogste opslagkosten, maar de laagste toegangskosten.
  • Statische laag : een onlinelaag die is geoptimaliseerd voor het opslaan van gegevens die niet vaak worden geopend of gewijzigd. Gegevens in de statische laag moeten minimaal 30 dagen worden opgeslagen. De statische laag heeft lagere opslagkosten en hogere toegangskosten in vergelijking met de dynamische laag.
  • Koude laag : een onlinelaag die is geoptimaliseerd voor het opslaan van gegevens die niet vaak worden geopend of gewijzigd. Gegevens in de koude laag moeten minimaal 90 dagen worden opgeslagen. De koude laag heeft lagere opslagkosten en hogere toegangskosten dan de statische laag.
  • Archieflaag: een offlinelaag die is geoptimaliseerd voor het opslaan van gegevens die zelden worden geopend en die flexibele latentievereisten heeft, in de volgorde van uren. Gegevens in de archieflaag moeten minimaal 180 dagen worden opgeslagen.

Zie Toegangslagen voor blobgegevens voor meer informatie over toegangslagen.

Hoewel een blob zich in de archieftoegangslaag bevindt, wordt deze beschouwd als offline en kan deze niet worden gelezen of gewijzigd. Als u gegevens in een gearchiveerde blob wilt lezen of wijzigen, moet u de blob eerst reactiveren naar een onlinelaag. Zie Blob-rehydratatie vanuit de archieflaag voor meer informatie over het reactiveren van een blob vanuit de archieflaag naar een onlinelaag.

Beperkingen

Het instellen van de toegangslaag is alleen toegestaan voor blok-blobs. Zie Blob-laag (REST API) instellen voor meer informatie over beperkingen voor het instellen van de toegangslaag van een blok-blob.

Notitie

Als u de toegangslaag wilt instellen voor Cold het gebruik van .NET, moet u een minimale clientbibliotheekversie van 12.15.0 gebruiken.

De toegangslaag van een blob instellen tijdens het uploaden

U kunt de toegangslaag van een blob instellen bij uploaden met behulp van de klasse BlobUploadOptions . In het volgende codevoorbeeld ziet u hoe u de toegangslaag instelt bij het uploaden van een blob:

public static async Task UploadWithAccessTierAsync(
    BlobContainerClient containerClient,
    string localFilePath)
{
    string fileName = Path.GetFileName(localFilePath);
    BlockBlobClient blockBlobClient = containerClient.GetBlockBlobClient(fileName);

    var uploadOptions = new BlobUploadOptions()
    {
        AccessTier = AccessTier.Cool
    };

    FileStream fileStream = File.OpenRead(localFilePath);
    await blockBlobClient.UploadAsync(fileStream, uploadOptions);
    fileStream.Close();
}

Zie Een blob uploaden met .NET voor meer informatie over het uploaden van een blob met .NET.

De toegangslaag voor een bestaande blok-blob wijzigen

U kunt de toegangslaag van een bestaande blok-blob wijzigen met behulp van een van de volgende functies:

In het volgende codevoorbeeld ziet u hoe u de toegangslaag voor een bestaande blob wijzigt in Cool:

public static async Task ChangeBlobAccessTierAsync(
    BlobClient blobClient)
{
    // Change the access tier of the blob to cool
    await blobClient.SetAccessTierAsync(AccessTier.Cool);
}

Als u een gearchiveerde blob reactiveren, kunt u de rehydratePriority parameter High desgewenst instellen op of Standard.

Een blob kopiëren naar een andere toegangslaag

U kunt de toegangslaag van een bestaande blok-blob wijzigen door een toegangslaag op te geven als onderdeel van een kopieerbewerking. Als u de toegangslaag tijdens een kopieerbewerking wilt wijzigen, gebruikt u de klasse BlobCopyFromUriOptions en geeft u de eigenschap AccessTier op. Als u een blob rehydrateert vanuit de archieflaag met behulp van een kopieerbewerking, kunt u eventueel de eigenschap RehydratePriority instellen op of StandardHigh .

In het volgende codevoorbeeld ziet u hoe u een gearchiveerde blob rehydrateert naar de Hot laag met behulp van een kopieerbewerking:

public static async Task RehydrateBlobUsingCopyAsync(
    BlobClient sourceArchiveBlob,
    BlobClient destinationRehydratedBlob)
{
    // Note: the destination blob must have a different name than the archived source blob

    // Configure copy options to specify hot tier and standard priority
    BlobCopyFromUriOptions copyOptions = new()
    {
        AccessTier = AccessTier.Hot,
        RehydratePriority = RehydratePriority.Standard
    };

    // Copy source blob from archive tier to destination blob in hot tier
    CopyFromUriOperation copyOperation = await destinationRehydratedBlob
        .StartCopyFromUriAsync(sourceArchiveBlob.Uri, copyOptions);
    await copyOperation.WaitForCompletionAsync();
}

Zie Een blob kopiëren met .NET voor meer informatie over het kopiëren van een blob met .NET.

Resources

Zie de volgende resources voor meer informatie over het instellen van toegangslagen 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 van toegangslagen maken gebruik van de volgende REST API-bewerking:

Clientbibliotheekbronnen

Codevoorbeelden

Zie ook