Sincronizar com o Armazenamento de blobs do Azure com o AzCopy
Você pode sincronizar o armazenamento local com o armazenamento de Blob do Azure usando o utilitário de linha de comando AzCopy v10.
Você pode sincronizar o conteúdo de um sistema de arquivos local com um contêiner de blob. Você também pode sincronizar contêineres e diretórios virtuais entre si. A sincronização é uma maneira. Em outras palavras, você escolhe qual desses dois pontos de extremidade é a origem e qual é o destino. A sincronização também usa APIs de servidor para servidor. Os exemplos apresentados nesta seção também funcionam com contas que têm um namespace hierárquico.
Nota
A versão atual do AzCopy não sincroniza entre outras origens e destinos (por exemplo: armazenamento de arquivos ou buckets do Amazon Web Services (AWS) S3).
Para ver exemplos de outros tipos de tarefas, como carregar arquivos, baixar blobs ou copiar blobs entre contas, consulte os links apresentados na seção Próximas etapas deste artigo.
Introdução
Consulte o artigo Introdução ao AzCopy para baixar o AzCopy e saiba 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 o Microsoft Entra ID.
Se preferir usar um token SAS para autorizar o acesso a dados de blob, você pode acrescentar esse token à URL do recurso em cada comando AzCopy. Por exemplo: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'
.
Diretrizes
Por padrão, o comando sync compara nomes de arquivos e carimbos de data/hora da última modificação. Você pode substituir esse comportamento para usar hashes MD5 em vez de carimbos de data/hora modificados pela última vez usando o --compare-hash
sinalizador. Defina o sinalizador --delete-destination
opcional para um valor de ou prompt
para excluir arquivos no diretório de destino se esses arquivos não existirem mais no diretório de true
origem.
Se você definir o
--delete-destination
sinalizador comotrue
, AzCopy excluirá arquivos sem fornecer um prompt. Se desejar que um prompt apareça antes que o AzCopy exclua um arquivo, defina o--delete-destination
sinalizador comoprompt
.Se você planeja definir o sinalizador como ou
false
, considere usar o comando copy em vez do comando sync e defina o--overwrite
--delete-destination
parâmetro comoifSourceNewer
prompt
. O comando copy consome menos memória e incorre em menos custos de faturamento porque uma operação de cópia não precisa indexar a origem ou o destino antes de mover arquivos.Se você não planeja usar o sinalizador, a máquina na qual você executa o
--compare-hash
comando sync deve ter um relógio de sistema preciso, pois os últimos horários modificados são críticos para determinar se um arquivo deve ser transferido. Se o seu sistema tiver uma distorção de relógio significativa, evite modificar arquivos no destino muito perto do horário que você planeja executar um comando de sincronização.O AzCopy usa APIs de servidor para servidor para sincronizar dados entre contas de armazenamento. Isso significa que os dados são copiados diretamente entre os servidores de armazenamento. No entanto, o AzCopy configura e monitora cada transferência e, para contas de armazenamento maiores (por exemplo, contas que contêm milhões de blobs), o AzCopy pode exigir uma quantidade substancial de recursos de computação para realizar essas tarefas. Portanto, se você estiver executando AzCopy da máquina virtual (VM), certifique-se de que a VM tem núcleos/memória suficientes para lidar com a carga.
- Para evitar exclusões acidentais, certifique-se de ativar o recurso de exclusão suave antes de usar o
--delete-destination=prompt|true
sinalizador.
Atualizar um contêiner com alterações em um sistema de arquivos local
Neste caso, o contentor é o destino e o sistema de ficheiros local é a origem.
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 entre aspas duplas ("") em vez de aspas simples ('').
Sintaxe
azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Exemplo
azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
Atualizar um sistema de ficheiros local com alterações a um contentor
Nesse caso, o sistema de arquivos local é o destino e o contêiner é a origem.
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 entre aspas duplas ("") em vez de aspas simples ('').
Sintaxe
azcopy sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive
Exemplo
azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive
Atualizar um contêiner com alterações em outro contêiner
O primeiro contêiner que aparece neste comando é a origem. O segundo é o destino.
Se você fornecer credenciais de autorização usando o Microsoft Entra ID, certifique-se de ter configurado as funções adequadas em sua conta de origem e destino. Consulte Opção 1: Usar o Microsoft Entra ID.
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 entre aspas duplas ("") em vez de aspas simples ('').
Sintaxe
azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Exemplo
azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Atualizar um diretório com alterações em um diretório em outro contêiner
O primeiro diretório que aparece neste comando é o source. O segundo é o destino.
Se você fornecer credenciais de autorização usando o Microsoft Entra ID, certifique-se de ter configurado as funções adequadas em sua conta de origem e destino. Consulte Opção 1: Usar o Microsoft Entra ID.
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 entre aspas duplas ("") em vez de aspas simples ('').
Sintaxe
azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive
Exemplo
azcopy sync 'https://mysourceaccount.blob.core.windows.net/<container-name>/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myDirectory' --recursive
Sincronizar com sinalizadores opcionais
Você pode ajustar sua operação de sincronização usando sinalizadores opcionais. Aqui estão alguns exemplos.
Scenario | Sinalizador |
---|---|
Especifique com que rigor os hashes MD5 devem ser validados durante o download. | --check-md5=[NãoCheck|LogOnly|FailIfDifferent|FailIfDifferentOrMissing] |
Excluir arquivos com base em um padrão. | --exclude-path |
Especifique o quão detalhado você deseja que suas entradas de log relacionadas à sincronização sejam. | --log-level=[AVISO|ERRO|INFO|NENHUM] |
Para obter uma lista completa de sinalizadores, consulte opções.
Nota
O --recursive
sinalizador é definido como true
por padrão. Os --exclude-pattern
sinalizadores e aplicam-se apenas a nomes de arquivo e --include-pattern
não a outras partes do caminho do arquivo.
Próximos passos
Encontre mais exemplos nestes artigos:
- Exemplos: Upload
- Exemplos: Download
- Exemplos: Copiar entre contas
- 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: