Compartilhar via


Transferir dados com o AzCopy e o Armazenamento de Arquivos

O AzCopy é um utilitário de linha de comando que você pode usar para copiar arquivos de ou para uma conta de armazenamento. Este artigo contém comandos de exemplo que funcionam com os Arquivos do Azure.

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 nesse artigo mostram o uso de um token SAS para autorizar o acesso. Entretanto, para comandos que têm como destino arquivos e diretórios, agora é possível fornecer credenciais de autorização usando o Microsoft Entra ID e omitir o token SAS desses comandos. Você ainda precisa usar um token SAS em qualquer comando destinado apenas ao compartilhamento de arquivos ou à conta (por exemplo: 'azcopy make https://mystorageaccount.file.core.windows.net/myfileshare' ou 'azcopy copy 'https://mystorageaccount.file.core.windows.net'.

Para saber mais, consulte Authorize AzCopy

Dica

Ao usar o NFS de Arquivos do Azure, você deve especificar a opção da CLI --from-to com uma das seguintes opções com suporte: FileNFSLocal, LocalFileNFSou FileNFSFileNFS nos seus comandos.

Os cenários de upload e download que usam LocalFileNFS e FileNFSLocal têm suporte apenas em ambientes locais do Linux. Essas operações não têm suporte no Windows ou no macOS. Por outro lado, o cenário FileNFSFileNFS, que usa a API de cópia servidor a servidor, tem suporte no Windows, Linux e macOS. Você pode executar os comandos associados em qualquer uma dessas plataformas.

Criar compartilhamentos de arquivo

Você pode usar o comando azcopy make para criar um compartilhamento de arquivo. O exemplo nesta seção cria um compartilhamento de arquivo chamado myfileshare.

Observação

A versão 10.30.0 do AzCopy introduz uma alteração significativa, na qual ele não cria mais compartilhamentos de arquivos automaticamente para transferências envolvendo os Arquivos do Azure usando os protocolos NFS ou SMB.

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 make 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>'

Exemplo

azcopy make 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]'

Para obter documentos de referência detalhados, confira azcopy make.

Carregar arquivos

Use o comando azcopy copy para carregar arquivos e diretórios do seu computador local.

Dica

Os exemplos nesta seção 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 ('').

Esta seção contém os seguintes exemplos:

  • Carregar um arquivo
  • Carregar um diretório
  • Carregar o conteúdo de um diretório
  • Carregar um arquivo específico

Dica

Use sinalizadores opcionais para personalizar sua operação de upload. Veja alguns exemplos:

Cenário Sinalizador
Copie ACLs (listas de controle de acesso) junto com os arquivos. --preserve-permissions=[true|false]
Copie informações de propriedade SMB junto com os arquivos. --preserve-info=[true|false]

Para obter uma lista completa, confira as opções.

Observação

O AzCopy não calcula e armazena automaticamente o código de hash MD5 do arquivo para um arquivo maior que 256 MB. Se você quiser que o AzCopy faça isso, acrescente o --put-md5 sinalizador a cada comando de cópia. Desse modo, quando o arquivo é baixado, o AzCopy calcula um hash MD5 para dados baixados e verifica se o hash MD5 armazenado na propriedade Content-md5 do arquivo corresponde ao hash calculado.

Carregar um arquivo

Sintaxe

azcopy copy '<local-file-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-name>'

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-info=true

Você também pode carregar um arquivo usando um símbolo curinga (*) em qualquer lugar no caminho do arquivo ou nome do arquivo. Por exemplo: 'C:\myDirectory\*.txt' ou C:\my*\*.txt.

Carregar um diretório

Este exemplo copia um diretório e todos os arquivos nesse diretório para um compartilhamento de arquivos. O resultado é um diretório no compartilhamento de arquivos com o mesmo nome.

Sintaxe

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Para copiar para um diretório dentro do compartilhamento de arquivo, basta especificar o nome desse diretório na cadeia de caracteres do comando.

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Se você especificar o nome de um diretório que não existe no compartilhamento de arquivos, o AzCopy criará um diretório com esse nome.

Carregar o conteúdo de um diretório

Usando o símbolo curinga (*), você pode fazer download do conteúdo de um diretório sem copiar o diretório propriamente dito.

Sintaxe

azcopy copy '<local-directory-path>/*' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>'

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]' --preserve-permissions=true --preserve-info=true

Observação

