Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Prerequisites
- Azure-prenumeration – skapa en kostnadsfritt
- Azure Storage-konto – skapa ett lagringskonto
- Senaste .NET SDK för operativsystemet. Se till att hämta SDK:n och inte körmiljön.
Konfigurera din miljö
Om du inte har ett befintligt projekt visar det här avsnittet hur du konfigurerar ett projekt för att arbeta med Azure Blob Storage-klientbiblioteket för .NET. Stegen omfattar paketinstallation, tillägg av using direktiv och skapande av ett auktoriserat klientobjekt. Mer information finns i Kom igång med Azure Blob Storage och .NET.
Installera paket
Från projektkatalogen installerar du paket för Azure Blob Storage- och Azure Identity-klientbiblioteken med hjälp av dotnet add package kommandot . Azure.Identity-paketet behövs för lösenordslösa anslutningar till Azure-tjänster.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Lägga till using direktiv
Lägg till dessa using direktiv överst i kodfilen:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Vissa kodexempel i den här artikeln kan kräva ytterligare using direktiv.
Skapa ett klientobjekt
Om du vill ansluta en app till Blob Storage skapar du en instans av BlobServiceClient. I följande exempel visas hur du skapar ett klientobjekt med hjälp av DefaultAzureCredential för auktorisering:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Du kan registrera en tjänstklient för beroendeinmatning i en .NET-app.
Du kan också skapa klientobjekt för specifika containrar eller blobar. Mer information om hur du skapar och hanterar klientobjekt finns i Skapa och hantera klientobjekt som interagerar med dataresurser.
Authorization
Auktoriseringsmekanismen måste ha de behörigheter som krävs för att ange åtkomstnivån för en blob. För behörighetshantering med Microsoft Entra ID (rekommenderas) behöver du den inbyggda Azure-rollen Storage Blob Data Contributor eller en högre. Mer information finns i auktoriseringsvägledningen för Ange blobnivå.
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 varma 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 kalla nivån har lägre lagringskostnader och högre åtkomstkostnader jämfört med den varma 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 kalla lagringsnivån har lägre lagringskostnader och högre åtkomstkostnader jämfört med den svala lagringsnivån.
- 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.
Restrictions
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).
Note
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 återhydrera en blob från arkivnivån med hjälp av en kopieringsåtgärd kan du välja att ange egenskapen RehydratePriority till High eller Standard.
I följande kodexempel visas hur du återställer en arkiverad blob till Hot-nivån genom 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.
Resources
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.
Kodexempel
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:
- Ange blobnivå (REST API)
Klientbiblioteksresurser
Se även
Relaterat innehåll
- Den här artikeln är en del av utvecklarguiden för Blob Storage för .NET. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din .NET-app.