Partilhar via


Transferir dados com o AzCopy e armazenamento de ficheiros

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 Arquivos do Azure.

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.

Nota

Os exemplos neste artigo mostram o uso de um token SAS para autorizar o acesso. No entanto, para comandos destinados a arquivos e diretórios, agora você pode fornecer credenciais de autorização usando o ID do Microsoft Entra e omitir o token SAS desses comandos. Você ainda precisa usar um token SAS em qualquer comando direcionado 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 Autorizar AzCopy

Gorjeta

Ao usar o Azure Files NFS, você deve especificar a --from-to opção CLI com uma das seguintes opções suportadas: FileNFSLocal, LocalFileNFSou FileNFSFileNFS em seus comandos.

Os cenários de upload e download que usam LocalFileNFS e FileNFSLocal são suportados apenas em ambientes Linux locais. Essas operações não são suportadas no Windows ou macOS. Por outro lado, o cenário FileNFSFileNFS, que usa a API de cópia de servidor para servidor, é suportado no Windows, Linux e macOS. Pode executar os comandos associados a partir de qualquer uma destas plataformas.

Criar partilhas de ficheiros

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

Nota

A versão 10.30.0 do AzCopy introduz uma alteração de quebra em que não cria mais automaticamente compartilhamentos de arquivos para transferências envolvendo Arquivos do Azure usando protocolos NFS ou SMB.

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 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 documentos de referência detalhados, consulte azcopy make.

Carregar ficheiros

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

Gorjeta

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

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

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

Gorjeta

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

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

Para obter uma lista completa, consulte opções.

Nota

O AzCopy não calcula e armazena automaticamente o código hash MD5 do ficheiro para um ficheiro com mais de 256 MB. Se você quiser que o AzCopy faça isso, acrescente o sinalizador --put-md5 a cada comando copy. Assim, quando o ficheiro é transferido, o AzCopy calculará um hash MD5 para os dados transferidos e verificará se o hash MD5 armazenado na propriedade Content-md5 do ficheiro corresponde ao hash calculado.

Carregar um ficheiro

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 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 arquivos, basta especificar o nome desse diretório na cadeia de comandos.

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 novo diretório com esse nome.

Carregar o conteúdo de um diretório

Você pode carregar o conteúdo de um diretório sem copiar o próprio diretório que contém usando o símbolo curinga (*).

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

Nota

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

Carregar ficheiros 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 --include-path opção. Separe nomes de arquivo individuais com 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 C:\myDirectory\photos diretório e o C:\myDirectory\documents\myFile.txt arquivo. Você precisa incluir a --recursive opção para transferir todos os arquivos no C:\myDirectory\photos diretório.

Você também pode excluir arquivos usando a --exclude-path opção. Para saber mais, consulte azcopy copy reference docs.

Usar caracteres curinga

Use o comando azcopy copy com a --include-pattern opção. Especifique nomes parciais que incluam os caracteres curinga. Separe os nomes usando 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-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 --exclude-pattern opção. Para saber mais, consulte azcopy copy reference docs.

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

Carregar ficheiros que foram modificados após uma data e hora

Use o comando azcopy copy com a --include-after opção. 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 destino ao carregar blobs

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

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 ficheiros local (apenas Linux) para a partilha NFS no Armazenamento de Ficheiros do Azure
PipeFile Transmitir dados de um pipe para o Armazenamento de Arquivos do Azure

Transferir ficheiros

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

Gorjeta

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

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

  • Transferir um ficheiro
  • Baixar um diretório
  • Descarregar o conteúdo de um diretório
  • Download de arquivos específicos

Gorjeta

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

Cenário Sinalizador
Copie listas de controle de acesso (ACLs) junto com os arquivos. --preserve-permissions=[verdadeiro|falso]
Copie as informações da propriedade SMB junto com os arquivos. --preserve-info=[verdadeiro|falso]
Descomprima automaticamente os ficheiros. --descomprimir

Para obter uma lista completa, consulte opções.

Nota

Se o valor da propriedade Content-md5 de um ficheiro tiver um hash, o AzCopy calculará um hash MD5 para os dados transferidos e verificará se o hash MD5 armazenado na propriedade Content-md5 do ficheiro corresponde ao hash calculado. Se esses valores não corresponderem, o download falhará, a menos que você substitua esse comportamento anexando --check-md5=NoCheck ou --check-md5=LogOnly ao comando copy.

Transferir um ficheiro

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.

Descarregar o conteúdo de um diretório

Pode transferir o conteúdo de um diretório sem copiar o próprio diretório com o símbolo de caráter universal (*).

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

Nota

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

Download de 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 --include-path opção. Separe nomes de arquivo individuais com 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 https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos diretório e o https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/documents/myFile.txt arquivo. Inclua a --recursive opção de transferir todos os arquivos no https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos diretório.

Você também pode excluir arquivos usando a --exclude-path opção. Para saber mais, consulte azcopy copy reference docs.

Usar caracteres curinga

Use o comando azcopy copy com a --include-pattern opção. Especifique nomes parciais que incluam os caracteres curinga. Separe os nomes usando 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-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 --exclude-pattern opção. Para saber mais, consulte azcopy copy reference docs.

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

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

Use o comando azcopy copy com a --include-after opção. 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 obter uma referência detalhada, consulte os documentos de referência azcopy copy .

Download a partir de um instantâneo de compartilhamento

Você pode baixar uma versão específica de um arquivo ou diretório fazendo referência ao valor DateTime de um instantâneo de compartilhamento. Para saber mais sobre instantâneos de compartilhamento, consulte Visão geral de instantâneos de compartilhamento para 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

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

Valor FromTo Description
FileSMBLocal Baixar do compartilhamento SMB no Armazenamento de Arquivos do Azure para o sistema de arquivos local
FileNFSLocal Transferir da partilha NFS no Armazenamento de Ficheiros do Azure para o sistema de ficheiros local (apenas Linux)
FileSMBLocal Download do compartilhamento SMB para o sistema de arquivos local
FilePipe Transmitir dados do Armazenamento de Arquivos do Azure para um pipe

Copiar ficheiros 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, portanto, todos os arquivos são copiados quando o comando retorna.

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 AZCOPY_CONCURRENCY_VALUE ambiente. Para saber mais, consulte Aumentar simultaneidade.

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

Gorjeta

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

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

  • Copiar um ficheiro para outra conta de armazenamento
  • Copiar um diretório para outra conta de armazenamento
  • Copiar um compartilhamento de arquivos para outra conta de armazenamento
  • Copiar todas as partilhas de ficheiros, diretórios e ficheiros para outra conta de armazenamento

Gorjeta

Você pode ajustar sua operação de cópia usando sinalizadores opcionais. Aqui estão alguns exemplos.

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

Para obter uma lista completa, consulte opções.

Copiar um ficheiro 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 (compartilhar instantâneo)

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 (compartilhar instantâneo)

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 arquivos 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 (compartilhar instantâneo)

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 todas as partilhas de ficheiros, diretórios e ficheiros 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 (compartilhar instantâneo)

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 destino ao copiar arquivos

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

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 Azure File Storage NFS para o Azure Files Storage SMB
FileSMBFileNFS Copiar do Azure File Storage SMB para o Azure Files Storage NFS

Sincronizar ficheiros

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 arquivos com o conteúdo de um diretório localizado em outro compartilhamento de arquivos. 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.

Aviso

A sincronização do AzCopy é suportada, mas não totalmente recomendada para os Arquivos do Azure. A sincronização do AzCopy dá suporte a até 10 milhões de ficheiros por tarefa do AzCopy e alguma fidelidade de ficheiro pode ser perdida, pois o AzCopy usa as APIs REST do Azure Files para copiar conteúdo para a sua partilha de Ficheiros do Azure. Para saber mais, consulte Migrar para compartilhamentos de arquivos do Azure.

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 --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-destination sinalizador como true, 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 como prompt.

  • Se você planeja definir o --delete-destination sinalizador como prompt ou false, considere usar o comando copy em vez do comando sync e defina o --overwrite parâmetro como ifSourceNewer. 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-hash sinalizador, 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.

Gorjeta

Você pode ajustar sua operação de sincronização usando sinalizadores opcionais. Aqui estão alguns exemplos.

Cenário Sinalizador
Copie listas de controle de acesso (ACLs) junto com os arquivos. --preserve-permissions=[verdadeiro|falso]
Copie as informações da propriedade SMB junto com os arquivos. --preserve-info=[verdadeiro|falso]
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, consulte opções.

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

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

Nesse caso, o compartilhamento de arquivos é o destino e o sistema de arquivos 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 com 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 arquivos

Nesse caso, o sistema de arquivos local é o destino e o compartilhamento de arquivos é 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 com 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

A primeira partilha de ficheiros neste comando é a origem. O comando copia as alterações desse compartilhamento de arquivos de origem. O segundo compartilhamento de arquivos é 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 arquivos

O primeiro diretório que aparece neste comando é o source. 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 arquivos para corresponder ao conteúdo de um instantâneo de compartilhamento

O primeiro compartilhamento de arquivos que aparece neste 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, consulte Visão geral de instantâneos de compartilhamento para Arquivos do Azure.

Propriedades e permissões a serem preservadas

Gorjeta

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

Type Propriedades (--preserve-info) Permissões (--preserve-permissions)
Azure Files SMB NTFSFileAttributes (SomenteLeitura, Oculto, Sistema, Diretório, Arquivo, Nenhum, Temporário, Offline, NãoIndexado, SemDadosParaLimpeza) (x-ms-file-attributes)
CreationTime (x-ms-file-creation-time)
LastWriteTime (x-ms-file-last-write-time)
ACLs (x-ms-file-permission)
Azure Files NFS CreationTime (x-ms-file-creation-time)
LastWriteTime (x-ms-file-last-write-time)
Proprietário (x-ms-owner)
Grupo (x-ms-group)
FileMode (modo x-ms)

Próximos passos

Encontre mais exemplos em qualquer um destes artigos:

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