Copiar blobs entre contas de armazenamento do Azure usando 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, consulte os links apresentados na seção Próximas etapas deste artigo.
O AzCopy usa APIs de servidor para servidor, portanto, os dados são copiados diretamente entre os servidores de armazenamento.
Começar agora
Consulte o artigo Introdução ao AzCopy para baixar o AzCopy e saber mais sobre as maneiras de fornecer credenciais de autorização para o serviço de armazenamento.
Nota
Os exemplos neste artigo pressupõem que você forneceu credenciais de autorização usando a ID do Microsoft Entra e que sua identidade do Microsoft Entra tem as atribuições de função adequadas para as contas de origem e de destino.
Como alternativa, você pode acrescentar um token SAS à URL de origem ou de destino em cada comando 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 comandos do AzCopy.
Se você estiver usando a autorização do Microsoft Entra para origem e destino, ambas as contas deverão pertencer ao mesmo locatário do Microsoft Entra.
Seu cliente deve ter acesso à rede para as contas de armazenamento de origem e de destino. Para saber como definir as configurações de rede para cada conta de armazenamento, consulte Configurar firewalls de armazenamento do Azure e redes virtuais.
Se você copiar para uma conta de armazenamento de blob de bloco premium, omita a camada de acesso de um blob da operação de cópia definindo como
s2s-preserve-access-tier
false
(Por exemplo:--s2s-preserve-access-tier=false
). As contas de armazenamento de blob de bloco premium não suportam camadas de acesso.Você pode aumentar a taxa de transferência das operações de cópia definindo o valor da variável de
AZCOPY_CONCURRENCY_VALUE
ambiente. Para saber mais, consulte Aumentar simultaneidade.Se os blobs de origem tiverem tags de índice e você quiser retê-las, será necessário 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 azcopy copy .
Gorjeta
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto no Shell de Comando do Windows (cmd.exe). Se você estiver usando um Shell de Comando do Windows (cmd.exe), coloque argumentos de caminho com 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 (pontos de extremidade de armazenamento Data Lake)
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 é sincronizada, pelo que quando o comando é devolvido, indica que todos os ficheiros foram copiados.
Copiar um diretório
Copie um diretório para outra conta de armazenamento usando o comando azcopy copy .
Gorjeta
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto no Shell de Comando do Windows (cmd.exe). Se você estiver usando um Shell de Comando do Windows (cmd.exe), coloque argumentos de caminho com 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 (pontos de extremidade de armazenamento Data Lake)
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.
Copiar um recipiente
Copie um contêiner para outra conta de armazenamento usando o comando azcopy copy .
Gorjeta
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto no Shell de Comando do Windows (cmd.exe). Se você estiver usando um Shell de Comando do Windows (cmd.exe), coloque argumentos de caminho com 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 (pontos de extremidade de armazenamento Data Lake)
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.
Copiar contêineres, diretórios e blobs
Copie todos os contêineres, diretórios e blobs para outra conta de armazenamento usando o comando azcopy copy .
Gorjeta
Este exemplo inclui argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto no Shell de Comando do Windows (cmd.exe). Se você estiver usando um Shell de Comando do Windows (cmd.exe), coloque argumentos de caminho com 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 (pontos de extremidade de armazenamento Data Lake)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/' 'https://mydestinationaccount.dfs.core.windows.net' --recursive
A operação de cópia é sincronizada, pelo que quando o comando é devolvido, indica que todos os ficheiros foram copiados.
Copiar blobs e adicionar tags de índice
Copie blobs para outra conta de armazenamento e adicione tags de índice de blob ao blob de destino.
Se estiver a utilizar a autorização do Microsoft Entra, tem de ser atribuída à entidade de segurança a função de Proprietário de Dados do Blob de Armazenamento ou tem de lhe ser dada permissão para a operação do fornecedor de recursos do Azure através de uma função personalizada do Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Azure. Se você estiver usando um token SAS (Assinatura de Acesso Compartilhado), esse token deverá fornecer acesso às tags do blob por meio da t
permissão SAS.
Para adicionar tags, use a --blob-tags
opção 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 tags 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 --blob-tags
opção.
Gorjeta
Estes exemplos incluem argumentos de caminho com aspas simples (''). Use aspas simples em todos os shells de comando, exceto no Shell de Comando do Windows (cmd.exe). Se você estiver usando um Shell de Comando do Windows (cmd.exe), coloque argumentos de caminho com 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.
Nota
Se você especificar um diretório, contêiner ou conta para a origem, todos os blobs copiados para o destino terão as mesmas tags especificadas no comando.
Cópia com sinalizadores opcionais
Você pode ajustar sua operação de cópia usando sinalizadores opcionais. Aqui estão alguns exemplos.
Cenário | Sinalizador |
---|---|
Copie blobs como Blobs de Bloco, Página ou Acréscimo. | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
Copie para uma camada de acesso específica (como a camada de arquivamento). | --block-blob-tier=[Nenhum|Quente|Legal|Arquivo] |
Descomprima automaticamente os ficheiros. | --descomprimir=[gzip|esvaziar] |
Para obter uma lista completa, consulte opções.
Próximos passos
Encontre mais exemplos nestes artigos:
- Exemplos: Upload
- Exemplos: Download
- Exemplos: Sincronizar
- Exemplos: buckets do Amazon S3
- Exemplos: Google Cloud Storage
- Exemplos: Arquivos do Azure
- Tutorial: Migrar dados locais para armazenamento em nuvem usando o AzCopy
Consulte estes artigos para definir configurações, otimizar o desempenho e solucionar problemas: