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 het, kall, kall eller arkiv.
- Genom att ändra en befintlig blobnivå med en Set Blob Tier-operation. 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 kopieringsoperation. Vanligtvis använder du den här åtgärden för att gå från en lågfrekvent nivå till en varmare nivå.
Den här artikeln beskriver hur du hanterar en blob på en onlineåtkomstnivå. Mer information om hur du flyttar en blob till arkivnivån finns i Arkivera en blob. Mer information om hur du återställer en blob från arkivnivån finns i Återställ en arkiverad blob till en onlinenivå.
Mer information om åtkomstnivåer för blobar finns i Åtkomstnivåer för blobdata.
Ange standardåtkomstnivån för ett lagringskonto
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 Het, Kall eller Frusen. 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.
$rgName = <resource-group>
$accountName = <storage-account>
# Change the storage account tier to cool
Set-AzStorageAccount -ResourceGroupName $rgName -Name $accountName -AccessTier Cool
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
 
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 varm, kall eller arkiv.
- Du kan ladda upp en blob utan att ange någon nivå. I det här fallet skapas blobben på den standardåtkomstnivå som angetts för lagringskontot (antingen varm eller kall).
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 heta eller kalla 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 Hot eller Cool. 
- 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.
az storage blob upload \
    --account-name <storage-account> \
    --container-name <container> \
    --name <blob> \
    --file <file> \
    --tier <tier> \
    --auth-mode login
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.
az storage blob upload-batch \
    --destination <container> \
    --source <source-directory> \
    --account-name <storage-account> \
    --tier <tier> \
    --auth-mode login
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.
Anteckning
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 copy '<local-file-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier <blob-tier>
För att ladda upp en uppsättning blobar till en specifik nivå med hjälp av AzCopy, ange den lokala katalogen eller dess innehåll, och lägg sedan till --recursive=true i kommandot.
              Exempel på lokal katalog
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier <blob-tier> --recursive=true
              Exempel på lokalt kataloginnehåll
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier <blob-tier> --recursive=true
 
Ladda upp en blob till standardnivån
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 het eller kall. 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 .
az storage blob show \
    --container-name <container> \
    --name <blob> \
    --account-name <storage-account> \
    --query '[properties.blobTier, properties.blobTierInferred]' \
    --output tsv \
    --auth-mode login 
 
Flytta en blob till en annan onlinenivå
Du kan flytta en blob till en annan onlinenivå på något av två sätt:
- Genom att ändra åtkomstnivån.
- Genom att kopiera bloben till en annan lagringsnivå online.
Mer information om vart och ett av dessa alternativ finns i Ange eller ändra en blobnivå.
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 blobbens 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å.
Tips
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:
az storage blob set-tier \
    --account-name <storage-account> \
    --container-name <container> \
    --name <blob> \
    --tier <tier> \
    --auth-mode login
Om du vill ändra en blobnivå till en lågfrekvent nivå använder du kommandot azcopy set-properties och anger parametern -block-blob-tier .
Anteckning
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 set-properties 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier=<tier>
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 .
azcopy set-properties 'https://<storage-account-name>.blob.core.windows.net/<container-name>/myvirtualdirectory' --block-blob-tier=<tier> --recursive=true
 
Kopiera en blob till en annan onlinenivå
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 Copy Blob rekommenderas för de flesta scenarier där du flyttar en blob till en varmare nivå, eller återställer en blob från arkivnivån.
Om du vill kopiera en blob från lågfrekvent till frekvent med PowerShell, anropa kommandot Start-AzStorageBlobCopy och ange 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:
az storage blob copy start \
    --source-container <source-container> \
    --source-blob <source-blob> \
    --destination-container <dest-container> \
    --destination-blob <dest-blob> \
    --account-name <storage-account> \
    --tier hot \
    --auth-mode login
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.
Anteckning
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å.
 
azcopy copy 'https://mystorageeaccount.blob.core.windows.net/mysourcecontainer/myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mydestinationcontainer/myTextFile.txt' --block-blob-tier=hot
Kopieringsåtgärden är synkron, så när kommandot returnerar kopieras alla filer.
 
Volymnivå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:
# Initialize these variables with your values.
    $rgName = "<resource-group>"
    $accountName = "<storage-account>"
    $containerName = "<container>"
    $folderName = "<folder>/"
    $ctx = (Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName).Context
    $blobCount = 0
    $Token = $Null
    $MaxReturn = 5000
    do {
        $Blobs = Get-AzStorageBlob -Context $ctx -Container $containerName -Prefix $folderName -MaxCount $MaxReturn -ContinuationToken $Token
        if($Blobs -eq $Null) { break }
        #Set-StrictMode will cause Get-AzureStorageBlob returns result in different data types when there is only one blob
        if($Blobs.GetType().Name -eq "AzureStorageBlob")
        {
            $Token = $Null
        }
        else
        {
            $Token = $Blobs[$Blobs.Count - 1].ContinuationToken;
        }
        $Blobs | ForEach-Object {
                if($_.BlobType -eq "BlockBlob") {
                    $_.BlobClient.SetAccessTier("Cold", $null)
                }
            }
    }
    While ($Token -ne $Null)
    
az storage blob list --account-name $accountName --account-key $key \
    --container-name $containerName --prefix $folderName \
    --query "[?properties.blobTier == 'Cool'].name" --output tsv \
    | xargs -I {} -P 10 \
    az storage blob set-tier --account-name $accountName --account-key $key \
    --container-name $containerName --tier Cold --name "{}" 
 
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.
Nästa steg