Baixar blobs do Armazenamento de Blobs do Azure usando o AzCopy
Artigo
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>'.
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>'
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.
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
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.
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>
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>
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>
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>'
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.
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.
Saiba como criar e utilizar uma CDN (Rede de Distribuição de Conteúdo) no Azure para hospedar ativos comumente usados, como imagens em um site. O módulo aborda a CDN do Azure e usa o Armazenamento de Blobs como um modelo de armazenamento subjacente para dados estáveis ou não voláteis.