Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
Observação
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 saber mais sobre as maneiras de 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 o Microsoft Entra ID.
Se preferir usar um token SAS para autorizar o acesso aos 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>'.
Orientações
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 --delete-destination sinalizador opcional para um valor de ou true para excluir arquivos no diretório de destino se esses arquivos não existirem mais no diretório de prompt origem.
Se você definir o
--delete-destinationsinalizador 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-destinationsinalizador comoprompt.Se você planeja definir o
--delete-destinationsinalizador comopromptoufalse, considere usar o comando copy em vez do comando sync e defina o--overwriteparâmetro comoifSourceNewer. 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
--compare-hashsinalizador, a máquina na qual você executa o 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 da hora 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 o AzCopy da máquina virtual (VM), certifique-se de que a VM tenha 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|truesinalizador.
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.
Sugestão
Este exemplo delimita 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 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.
Sugestão
Este exemplo delimita 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 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 contentor é o destino.
Se você fornecer credenciais de autorização usando a ID do Microsoft Entra, certifique-se de configurar as funções adequadas em sua conta de origem e destino. Consulte Opção 1: Usar o Microsoft Entra ID.
Sugestão
Este exemplo delimita 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 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 diretório é o destino.
Se você fornecer credenciais de autorização usando a ID do Microsoft Entra, certifique-se de configurar as funções adequadas em sua conta de origem e destino. Consulte Opção 1: Usar o Microsoft Entra ID.
Sugestão
Este exemplo delimita 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 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
Atualizar um contêiner com alterações em outro contêiner usando um token SAS
O primeiro contêiner que aparece neste comando é a origem. O segundo contentor é o destino.
Se você fornecer um token SAS, certifique-se de usar um token SAS que corresponda às contas de armazenamento de origem e destino ao usar o azcopy sync.
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>/<destination-SAS-token>' --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/?sv=2018-03-28&ss=qrdu&dst=mco&kp=rwdlapuc&se=2019-07-04T05:30:08Z&st=2019-07-03T21:31:10Z&spr=https&sig=CAfhgnc9gdGktvB=yzx9CAjMKeeN678yiyFwdNU092JC8%6D' --recursive
Sugestão
Se estiver a copiar uma grande quantidade de dados, pode utilizar o Explorador de Armazenamento do Azure.
Para verificar o tamanho dos dados copiados, no menu da barra superior, selecione Mais ->Estatísticas da Pasta para obter os detalhes do diretório, incluindo o tamanho em bytes.
Sincronizar com sinalizadores opcionais
Você pode ajustar sua operação de sincronização usando sinalizadores opcionais. Aqui estão alguns exemplos.
| Cenário | Bandeira |
|---|---|
| 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|INFORMAÇÃO|NENHUM] |
| Especifique como copiar um arquivo vhd. | --blob-type=BlockBlob --include-pattern "*.vhd" ou --blob-type=BlockBlob |
Para obter uma lista completa de sinalizadores, consulte opções.
Observação
O --recursive sinalizador é definido como true por padrão. Os --exclude-pattern sinalizadores e --include-pattern aplicam-se apenas a nomes de arquivo e 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: armazenamentos do Amazon S3
- Exemplos: Google Cloud Storage
- Exemplos: Arquivos do Azure
Consulte estes artigos para definir configurações, otimizar o desempenho e solucionar problemas: