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.
Baixar conteúdo estático do site
O AzCopy não dá suporte ao download de dados de sites estáticos hospedados no Armazenamento do Microsoft Azure por meio do ponto de extremidade público, como https://mystorageaccount.z12.web.core.windows.net
. Em vez disso, use o contêiner $web
no ponto de extremidade do blob para baixar arquivos do seu site estático.
azcopy copy 'https://mystorageaccount.blob.core.windows.net/$web/*' 'C:\myDirectory' --recursive
Próximas etapas
Encontre mais exemplos nestes artigos:
- Exemplos: Carregar
- Exemplos: copiar entre contas
- Exemplos: Sincronizar
- Exemplos: usar buckets do Amazon S3
- Exemplos: Google Cloud Storage
- Exemplos: Arquivos do Azure
- Tutorial: Migrar os dados locais para o armazenamento em nuvem usando o AzCopy
Consulte estes artigos para definir configurações, otimizar o desempenho e solucionar problemas: