Baixar blobs do Armazenamento de Blobs do Azure usando o AzCopy

Você pode baixar blobs e diretórios do Armazenamento de Blobs usando o utilitário de linha de comando AzCopy v10.

Para ver exemplos de outros tipos de tarefas, como carregar arquivos, sincronizar com o Armazenamento de Blobs ou copiar blobs entre contas, confira os links apresentados na seção Próximas etapas deste artigo.

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 neste artigo pressupõem que você forneceu credenciais de autorização usando o Microsoft Entra ID.

Se você preferir usar um token SAS para autorizar o acesso a dados de blob, poderá acrescentar esse token à URL do recurso em cada comando AzCopy. Por exemplo: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Baixar um blob

Baixe um blob usando o comando azcopy copy.

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 copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' '<local-file-path>'

Exemplo

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'

Exemplo (ponto de extremidade do Data Lake Storage)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'

Observação

Se o valor da propriedade Content-md5 de um blob 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 blob 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 diretório

Baixe um diretório usando o comando azcopy copy.

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 copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' '<local-directory-path>' --recursive

Exemplo

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory'  --recursive

Exemplo (ponto de extremidade do Data Lake Storage)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory'  --recursive

Este exemplo resulta em um diretório chamado C:\myDirectory\myBlobDirectory, que contém todos os blobs baixados.

Baixar conteúdo do 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 (*).

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 ('').

Observação

Atualmente, esse cenário é compatível apenas com contas que não têm um namespace hierárquico.

Sintaxe

azcopy copy 'https://<storage-account-name>.blob.core.windows.net/<container-name>/*' '<local-directory-path>/'

Exemplo

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory/*' 'C:\myDirectory'

Acrescente o sinalizador --recursive para baixar arquivos em todos os subdiretórios.

Baixar blobs específicos

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

Dica

Esses exemplos 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 ('').

Especificar vários nomes de blob completos

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

Sintaxe

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

Exemplo

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-path 'photos;documents\myFile.txt' --recursive

Exemplo (ponto de extremidade do Data Lake Storage)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-path 'photos;documents\myFile.txt'--recursive

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

Você também pode excluir blobs 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>.<blob or dfs>.core.windows.net/<container-or-directory-name>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

Exemplo

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-pattern 'myFile*.txt;*.pdf*'

Exemplo (namespace hierárquico)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-pattern 'myFile*.txt;*.pdf*'

Você também pode excluir blobs 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 blob e não ao caminho. Se você quiser copiar todos os arquivos de texto (blobs) 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 blobs que foram modificados antes ou depois de uma determinada data e hora

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

Os exemplos a seguir baixam arquivos que foram modificados na data especificada ou após.

Sintaxe

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

Exemplo

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory'  --include-after '2020-08-19T15:04:00Z'

Exemplo (ponto de extremidade do Data Lake Storage)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory'  --include-after '2020-08-19T15:04:00Z'

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

Baixar versões anteriores de um blob

Se você tiver habilitado o controle de versão de blob, poderá baixar uma ou mais versões anteriores de um blob.

Primeiro, crie um arquivo de texto que contenha uma lista de IDs de versão. Cada ID de versão precisa aparecer em uma linha separada. Por exemplo:

2020-08-17T05:50:34.2199403Z
2020-08-17T05:50:34.5041365Z
2020-08-17T05:50:36.7607103Z

Use o comando azcopy copy com a opção --list-of-versions. Especifique a localização do arquivo de texto que contém a lista de versões (por exemplo: D:\\list-of-versions.txt).

Baixar um instantâneo de blob

Você pode baixar um instantâneo de blob referenciando o valor DateTime de um instantâneo de blob.

Sintaxe

azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>?sharesnapshot=<DateTime-of-snapshot>' '<local-file-path>'

Exemplo

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'

Exemplo (ponto de extremidade do Data Lake Storage)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'

Observação

Se você estiver usando um token SAS para autorizar o acesso a dados de blob, acrescente o DateTime do instantâneo após o token SAS. Por exemplo: 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z'.

Baixar com sinalizadores opcionais

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

Cenário Sinalizador
Descompacte arquivos automaticamente. --decompress
Especifique o nível de detalhamento que você deseja nas entradas de log relacionadas à cópia. --log-level=[WARNING|ERROR|INFO|NONE]
Especifique se e como substituir os arquivos e blobs conflitantes no destino. --overwrite=[true|false|ifSourceNewer|prompt]

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

Próximas etapas

Encontre mais exemplos nestes artigos:

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