Dela via


Ange eller ändra åtkomstnivån för en blockblob med .NET

Den här artikeln visar hur du anger eller ändrar åtkomstnivån för en blockblob med hjälp av Azure Storage-klientbiblioteket för .NET.

Förutsättningar

  • Den här artikeln förutsätter att du redan har ett projekt konfigurerat för att fungera med Azure Blob Storage-klientbiblioteket för .NET. Mer information om hur du konfigurerar projektet, inklusive paketinstallation, tillägg using av direktiv och skapande av ett auktoriserat klientobjekt finns i Kom igång med Azure Blob Storage och .NET.
  • Auktoriseringsmekanismen måste ha behörighet att ange blobens åtkomstnivå. Mer information finns i auktoriseringsvägledningen för följande REST API-åtgärd:

Om blockblobåtkomstnivåer

För att hantera kostnader för lagringsbehov kan det vara bra att organisera dina data baserat på hur ofta de används och hur länge de behöver behållas. Azure Storage erbjuder olika åtkomstnivåer så att du kan lagra dina blobdata på det mest kostnadseffektiva sättet baserat på hur de används.

Åtkomstnivåer för blobdata

Azure Storage-åtkomstnivåer omfattar:

  • Frekvent nivå – en onlinenivå som är optimerad för att lagra data som används eller ändras ofta. Den frekventa nivån har de högsta lagringskostnaderna, men de lägsta åtkomstkostnaderna.
  • Lågfrekvent nivå – en onlinenivå som är optimerad för lagring av data som sällan används eller ändras. Data på lågfrekvent nivå ska lagras i minst 30 dagar. Den lågfrekventa nivån har lägre lagringskostnader och högre åtkomstkostnader jämfört med den frekventa nivån.
  • Kall nivå – en onlinenivå som är optimerad för lagring av data som inte används sällan eller ändras. Data på nivån Infrekvent ska lagras i minst 90 dagar. Den infrekventa åtkomstnivån har lägre lagringskostnader och högre åtkomstkostnader jämfört med lågfrekvent lagringsnivå.
  • Arkivnivå – en offlinenivå som är optimerad för lagring av data som sällan används och som har flexibla svarstidskrav i timmar. Data på arkivnivån ska lagras i minst 180 dagar.

Mer information om åtkomstnivåer finns i Åtkomstnivåer för blobdata.

Även om en blob finns på arkivåtkomstnivån anses den vara offline och kan inte läsas eller ändras. För att kunna läsa eller ändra data i en arkiverad blob måste du först extrahera bloben till en onlinenivå. Mer information om hur du extraherar en blob från arkivnivån till en onlinenivå finns i Blob rehydrering från arkivnivån.

Begränsningar

Att ange åtkomstnivån tillåts endast för blockblobar. Mer information om begränsningar för att ange en blockblobs åtkomstnivå finns i Ange BLOB-nivå (REST API).

Kommentar

Om du vill ange åtkomstnivån till Cold med hjälp av .NET måste du använda en lägsta klientbiblioteksversion på 12.15.0.

Ange åtkomstnivån för en blob under uppladdningen

Du kan ange åtkomstnivån för en blob vid uppladdning med hjälp av klassen BlobUploadOptions . Följande kodexempel visar hur du anger åtkomstnivån när du laddar upp en 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();
}

Mer information om hur du laddar upp en blob med .NET finns i Ladda upp en blob med .NET.

Ändra åtkomstnivån för en befintlig blockblob

Du kan ändra åtkomstnivån för en befintlig blockblob med någon av följande funktioner:

Följande kodexempel visar hur du ändrar åtkomstnivån för en befintlig blob till Cool:

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

Om du återskapar en arkiverad blob kan du ange parametern rehydratePriority till High eller Standard.

Kopiera en blob till en annan åtkomstnivå

Du kan ändra åtkomstnivån för en befintlig blockblob genom att ange en åtkomstnivå som en del av en kopieringsåtgärd. Om du vill ändra åtkomstnivån under en kopieringsåtgärd använder du klassen BlobCopyFromUriOptions och anger egenskapen AccessTier . Om du extraherar en blob från arkivnivån med hjälp av en kopieringsåtgärd kan du ange egenskapen RehydratePriority till High eller Standard.

I följande kodexempel visas hur du extraherar en arkiverad blob till Hot nivån med hjälp av en kopieringsåtgärd:

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();
}

Mer information om hur du kopierar en blob med .NET finns i Kopiera en blob med .NET.

Resurser

Mer information om hur du ställer in åtkomstnivåer med hjälp av Azure Blob Storage-klientbiblioteket för .NET finns i följande resurser.

REST API-åtgärder

Azure SDK för .NET innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta .NET-paradigm. Klientbiblioteksmetoderna för att ange åtkomstnivåer använder följande REST API-åtgärd:

Klientbiblioteksresurser

Kodexempel

Se även