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 Ficheiros do Azure 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 crítica em que deixa de criar automaticamente partilhas de ficheiros para transferências envolvendo Ficheiros 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

Utilize o comando azcopy copy com a opção --include-path. 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 a documentação de referência de azcopy copy.

Usar caracteres curinga

Use o comando azcopy copy com a opção --include-pattern. 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 a documentação de referência de azcopy copy.

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 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 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 DePara Description
LocalFileSMB Carregar do sistema de ficheiros local para a partilha SMB no Armazenamento de Ficheiros do Azure
LocalFileNFS Carregar do sistema de ficheiros local (apenas Linux) para uma partilha NFS no Azure File Storage
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 utilizando o caractere 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

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 a documentação de referência azcopy copy.

Usar caracteres curinga

Utilize o comando azcopy copy com a opção --include-pattern. 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 a documentação de referência azcopy copy.

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

Utilize 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 obter uma referência detalhada, consulte a documentação de referência do azcopy copy.

Download a partir de um instantâneo de partilha

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 DePara Description
FileSMBLocal Baixar do compartilhamento SMB no Armazenamento de Arquivos do Azure para o sistema de arquivos local
FileNFSLocal Transferir da partilha de ficheiros NFS no Azure File Storage para o sistema de ficheiros local (apenas Linux)
FileSMBLocal Download da partilha SMB para o sistema de ficheiros 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 Concorrência.

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 DePara 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 Ficheiros do Azure Storage SMB
FileSMBFileNFS Copiar do Azure File Storage SMB para o Ficheiros do Azure 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 utiliza APIs servidor-a-servidor.

Aviso

A sincronização do AzCopy é suportada, mas não totalmente recomendada para os Arquivos do Azure. O AzCopy sync suporta até 10 milhões de ficheiros por trabalho do AzCopy, e alguma fidelidade dos ficheiros pode ser perdida, pois o AzCopy utiliza as APIs REST do Ficheiros do Azure para copiar conteúdo para o seu share Ficheiros do Azure. Para saber mais, consulte Migrar para partilhas de ficheiros SMB Azure. A versão atual do AzCopy não suporta sincronizar Ficheiros do Azure com armazenamento Azure Blob.

Diretrizes

Por padrão, o comando sync compara nomes de ficheiros 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 opcional --delete-destination para um valor de true ou prompt para eliminar ficheiros no diretório de destino, caso esses ficheiros já não existam no diretório de 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|INFORMAÇÃO|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 uma partilha de ficheiros de forma a corresponder ao conteúdo de uma instantâneo de partilha.

O primeiro compartilhamento de arquivos que aparece neste comando é a origem. No final do URI, acrescente a sequência de texto &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)
Ficheiros do Azure 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 (permissão de ficheiro x-ms)
Ficheiros do Azure NFS TempoDeCriação (x-ms-file-creation-time)
DataÚltimaEscrita (x-ms-file-last-write-time)
Proprietário (x-ms-owner)
Grupo (x-ms-group)
FileMode (x-ms-mode)

Próximos passos

Encontre mais exemplos em qualquer um destes artigos:

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