Du kan ange åtkomstnivån för en blob på något av följande sätt:
Genom att ange standardnivån för onlineåtkomst för lagringskontot. Blobar i kontot ärver den här åtkomstnivån om du inte uttryckligen åsidosätter inställningen för en enskild blob.
Genom att uttryckligen ange en blobnivå vid uppladdning. Du kan skapa en blob på nivån frekvent, lågfrekvent, kall eller arkiv.
Genom att ändra en befintlig blobnivå med en åtgärd för att ange blobnivå. Vanligtvis använder du den här åtgärden för att gå från en varmare nivå till en kylare.
Genom att kopiera en blob med en kopieringsblobåtgärd. Vanligtvis använder du den här åtgärden för att gå från en lågfrekvent nivå till en varmare nivå.
Standardinställningen för åtkomstnivå för ett allmänt v2-lagringskonto avgör i vilken onlinenivå en ny blob skapas som standard. Du kan ange standardåtkomstnivån för ett allmänt v2-lagringskonto när du skapar kontot eller genom att uppdatera ett befintligt kontos konfiguration.
När du ändrar standardinställningen för åtkomstnivå för ett befintligt allmänt v2-lagringskonto gäller ändringen för alla blobar i kontot som en åtkomstnivå inte uttryckligen har angetts för. Om du ändrar standardåtkomstnivån kan faktureringen påverkas. Mer information finns i Standardinställning för kontoåtkomstnivå.
Följ dessa steg om du vill ange standardåtkomstnivån för ett lagringskonto vid skapandetillfället i Azure Portal:
Gå till sidan Lagringskonton och välj knappen Skapa .
Fyll i fliken Grundläggande .
På fliken Avancerat under Blob Storage anger du åtkomstnivån till antingen Frekvent, Lågfrekvent eller Kall. Standardinställningen är Frekvent.
Välj Granska + Skapa för att verifiera inställningarna och skapa ditt lagringskonto.
Följ dessa steg för att uppdatera standardåtkomstnivån för ett befintligt lagringskonto i Azure Portal:
Gå till lagringskontot i Azure Portal.
Under Inställningar väljer du Konfiguration.
Leta upp inställningen Blob-åtkomstnivå (standard) och välj antingen Frekvent, Lågfrekvent eller Kall. Standardinställningen är Frekvent om du inte tidigare har angett den här egenskapen.
Spara dina ändringar.
Om du vill ändra standardinställningen för åtkomstnivå för ett lagringskonto med PowerShell anropar du kommandot Set-AzStorageAccount och anger den nya standardåtkomstnivån.
Om du vill ändra standardinställningen för åtkomstnivå för ett lagringskonto med PowerShell anropar du kommandot Set-AzStorageAccount och anger den nya standardåtkomstnivån.
# Change the storage account tier to cool
az storage account update \
--resource-group <resource-group> \
--name <storage-account> \
--access-tier Cool
Ej tillämpligt
Ange en blobnivå vid uppladdning
När du laddar upp en blob till Azure Storage har du två alternativ för att ange blobnivån vid uppladdning:
Du kan uttryckligen ange den nivå där bloben ska skapas. Den här inställningen åsidosätter standardåtkomstnivån för lagringskontot. Du kan ange nivån för en blob eller uppsättning blobar vid uppladdning till frekvent, lågfrekvent, kall eller arkiv.
Du kan ladda upp en blob utan att ange någon nivå. I det här fallet skapas bloben på den standardåtkomstnivå som angetts för lagringskontot (antingen frekvent eller lågfrekvent).
Om du laddar upp en ny blob som använder ett krypteringsomfång kan du inte ändra åtkomstnivån för den bloben.
I följande avsnitt beskrivs hur du anger att en blob laddas upp till antingen den frekventa eller lågfrekventa nivån. Mer information om hur du arkiverar en blob vid uppladdning finns i Arkivera blobar vid uppladdning.
Ladda upp en blob till en specifik onlinenivå
Om du vill skapa en blob på den frekventa, lågfrekventa eller kalla nivån anger du den nivån när du skapar bloben. Den åtkomstnivå som anges vid uppladdning åsidosätter standardåtkomstnivån för lagringskontot.
Följ dessa steg för att ladda upp en blob eller uppsättning blobar till en viss nivå från Azure Portal:
Navigera till målcontainern.
Välj knappen Ladda upp.
Välj den fil eller de filer som ska laddas upp.
Expandera avsnittet Avancerat och ange åtkomstnivån till Frekvent eller Lågfrekvent.
Välj knappen Ladda upp.
Om du vill ladda upp en blob eller en uppsättning blobar till en viss nivå med PowerShell anropar du kommandot Set-AzStorageBlobContent enligt följande exempel. Kom ihåg att ersätta platshållarvärdena inom hakparenteser med dina egna värden:
$rgName = <resource-group>
$storageAccount = <storage-account>
$containerName = <container>
# tier can be hot, cool, cold, or archive
$tier = <tier>
# Get context object
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Create new container.
New-AzStorageContainer -Name $containerName -Context $ctx
# Upload a single file named blob1.txt to the cool tier.
Set-AzStorageBlobContent -Container $containerName `
-File "blob1.txt" `
-Blob "blob1.txt" `
-Context $ctx `
-StandardBlobTier Cool
# Upload the contents of a sample-blobs directory to the cool tier, recursively.
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
Set-AzStorageBlobContent -Container $containerName `
-Context $ctx `
-StandardBlobTier $tier
Om du vill ladda upp en blob till en specifik nivå med Azure CLI anropar du kommandot az storage blob upload , som du ser i följande exempel. Kom ihåg att ersätta platshållarvärdena inom hakparenteser med dina egna värden. <tier> Ersätt platshållaren med hot, cool, coldeller archive.
Om du vill ladda upp en uppsättning blobar till en specifik nivå med Azure CLI anropar du kommandot az storage blob upload-batch , som du ser i följande exempel. Kom ihåg att ersätta platshållarvärdena inom hakparenteser med dina egna värden. <tier> Ersätt platshållaren med hot, cool, coldeller archive.
Om du vill ladda upp en blob till en viss nivå med hjälp av AzCopy använder du kommandot azcopy copy och anger parametern --block-blob-tier till hot, cooleller archive.
Kommentar
Det här exemplet omger sökvägsargument med enkla citattecken ('''). Använd enkla citattecken i alla kommandogränssnitt förutom Windows Command Shell (cmd.exe). Om du använder ett Windows-kommandogränssnitt (cmd.exe) omger du sökvägsargument med dubbla citattecken ("") i stället för enkla citattecken (''). Det här exemplet exkluderar SAS-token eftersom den förutsätter att du har angett autentiseringsuppgifter för auktorisering med hjälp av Microsoft Entra-ID. Se artikeln Kom igång med AzCopy om du vill veta mer om hur du kan ange autentiseringsuppgifter för auktorisering till lagringstjänsten.
Om du vill ladda upp en uppsättning blobar till en viss nivå med hjälp av AzCopy läser du innehållet i den lokala katalogen eller den lokala katalogen och lägger sedan till --recursive=true i kommandot.
Lagringskonton har en standardinställning för åtkomstnivå som anger i vilken onlinenivå en ny blob skapas. Standardinställningen för åtkomstnivå kan anges till antingen frekvent eller lågfrekvent. Beteendet för den här inställningen skiljer sig något beroende på typen av lagringskonto:
Standardåtkomstnivån för ett nytt generellt v2-lagringskonto är som standard inställd på den frekventa nivån. Du kan ändra standardinställningen för åtkomstnivå när du skapar ett lagringskonto eller när det har skapats.
När du skapar ett äldre Blob Storage-konto måste du ange standardinställningen för åtkomstnivå som frekvent eller lågfrekvent när du skapar lagringskontot. Du kan ändra standardinställningen för åtkomstnivå för lagringskontot när det har skapats.
En blob som inte har en uttryckligen tilldelad nivå härleder nivån från standardinställningen för kontoåtkomstnivå. Du kan avgöra om en blobs åtkomstnivå härleds med hjälp av Azure Portal, PowerShell eller Azure CLI.
Om en blobs åtkomstnivå härleds från standardinställningen för kontoåtkomstnivå visar Azure Portal åtkomstnivån som Frekvent (härledd), Lågfrekvent (härledd) eller Kall (härledd).
Om du vill ta reda på åtkomstnivån för en blob och om den härleds från Azure PowerShell hämtar du bloben och kontrollerar sedan egenskaperna AccessTier och AccessTierInferred .
$rgName = "<resource-group>"
$storageAccount = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
# Get the storage account context.
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Get the blob from the service.
$blob = Get-AzStorageBlob -Context $ctx -Container $containerName -Blob $blobName
# Check the AccessTier and AccessTierInferred properties.
# If the access tier is inferred, that property returns true.
$blob.BlobProperties.AccessTier
$blob.BlobProperties.AccessTierInferred
Om du vill fastställa åtkomstnivån för en blob och om den härleds från Azure CLI hämtar du bloben och kontrollerar sedan dess blobTier - och blobTierInferred-egenskaper .
Använd PowerShell, Azure CLI, AzCopy v10 eller något av Azure Storage-klientbiblioteken för att flytta en blob till en annan nivå.
Ändra en blob-nivå
När du ändrar en blobnivå flyttar du blobben och alla dess data till målnivån genom att anropa åtgärden Ange blobnivå (antingen direkt eller via en livscykelhanteringsprincip ) eller genom att använda kommandot azcopy set-properties med AzCopy. Det här alternativet är vanligtvis det bästa när du ändrar en blobnivå från en varmare nivå till en svalare nivå.
Dricks
Du kan använda en lagringsuppgift för att ändra åtkomstnivån för blobar i stor skala över flera lagringskonton baserat på en uppsättning villkor som du definierar. En lagringsuppgift är en resurs som är tillgänglig i Azure Storage Actions. Ett serverlöst ramverk som du kan använda för att utföra vanliga dataåtgärder på miljontals objekt i flera lagringskonton. Mer information finns i Vad är Azure Storage Actions?.
Följ dessa steg om du vill ändra en blobnivå till en lågfrekvent nivå i Azure Portal:
Navigera till den blob som du vill ändra nivån för.
Välj bloben och välj sedan knappen Ändra nivå .
I dialogrutan Ändra nivå väljer du målnivån.
Klicka på knappen Spara.
Om du vill ändra en blobnivå till en lågfrekvent nivå med PowerShell använder du blobens BlobClient-egenskap för att returnera en .NET-referens till bloben och anropar sedan metoden SetAccessTier för den referensen. Kom ihåg att ersätta platshållare inom vinkelparenteser med dina egna värden:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
$tier = "<tier>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier($tier, $null, "Standard")
Om du vill ändra en blobnivå till en lågfrekvent nivå med Azure CLI anropar du kommandot az storage blob set-tier . Kom ihåg att ersätta platshållare inom vinkelparenteser med dina egna värden:
Om du vill ändra en blobnivå till en lågfrekvent nivå använder du kommandot azcopy set-properties och anger parametern -block-blob-tier .
Viktigt!
Användning av AzCopy för att ändra åtkomstnivån för en blob finns för närvarande i FÖRHANDSVERSION.
Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.
Kommentar
Det här exemplet omger sökvägsargument med enkla citattecken ('''). Använd enkla citattecken i alla kommandogränssnitt förutom Windows Command Shell (cmd.exe). Om du använder ett Windows-kommandogränssnitt (cmd.exe) omger du sökvägsargument med dubbla citattecken ("") i stället för enkla citattecken (''). Det här exemplet exkluderar SAS-token eftersom den förutsätter att du har angett autentiseringsuppgifter för auktorisering med hjälp av Microsoft Entra-ID. Se artikeln Kom igång med AzCopy om du vill veta mer om hur du kan ange autentiseringsuppgifter för auktorisering till lagringstjänsten.
Om du vill ändra åtkomstnivån för alla blobar i en virtuell katalog läser du namnet på den virtuella katalogen i stället för blobnamnet och lägger sedan till --recursive=true i kommandot .
Anropa åtgärden Kopiera blob för att kopiera en blob från en nivå till en annan. När du kopierar en blob till en annan nivå flyttar du blobben och alla dess data till målnivån. Källbloben finns kvar på den ursprungliga nivån och en ny blob skapas på målnivån. Att anropa kopieringsblob rekommenderas för de flesta scenarier där du flyttar en blob till en varmare nivå eller extraherar en blob från arkivnivån.
Om du vill kopiera en blob till från lågfrekvent till frekvent med PowerShell anropar du kommandot Start-AzStorageBlobCopy och anger målnivån. Kom ihåg att ersätta platshållare inom vinkelparenteser med dina egna värden:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$srcContainerName = "<source-container>"
$destContainerName = "<dest-container>"
$srcBlobName = "<source-blob>"
$destBlobName = "<dest-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Copy the source blob to a new destination blob in hot tier.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-Context $ctx
Om du vill kopiera en blob till en varmare nivå med Azure CLI anropar du kommandot az storage blob copy start och anger målnivån. Kom ihåg att ersätta platshållare inom vinkelparenteser med dina egna värden:
Om du vill kopiera en blob från lågfrekvent till frekvent med AzCopy använder du kommandot azcopy copy och anger parametern --block-blob-tier till hot.
Kommentar
Det här exemplet omger sökvägsargument med enkla citattecken ('''). Använd enkla citattecken i alla kommandogränssnitt förutom Windows Command Shell (cmd.exe). Om du använder ett Windows-kommandogränssnitt (cmd.exe) omger du sökvägsargument med dubbla citattecken ("") i stället för enkla citattecken ('').
Det här exemplet exkluderar SAS-token eftersom den förutsätter att du har angett autentiseringsuppgifter för auktorisering med hjälp av Microsoft Entra-ID. Se artikeln Kom igång med AzCopy om du vill veta mer om hur du kan ange autentiseringsuppgifter för auktorisering till lagringstjänsten.
AzCopy stöder inte kopiering från en källblob på arkivnivå.
Kopieringsåtgärden är synkron, så när kommandot returnerar kopieras alla filer.
Massnivåindelning
Om du vill flytta blobar till en annan nivå i en container eller en mapp räknar du upp blobar och anropar åtgärden Ange blobnivå på var och en. I följande exempel visas hur du utför den här åtgärden:
När du flyttar ett stort antal blobar till en annan nivå använder du en batchåtgärd för optimala prestanda. En batchåtgärd skickar flera API-anrop till tjänsten med en enda begäran. De underåtgärder som stöds av Blob Batch-åtgärden inkluderar Ta bort blob och Ange blobnivå.
Om du vill ändra åtkomstnivån för blobar med en batchåtgärd använder du ett av Azure Storage-klientbiblioteken. Följande kodexempel visar hur du utför en grundläggande batchåtgärd med .NET-klientbiblioteket:
static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get container client, using Azure AD credentials.
BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(),
new DefaultAzureCredential());
// Get URIs for blobs in this container and add to stack.
var uris = new Stack<Uri>();
await foreach (var item in blobContainerClient.GetBlobsAsync())
{
uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
}
// Get the blob batch client.
BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();
try
{
// Perform the bulk operation to archive blobs.
await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
}
}
Ett djupgående exempelprogram som visar hur du ändrar nivåer med en batchåtgärd finns i AzBulkSetBlobTier.