Para carregar arquivos em todos os subdiretórios, adicione o --recursive sinalizador.

Carregar arquivos específicos

Você pode carregar arquivos específicos usando nomes de arquivo completos, nomes parciais com caracteres curinga (*) ou usando datas e horas.

Especificar vários nomes de arquivo completos

Use o comando azcopy copy com a opção --include-path. Separar nomes de arquivo individuais com um ponto-e-vírgula (;).

Sintaxe

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-path <semicolon-separated-file-list>

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --include-path 'photos;documents\myFile.txt' --preserve-permissions=true --preserve-info=true

Neste exemplo, AzCopy transfere o diretório C:\myDirectory\photos e o arquivo C:\myDirectory\documents\myFile.txt. Você precisa incluir a opção --recursive para transferir todos os arquivos no diretório C:\myDirectory\photos.

Você também pode excluir arquivos usando a opção --exclude-path. Para saber mais, confira a documentação de referência do azcopy copy.

Usar caracteres curingas

Use o comando azcopy copy com a opção --include-pattern. Especifique nomes parciais que incluam os caracteres curinga. Separe os nomes usando ponto e vírgula (;).

Sintaxe

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --include-pattern 'myFile*.txt;*.pdf*' --preserve-permissions=true --preserve-info=true

Você também pode excluir arquivos usando a opção --exclude-pattern. Para saber mais, confira a documentação de referência do azcopy copy.

As opções --include-pattern e --exclude-pattern aplicam-se somente a nomes de arquivo e não ao caminho. Se você quiser copiar todos os arquivos de texto que existem em uma árvore de diretório, use a opção --recursive para obter a árvore de diretórios inteira e, depois, use o --include-pattern e especifique *.txt para obter todos os arquivos de texto.

Carregar arquivos que foram modificados após uma determinada data e hora

Use o comando azcopy copy com a opção --include-after. Especifique uma data e hora no formato ISO 8601 (por exemplo: 2020-08-19T15:04:00Z).

Sintaxe

azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-after <Date-Time-in-ISO-8601-format>

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --include-after '2020-08-19T15:04:00Z' --preserve-permissions=true --preserve-info=true

Especificando tipos de origem e de destino ao carregar blobs

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
LocalFileSMB Carregar do sistema de arquivos local para o compartilhamento SMB no Armazenamento de Arquivos do Azure
LocalFileNFS Carregar do sistema de arquivos local (somente Linux) para o compartilhamento NFS no Armazenamento de Arquivos do Azure
PipeFile Transmitir dados de um pipe para o Armazenamento de Arquivos do Azure

Baixar arquivos

Use o comando azcopy copy para baixar arquivos, diretórios e compartilhamentos de arquivos no seu computador local.

Dica

Os exemplos nesta seção 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 ('').

Esta seção contém os seguintes exemplos:

  • Baixar um arquivo
  • Baixar um diretório
  • Baixar o conteúdo de um diretório
  • Baixar arquivos específicos

Dica

Use sinalizadores opcionais para personalizar sua operação de download. Veja alguns exemplos:

Cenário Sinalizador
Copie ACLs (listas de controle de acesso) junto com os arquivos. --preserve-permissions=[true|false]
Copie informações de propriedade SMB junto com os arquivos. --preserve-info=[true|false]
Descompacte arquivos automaticamente. --decompress

Para obter uma lista completa, confira as opções.

Observação

Se o valor da propriedade Content-md5 de um arquivo contém um hash, o AzCopy calcula um hash MD5 para dados baixados e verifica se o hash MD5 armazenado na propriedade Content-md5 do arquivo corresponde ao hash calculado. Se esses valores não corresponderem, o download falhará, a menos que você substitua esse comportamento acrescentando --check-md5=NoCheck ou --check-md5=LogOnly ao comando de cópia.

Baixar um arquivo

Sintaxe

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' '<local-file-path>'

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?[SAS]' 'C:\myDirectory\myTextFile.txt' --preserve-permissions=true --preserve-info=true

Baixar um diretório

Sintaxe

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' '<local-directory-path>' --recursive

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]' 'C:\myDirectory'  --recursive --preserve-permissions=true --preserve-info=true

Este exemplo cria um diretório chamado C:\myDirectory\myFileShareDirectory que contém todos os arquivos baixados.

Baixar o conteúdo de um diretório

Você pode fazer download do conteúdo de um diretório sem copiar o próprio diretório usando o símbolo curinga (*).

Sintaxe

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/*<SAS-token>' '<local-directory-path>/'

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory/*?[SAS]' 'C:\myDirectory' --preserve-permissions=true --preserve-info=true

Observação

Para baixar arquivos em todos os subdiretórios, adicione o --recursive sinalizador.

Baixar arquivos específicos

Você pode baixar arquivos específicos usando nomes de arquivo completos, nomes parciais com caracteres curinga (*) ou usando datas e horas.

Especificar vários nomes de arquivo completos

Use o comando azcopy copy com a opção --include-path. Separar nomes de arquivo individuais com um ponto-e-vírgula (;).

Sintaxe

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-path <semicolon-separated-file-list>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory?[SAS]' 'C:\myDirectory' --include-path 'photos;documents\myFile.txt' --recursive --preserve-permissions=true --preserve-info=true

Neste exemplo, AzCopy transfere o diretório https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos e o arquivo https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/documents/myFile.txt. Inclua a opção --recursive para transferir todos os arquivos no diretório https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos.

Você também pode excluir arquivos usando a opção --exclude-path. Para saber mais, confira a documentação de referência do azcopy copy.

Usar caracteres curingas

Use o comando azcopy copy com a opção --include-pattern. Especifique nomes parciais que incluam os caracteres curinga. Separe os nomes usando ponto e vírgula (;).

Sintaxe

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myDirectory?[SAS]' 'C:\myDirectory' --include-pattern 'myFile*.txt;*.pdf*' --preserve-permissions=true --preserve-info=true

Você também pode excluir arquivos usando a opção --exclude-pattern. Para saber mais, confira a documentação de referência do azcopy copy.

As opções --include-pattern e --exclude-pattern aplicam-se somente a nomes de arquivo e não ao caminho. Se você quiser copiar todos os arquivos de texto que existem em uma árvore de diretório, use a opção --recursive para obter a árvore de diretórios inteira e, depois, use o --include-pattern e especifique *.txt para obter todos os arquivos de texto.

Baixar arquivos que foram modificados após uma determinada data e hora

Use o comando azcopy copy com a opção --include-after. Especifique uma data e hora no formato ISO-8601 (por exemplo: 2020-08-19T15:04:00Z).

Sintaxe

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name>/*<SAS-token>' '<local-directory-path>' --include-after <Date-Time-in-ISO-8601-format>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/*?[SAS]' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z' --preserve-permissions=true --preserve-info=true

Para referência detalhada, confira a documentação de referência do azcopy copy.

Baixar de um instantâneo de compartilhamento

Você pode baixar uma versão específica de um arquivo ou diretório referenciando o valor DateTime de um instantâneo de compartilhamento. Para saber mais sobre instantâneos de compartilhamento, confira Visão geral dos instantâneos de compartilhamento dos Arquivos do Azure.

Sintaxe

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path-or-directory-name><SAS-token>&sharesnapshot=<DateTime-of-snapshot>' '<local-file-or-directory-path>'

Exemplo (Baixar um arquivo)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt' --preserve-permissions=true --preserve-info=true

Exemplo (Baixar um diretório)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory' --recursive --preserve-permissions=true --preserve-info=true

Especificando tipos de origem e destino ao baixar arquivos

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
FileSMBLocal Baixar do compartilhamento SMB no Armazenamento de Arquivos do Azure para o sistema de arquivos local
FileNFSLocal Baixar do compartilhamento NFS no Armazenamento de Arquivos do Azure para o sistema de arquivos local (somente Linux)
FileSMBLocal Baixar do compartilhamento SMB para o sistema de arquivos local
FilePipe Transmitir dados do Armazenamento de Arquivos do Azure para um pipe

Copiar Arquivos entre contas de armazenamento

Você pode usar o AzCopy para copiar arquivos para outras contas de armazenamento. A operação de cópia é síncrona para que todos os arquivos sejam copiados quando o comando retornar.

O AzCopy usa APIs de servidor para servidor, portanto, os dados são copiados diretamente entre os servidores de armazenamento. Você pode aumentar a taxa de transferência dessas operações definindo o valor da variável de ambiente AZCOPY_CONCURRENCY_VALUE. Para saber mais, consulte Aumentar a Simultaneidade.

Você também pode copiar versões específicas de um arquivo referenciando o valor DateTime de um instantâneo de compartilhamento. Para saber mais sobre instantâneos de compartilhamento, confira Visão geral dos instantâneos de compartilhamento dos Arquivos do Azure.

Dica

Os exemplos nesta seção 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 ('').

Esta seção contém os seguintes exemplos:

  • Copiar um arquivo para outra conta de armazenamento
  • Copiar um diretório para outra conta de armazenamento
  • Copiar um compartilhamento de arquivo para outra conta de armazenamento
  • Copiar todos os compartilhamentos de arquivos, diretórios e arquivos para outra conta de armazenamento

Dica

Você pode ajustar sua operação de cópia usando sinalizadores opcionais. Alguns exemplos são mostrados a seguir.

Cenário Sinalizador
Copie ACLs (listas de controle de acesso) junto com os arquivos. --preserve-permissions=[true|false]
Copie informações de propriedade SMB junto com os arquivos. --preserve-info=[true|false]

Para obter uma lista completa, confira as opções.

Copiar um arquivo para outra conta de armazenamento

Sintaxe

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>'

Exemplo

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-info=true

Exemplo (instantâneo de compartilhamento)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-info=true

Copiar um diretório para outra conta de armazenamento

Sintaxe

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Exemplo

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Exemplo (instantâneo de compartilhamento)

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Copiar um compartilhamento de arquivo para outra conta de armazenamento

Sintaxe

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Exemplo

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --preserve-permissions=true --preserve-info=true

Exemplo (instantâneo de compartilhamento)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Copiar todos os compartilhamentos de arquivos, diretórios e arquivos para outra conta de armazenamento

Sintaxe

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive'

Exemplo

azcopy copy 'https://mysourceaccount.file.core.windows.net?[SAS]' 'https://mydestinationaccount.file.core.windows.net?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Exemplo (instantâneo de compartilhamento)

azcopy copy 'https://mysourceaccount.file.core.windows.net?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Especificando tipos de origem e de destino ao copiar arquivos

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
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)
FileSMBFileSMB Copiar entre dois compartilhamentos SMB no Armazenamento de Arquivos do Azure
FileNFSFileNFS Copiar entre dois compartilhamentos NFS no Armazenamento de Arquivos do Azure
FileNFSFileSMB Copiar do Armazenamento de Arquivos do Azure NFS para o Armazenamento de Arquivos do Azure SMB
FileSMBFileNFS Copiar do Armazenamento de Arquivos SMB do Azure para o Armazenamento de Arquivos NFS do Azure

Sincronizar arquivos

Você pode sincronizar o conteúdo de um sistema de arquivos local com um compartilhamento de arquivos ou sincronizar o conteúdo de um compartilhamento de arquivos com outro compartilhamento de arquivos. Você também pode sincronizar o conteúdo de um diretório em um compartilhamento de arquivo com o conteúdo de um diretório localizado em outro compartilhamento de arquivo. A sincronização é de via única. Em outras palavras, você escolhe qual desses dois pontos de extremidade é a origem e qual deles é o destino. A sincronização também usa APIs de servidor para servidor.

Aviso

O AzCopy sync tem suporte, mas não é totalmente recomendado para Arquivos do Azure. A sincronização do AzCopy dá suporte a até 10 milhões de arquivos por trabalho do AzCopy, e parte da fidelidade dos arquivos pode ser perdida, pois o AzCopy usa as APIs REST dos Arquivos do Azure para copiar conteúdo para o compartilhamento de Arquivos do Azure. Para saber mais, confira Migrar para compartilhamentos de arquivo do Azure.

Diretrizes

Por padrão, o comando sync compara os nomes de arquivos e os carimbos de data/hora da última modificação. Você pode substituir esse comportamento para usar hashes MD5 em vez de carimbos de data/hora da última modificação usando o sinalizador --compare-hash. Defina o sinalizador opcional --delete-destination como um valor de true ou prompt para excluir arquivos no diretório de destino se esses arquivos não existirem mais no diretório de origem.

  • Se você definir o sinalizador --delete-destination como true, o AzCopy excluirá os arquivos sem fornecer um prompt. Se você quiser que um prompt apareça antes de AzCopy excluir um arquivo, defina o sinalizador --delete-destination como prompt.

  • Se você planeja definir o sinalizador --delete-destination como prompt ou false, considere usar o comando copy em vez do comando sync e definir o parâmetro --overwrite como ifSourceNewer. O comando copy consome menos memória e gera menos custos de cobrança porque uma operação de cópia não precisa indexar a origem nem o destino antes de mover arquivos.

  • Caso você não pretenda usar o sinalizador --compare-hash, o computador no qual você executa o comando sync deve ter um relógio do sistema preciso, porque as horas da última modificação são críticas para determinar se um arquivo deve ser transferido. Se o sistema tiver uma distorção significativa do relógio, evite modificar arquivos no destino em uma hora muito próxima da qual você planeja executar um comando sync.

  • O AzCopy usa as APIs de servidor para servidor para sincronizar dados entre contas de armazenamento. Isso significa que os dados são copiados diretamente entre 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 VM (Máquina Virtual), verifique se a VM tem núcleos/memória suficientes para tratar a carga.

Dica

Você pode ajustar sua operação de sincronização usando sinalizadores opcionais. Alguns exemplos são mostrados a seguir.

Cenário Sinalizador
Copie ACLs (listas de controle de acesso) junto com os arquivos. --preserve-permissions=[true|false]
Copie informações de propriedade SMB junto com os arquivos. --preserve-info=[true|false]
Excluir arquivos com base em um padrão. --exclude-path
Especifique o nível de detalhamento que você deseja nas entradas de log relacionadas à sincronização. --log-level=[WARNING|ERROR|INFO|NONE]

Para obter uma lista completa, confira as opções.

Os exemplos nesta seção 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 ('').

Atualizar um compartilhamento de arquivo com alterações em um sistema de arquivos local

Nesse caso, o compartilhamento de arquivo é o destino e o sistema de arquivos local é a origem.

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 sync '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Exemplo

azcopy sync 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileShare?[SAS]' --recursive

Atualizar um sistema de arquivos local com alterações em um compartilhamento de arquivo

Nesse caso, o sistema de arquivos local é o destino e o compartilhamento de arquivo é a origem.

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 sync 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'C:\myDirectory' --recursive

Exemplo

azcopy sync 'https://mystorageaccount.file.core.windows.net/myfileShare?[SAS]' 'C:\myDirectory' --recursive

Atualizar um compartilhamento de arquivos com alterações de outro compartilhamento de arquivos

O primeiro compartilhamento de arquivo neste comando é a origem. O comando copia as alterações desse compartilhamento de arquivo de origem. O segundo compartilhamento de arquivo é o destino.

Sintaxe

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Exemplo

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?[SAS]' 'https://mydestinationaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Atualizar um diretório com alterações em um diretório em outro compartilhamento de arquivo

O primeiro diretório que aparece nesse comando é a origem. O segundo é o destino.

Sintaxe

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' --recursive

Exemplo

azcopy sync 'https://mysourceaccount.file.core.windows.net/myFileShare/myDirectory?[SAS]' 'https://mydestinationaccount.file.core.windows.net/myFileShare/myDirectory?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Atualizar um compartilhamento de arquivo para corresponder ao conteúdo de um instantâneo de compartilhamento

O primeiro compartilhamento de arquivo que aparece nesse comando é a origem. No final do URI, acrescente a cadeia de caracteres &sharesnapshot= seguida pelo valor DateTime do instantâneo.

Sintaxe

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>&sharesnapsot<snapshot-ID>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Exemplo

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Para saber mais sobre instantâneos de compartilhamento, confira Visão geral dos instantâneos de compartilhamento dos Arquivos do Azure.

Propriedades e permissões a serem preservadas

Dica

Ao baixar arquivos para um sistema Linux local, você precisará de privilégios elevados se o proprietário ou grupo especificado for diferente daquele do usuário atual. Para alterar a propriedade ou o grupo de arquivos baixados, execute azcopy com sudo ou como o usuário raiz.

Tipo Propriedades (--preserve-info) Permissões (--preserve-permissions)
SMB dos Arquivos do Azure NTFSFileAttributes (ReadOn ReadOnly, Hidden, System, Directory, Archive, None, Temporary, Offline, NotContentIndexed, NoScrubData) (x-ms-file-attributes)
CreationTime (x-ms-file-creation-time)
LastWriteTime (x-ms-file-last-write-time)
ACLs (x-ms-file-permission)
NFS dos Arquivos do Azure TempoDeCriação (x-ms-file-creation-time)
LastWriteTime (x-ms-file-last-write-time)
Proprietário (x-ms-owner)
Grupo (x-ms-group)
Modo de Arquivo (x-ms-mode)

Próximas etapas

Encontre mais exemplos em qualquer um destes artigos:

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