Copiar blobs entre as contas de armazenamento do Azure usando o AzCopy
Você pode copiar BLOBs, diretórios e contêineres entre contas de armazenamento usando o utilitário de linha de comando AzCopy v10.
Para ver exemplos de outros tipos de tarefas, como carregar arquivos, baixar blobs e sincronizar com o Armazenamento de Blobs, confira os links apresentados na seção Próximas etapas deste artigo.
O AzCopy usa APIsde servidor para servidor, portanto, os dados são copiados diretamente entre os servidores de armazenamento.
Introdução
Confira o artigo Introdução ao AzCopy para baixar o AzCopy e aprender sobre as maneiras em que você pode fornecer credenciais de autorização para o serviço de armazenamento.
Observação
Os exemplos neste artigo pressupõem que você forneceu credenciais de autorização usando o Microsoft Entra ID e que sua identidade do Microsoft Entra tem as atribuições de função adequadas para contas de origem e de destino.
Como alternativa, você pode acrescentar um token SAS à URL de origem ou de destino em cada comando do AzCopy. Por exemplo: azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
.
Diretrizes
Aplique as seguintes diretrizes aos seus comandos do AzCopy.
Se você estiver usando a autorização do Microsoft Entra para origem e destino, as duas contas deverão pertencer ao mesmo locatário do Microsoft Entra.
O cliente deve ter acesso à rede para as contas de armazenamento de origem e de destino. Saiba mais sobre como configurar as definições de rede para cada conta de armazenamento, confira Configurar Firewalls de armazenamento e redes virtuais do Azure.
Se você copiar para uma conta de armazenamento de blob de blocos Premium, omita a camada de acesso de um blob da operação de cópia definindo o
s2s-preserve-access-tier
comofalse
(por exemplo:--s2s-preserve-access-tier=false
). As contas de armazenamento de blob de blocos Premium não dão suporte a camadas de acesso.Você pode aumentar a taxa de transferência de operações de cópia definindo o valor da variável de ambiente
AZCOPY_CONCURRENCY_VALUE
. Para saber mais, consulte Aumentar a Simultaneidade.Se os blobs de origem tiverem marcas de índice e você quiser manter essas marcas, você precisará reaplicá-las aos blobs de destino. Para obter informações sobre como definir marcas de índice, consulte a seção copiar BLOBs para outra conta de armazenamento com marcas de índice deste artigo.
Copiar um blob
Copie um blob para outra conta de armazenamento usando o comando copiar azcopy.
Dica
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 ('').
Sintaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>'
Exemplo
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
Exemplo (ponto de extremidade do Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'
A operação de cópia é síncrona, portanto, quando o comando retorna, isso indica que todos os arquivos foram copiados.
Copiar um diretório
Copie um diretório para outra conta de armazenamento usando o comando copiar azcopy.
Dica
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 ('').
Sintaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Exemplo
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Exemplo (ponto de extremidade do Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
A operação de cópia é síncrona. Todos os arquivos foram copiados quando o comando retorna.
Copie um contêiner
Copie um contêiner para outra conta de armazenamento usando o comando copiar azcopy.
Dica
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 ('').
Sintaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Exemplo
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Exemplo (ponto de extremidade do Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
A operação de cópia é síncrona. Todos os arquivos foram copiados quando o comando retorna.
Copie contêiners, diretórios e blobs
Copie todos os contêineres, diretórios e BLOBs para outra conta de armazenamento usando o comando azcopy Copy.
Dica
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 ('').
Sintaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/' --recursive
Exemplo
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive
Exemplo (ponto de extremidade do Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/' 'https://mydestinationaccount.dfs.core.windows.net' --recursive
A operação de cópia é síncrona, portanto, quando o comando retorna, isso indica que todos os arquivos foram copiados.
Copiar BLOBs e adicionar marcas de índice
Copie blobs para outra conta de armazenamento e adicione marcas de índice de BLOB ao blob de destino.
Se você estiver usando a autorização do Microsoft Entra, sua entidade de segurança deverá receber a função de Proprietário de Dados do Armazenamento de Blobs ou deverá receber permissão para a Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
operação do provedor de recursos do Azure por meio de uma função personalizada do Azure. Se você estiver usando um token SAS (Assinatura de Acesso Compartilhado), esse token precisará fornecer acesso às marcas do blob por meio da permissão SAS t
.
Para adicionar marcas, use a opção --blob-tags
junto com um par chave-valor codificado por URL.
Por exemplo, para adicionar a chave my tag
e um valor my tag value
, você adicionaria --blob-tags='my%20tag=my%20tag%20value'
ao parâmetro de destino.
Separe várias marcas de índice usando um e comercial (&
). Por exemplo, se você quiser adicionar uma chave my second tag
e um valor my second tag value
, a cadeia de caracteres de opção completa será --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
.
Os exemplos a seguir mostram como usar a opção --blob-tags
.
Dica
Esses exemplos incluem 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 ('').
Exemplo de blob
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Exemplo de diretório
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Exemplo de contêiner
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Exemplo de conta
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
A operação de cópia é síncrona. Todos os arquivos foram copiados quando o comando retorna.
Observação
Se você especificar um diretório, contêiner ou conta para a origem, todos os blobs copiados para o destino terão as mesmas marcas que você especificar no comando.
Copiar com sinalizadores opcionais
Você pode ajustar sua operação de cópia usando sinalizadores opcionais. Alguns exemplos são mostrados a seguir.
Cenário | Sinalizador |
---|---|
Copie blobs como bloco, página ou BLOBs de acréscimo. | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
Copiar para uma camada de acesso específica (como a camada de arquivo). | --block-blob-tier=[None|Hot|Cool|Archive] |
Descompacte arquivos automaticamente. | --decompress=[gzip|deflate] |
Para obter uma lista completa, confira as opções.
Próximas etapas
Encontre mais exemplos nestes artigos:
- Exemplos: Carregar
- Exemplos: Baixar
- Exemplos: Sincronizar
- Exemplos: usar buckets do Amazon S3
- Exemplos: Google Cloud Storage
- Exemplos: Arquivos do Azure
- Tutorial: Migrar os dados locais para o armazenamento em nuvem usando o AzCopy
Consulte estes artigos para definir configurações, otimizar o desempenho e solucionar problemas: