Você pode definir a camada de acesso de um blob de qualquer uma das seguintes maneiras:
Definindo a camada de acesso online padrão para a conta de armazenamento. Os blobs na conta herdam essa camada de acesso, a menos que você substitua explicitamente a configuração de um blob individual.
Definindo explicitamente a camada de um blob no upload. Você pode criar um blob no nível quente, frio, gelado ou de arquivos.
Alterando o nível de um blob existente com uma operação do tipo “Definir o Nível do Blob”. De modo geral, você usaria essa operação para passar de um nível mais quente para um nível mais frio.
Copiando um blob com uma operação do tipo “Copiar Blob”. De modo geral, você usaria essa operação para passar de um nível mais frio para um nível mais quente.
Este artigo descreve como gerenciar um blob em um nível de acesso online. Para obter mais informações sobre como transferir um blob para o nível de arquivos, confira Arquivar um blob. Para obter mais informações sobre como reidratar um blob do nível de arquivos, confira Reidratar um blob arquivado para um nível online.
Definir a camada de acesso padrão para uma conta de armazenamento
A configuração da camada de acesso padrão para uma conta de armazenamento de uso geral v2 determina em qual camada online um blob é criado por padrão. Você pode definir a camada de acesso padrão para uma conta de armazenamento de uso geral v2 no momento em que cria a conta ou atualizando a configuração de uma conta existente.
Quando você altera a configuração da camada de acesso padrão para uma conta de armazenamento de uso geral v2 existente, a alteração se aplica a todos os blobs na conta para a qual uma camada de acesso não foi definida explicitamente. Alterar a camada de acesso padrão pode ter um impacto de cobrança. Para obter detalhes, confira Configuração da camada de acesso da conta padrão.
Para definir a camada de acesso padrão para uma conta de armazenamento no momento da criação no portal do Azure, siga estas etapas:
Navegue até a página Contas de armazenamento e selecione o botão Criar.
Preencha a guia Básico.
Na guia Avançado, em Armazenamento de Blobs, defina a Camada de acesso como Frequente, Esporádico ou Frio. A configuração padrão é Quente.
Selecione Examinar + Criar para validar suas configurações e criar a sua conta de armazenamento.
Para atualizar a camada de acesso padrão para uma conta de armazenamento existente no portal do Azure, siga estas etapas:
Navegue até a conta de armazenamento no portal do Azure.
Em Configurações, escolha Configuração.
Localize a configuração da camada de acesso blob (padrão) e selecione Frequente, Esporádico ou Frio. A configuração padrão é Quente, se você não definiu essa propriedade anteriormente.
Salve suas alterações.
Para alterar a configuração da camada de acesso padrão para uma conta de armazenamento com o PowerShell, chame o comando Set-AzStorageAccount especificando a nova camada de acesso padrão.
Para alterar a configuração da camada de acesso padrão para uma conta de armazenamento com o PowerShell, chame o comando Set-AzStorageAccount especificando a nova camada de acesso padrão.
# Change the storage account tier to cool
az storage account update \
--resource-group <resource-group> \
--name <storage-account> \
--access-tier Cool
N/D
Definir a camada de um blob no upload
Ao carregar um blob no Armazenamento do Azure, você tem duas opções para definir a camada do blob no upload:
Você pode definir explicitamente a camada em que o blob será criado. Essa configuração substitui a camada de acesso padrão para a conta de armazenamento. Você pode definir o nível para um blob ou conjunto de blobs como quente, frio, gelado ou de arquivos no momento do upload.
Você pode carregar um blob sem especificar uma camada. Nesse caso, o blob será criado no nível de acesso padrão especificado para a conta de armazenamento (quente ou frio).
Se você estiver carregando um novo blob que usa um escopo de criptografia, não poderá alterar a camada de acesso desse blob.
As seções a seguir descrevem como especificar se um blob será carregado no nível quente ou frio. Para obter mais informações sobre como arquivar um blob no upload, confira Arquivar blobs no upload.
Carregar um blob para uma camada online específica
Para criar um blob nos níveis de acesso quente, frio ou gelado, especifique esse nível quando criar o blob. A camada de acesso especificada no upload substitui a camada de acesso padrão para a conta de armazenamento.
Para carregar um blob ou um conjunto de blobs em uma camada específica do portal do Azure, siga estas etapas:
Navegue até o contêiner de destino.
Selecione o botão Carregar.
Selecione o arquivo ou os arquivos a serem carregados.
Expanda a seção Avançado e defina a Camada de acesso como Quente ou Fria.
Selecione o botão Carregar.
Para carregar um blob ou um conjunto de blobs em uma camada específica com o PowerShell, chame o comando Set-AzStorageBlobContent conforme mostrado no exemplo a seguir. Não deixe de substituir os valores de espaço reservado entre colchetes pelos seus valores:
$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
Para carregar um blob em uma camada específica com a CLI do Azure, chame o comando Set-az storage blob upload, conforme mostrado no exemplo a seguir. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus valores. Substitua o <tier> espaço reservado por hot, cool, cold ou archive.
Para carregar um conjunto de blobs em uma camada específica com a CLI do Azure, chame o comando az storage blob upload-batch, conforme mostrado no exemplo a seguir. Lembre-se de substituir os valores de espaço reservado entre colchetes pelos seus valores. Substitua o <tier> espaço reservado por hot, cool, cold ou archive.
Para carregar um blob em uma camada específica usando AzCopy, use o comando azcopy copy e defina o parâmetro --block-blob-tier como hot, cool ou archive.
Observação
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto pelo shell de comando do Windows (cmd.exe). Se você estiver usando um shell de comando do Windows (cmd.exe), coloque os argumentos de caminho entre aspas duplas ("") em vez de aspas simples (''). Esse exemplo exclui o token SAS porque pressupõe que você forneceu credenciais de autorização usando o Microsoft Entra ID. Confira o artigo Introdução ao AzCopy para aprender de que maneiras você pode fornecer credenciais de autorização para o serviço de armazenamento.
Para carregar um conjunto de blobs em uma camada específica usando AzCopy, consulte o diretório local ou o conteúdo do diretório local e acrescente --recursive=true ao comando.
As contas de armazenamento têm uma configuração de camada de acesso padrão que indica em qual camada online um blob é criado. A configuração de camada de acesso padrão pode ser definida como quente ou fria. O comportamento dessa configuração é ligeiramente diferente dependendo do tipo de conta de armazenamento:
A camada de acesso padrão para uma nova conta de armazenamento v2 de uso geral é definida como a camada quente por padrão. Você pode alterar a configuração da camada de acesso padrão ao criar uma conta de armazenamento ou depois que ela for criada.
Ao criar uma conta no Armazenamento de Blobs herdado, você precisa especificar a configuração do nível de acesso padrão como quente ou frio ao criar a conta de armazenamento. Você pode alterar a configuração de camada de acesso padrão da conta de armazenamento depois que ela é criada.
Qualquer blob que não tenha uma camada explicitamente atribuída infere a camada da configuração padrão de camada de acesso da conta. Você pode determinar se a camada de acesso de um blob é inferida usando o portal do Azure, o PowerShell ou a CLI do Azure.
Se a camada de acesso de um blob for inferida da configuração da camada de acesso da conta padrão, o portal do Azure exibirá a camada de acesso como Frequente (inferido), Esporádico (inferido) ou Frio (inferido).
Para determinar a camada de acesso de um blob e se ela é inferida do Azure PowerShell, recupere o blob e verifique as propriedades AccessTier e AccessTierInferred dele.
$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
Para determinar a camada de acesso de um blob e se ela é inferida da CLI do Azure, recupere o blob e verifique as propriedades blobTier e blobTierInferred dele.
Use o PowerShell, a CLI do Azure, AzCopy v10 ou uma das bibliotecas de clientes do Armazenamento do Azure para mover um blob para uma camada diferente.
Alterar a camada de um blob
Quando altera a camada de um blob, você move esse blob e todos os respectivos dados para a camada de destino chamando a operação Set Blob Tier (diretamente ou por meio de uma política de gerenciamento do ciclo de vida) ou usando o comando azcopy set-properties com AzCopy. Essa opção costuma ser a melhor quando você altera a camada de um blob de um uso mais frequente para um mais esporádico.
Dica
Você pode usar uma tarefa de armazenamento para alterar a camada de acesso de blobs em escala em várias contas de armazenamento com base em um conjunto de condições que você definir. Uma conta de armazenamento é um recurso disponível em Ações de Armazenamento do Azure; uma estrutura sem servidor que você pode usar para executar operações de dados comuns em milhões de objetos em várias contas de armazenamento. Para saber mais, consulte O que são as Ações de Armazenamento do Azure?.
Para alterar o nível do blob para um nível mais frio no portal do Azure, siga essa etapas:
Navegue até o blob para o qual você deseja alterar a camada.
Selecione o blob e, em seguida, selecione o botão Alterar camada.
Na caixa de diálogo Alterar camada, selecione a camada de destino.
Selecione o botão Salvar.
Para alterar o nível de um blob para um nível mais frio com o PowerShell, use a propriedade BlobClient do blob para retornar uma referência do .NET ao blob. A seguir, chame o método SetAccessTier nessa referência. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
# 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")
Para alterar o nível de um blob para um nível mais frio com a CLI do Azure, chame o comando az storage blob set-tier. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
Para alterar o nível de um blob de acesso para um nível mais frio, use o comando azcopy set-properties e defina o parâmetro -block-blob-tier.
Importante
O uso do AzCopy para alterar a camada de acesso de um blob está em VERSÃO PRÉVIA.
Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
Observação
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto pelo shell de comando do Windows (cmd.exe). Se você estiver usando um shell de comando do Windows (cmd.exe), coloque os argumentos de caminho entre aspas duplas ("") em vez de aspas simples (''). Esse exemplo exclui o token SAS porque pressupõe que você forneceu credenciais de autorização usando o Microsoft Entra ID. Confira o artigo Introdução ao AzCopy para aprender de que maneiras você pode fornecer credenciais de autorização para o serviço de armazenamento.
Para alterar a camada de acesso para todos os blobs em um diretório virtual, consulte o nome do diretório virtual em vez do nome do blob e acrescente --recursive=true ao comando.
Chame a operação Copy Blob para copiar um blob de uma camada para outra. Ao copiar um blob para uma camada diferente, você move esse blob e todos os dados dele para a camada de destino. O blob de origem permanece na camada original e um blob é criado na camada de destino. É recomendável chamar o comando Copy Blob para a maioria dos cenários quando você estiver migrando um blob para um nível mais quente ou reidratando um blob do nível de arquivos.
Para copiar um blob de frio para quente com o PowerShell, chame o comando Start-AzStorageBlobCopy e especifique o nível de destino. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
# 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
Para copiar um blob para um nível mais quente com a CLI do Azure, chame o comando az storage blob copy start e especifique o nível de destino. Lembre-se de substituir os espaços reservados entre colchetes angulares pelos seus próprios valores:
Para copiar um blob de frio para quente com AzCopy, use o comando azcopy copy e defina o parâmetro --block-blob-tier como hot.
Observação
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto pelo shell de comando do Windows (cmd.exe). Se você estiver usando um shell de comando do Windows (cmd.exe), coloque os argumentos de caminho entre aspas duplas ("") em vez de aspas simples ('').
Esse exemplo exclui o token SAS porque pressupõe que você forneceu credenciais de autorização usando o Microsoft Entra ID. Confira o artigo Introdução ao AzCopy para aprender de que maneiras você pode fornecer credenciais de autorização para o serviço de armazenamento.
O AzCopy não dá suporte à cópia de um blob de origem na camada de arquivos.
A operação de cópia é síncrona; portanto, todos os arquivos serão copiados quando o comando retornar.
Camadas em massa
Para mover blobs para outra camada em um contêiner ou pasta, enumere os blobs e chame a operação Definir Camada de Blob em cada um deles. O exemplo abaixo mostra como executar essa operação:
Ao mover um grande número de blobs para outra camada, use uma operação em lote para obter um desempenho ideal. Uma operação em lote envia várias chamadas à API para o serviço em uma única solicitação. As suboperações compatíveis com a operação Lote de Blobs incluem Excluir Blob e Definir Camada de Blob.
Para alterar a camada de acesso de blobs com uma operação em lote, use uma das bibliotecas de cliente do Armazenamento do Azure. O exemplo de código abaixo mostra como executar uma operação em lote básica com a biblioteca de clientes do .NET:
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);
}
}
Para ver um aplicativo de exemplo aprofundado que mostra como alterar camadas com uma operação em lote, veja AzBulkSetBlobTier.