Compartilhar via


Copiar blobs entre as contas de armazenamento do Azure usando o AzCopy

Você pode usar o utilitário de linha de comando do AzCopy v10 para copiar blobs, diretórios e contêineres entre contas de armazenamento.

Para obter exemplos de outros tipos de tarefas, como carregar arquivos, baixar blobs e sincronizar com o Armazenamento de Blobs, consulte os links 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ê forneça credenciais de autorização usando a ID do Microsoft Entra e que sua identidade do Microsoft Entra tenha 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ê usar a autorização do Microsoft Entra para origem e destino, ambas as contas deverão pertencer ao mesmo tenant do Microsoft Entra.

  • Seu 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.

    Para saber mais sobre topologias de rede com suporte ao copiar entre contas, consulte Copiar blobs entre contas de armazenamento com restrição de acesso.

  • 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 como false (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 reter essas marcas, será necessário aplica-las novamente 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. Quando o comando é retornado, indica que todos os arquivos são 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. Quando o comando é retornado, todos os arquivos são copiados.

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. Quando o comando é retornado, todos os arquivos são copiados.

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. Quando o comando é retornado, indica que todos os arquivos são 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, atribua a função Proprietário de Dados de Blob de Armazenamento à sua entidade de segurança ou conceda permissão à Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeoperaçã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 tags, use a opção --blob-tags com um par chave-valor codificado em URL.

Por exemplo, para adicionar a chave my tag e o valor my tag value, adicione --blob-tags='my%20tag=my%20tag%20value' ao parâmetro de destino.

Separe várias marcas de índice com um ampersand (&). Por exemplo, se você quiser adicionar a chave my second tag e o 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. Quando o comando é retornado, todos os arquivos são copiados.

Observação

Se você especificar um diretório, um contêiner ou uma conta para a origem, todos os blobs copiados para o destino terão as mesmas marcas especificadas 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.

Especificar tipos de origem e destino

O AzCopy usa o --from-to parâmetro para definir explicitamente os tipos de recursos de origem e de destino quando a detecção automática pode falhar, como em cenários de tubulação ou emuladores. Esse parâmetro ajuda o AzCopy a entender o contexto da transferência e otimizar adequadamente.

Valor FromTo Description
BlobBlob Copiar entre dois locais do Armazenamento de Blobs do Azure
BlobBlobFS Copiar do Armazenamento de Blobs do Azure para o Azure Data Lake Gen2 (BlobFS)
BlobFSBlob Copiar do Azure Data Lake Gen2 (BlobFS) para o Armazenamento de Blobs do Azure
BlobFSBlobFS Copiar entre dois locais do Azure Data Lake Gen2 (BlobFS)
BlobFSFile Copiar do Azure Data Lake Gen2 (BlobFS) para o Armazenamento de Arquivos do Azure
BlobFile Copiar do Armazenamento de Blobs do Azure para o Armazenamento de Arquivos do Azure
FileBlob Copiar do Armazenamento de Arquivos do Azure para o Armazenamento de Blobs do Azure
FileBlobFS Copiar do Armazenamento de Arquivos do Azure para o Azure Data Lake Gen2 (BlobFS)

Próximas etapas

Encontre mais exemplos nestes artigos:

Consulte estes artigos para definir configurações, otimizar o desempenho e solucionar problemas: