Carregar arquivos no Armazenamento de Blobs do Azure usando o AzCopy

Você pode carregar arquivos e diretórios no Armazenamento de Blobs usando o utilitário de linha de comando AzCopy v10.

Para ver exemplos de outros tipos de tarefas, como baixar blobs, 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>'.

Criar um contêiner

Você pode usar o comando azcopy make para criar um contêiner.

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

Exemplo

azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'

Exemplo (ponto de extremidade do Data Lake Storage)

azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'

Para obter documentos de referência detalhados, confira azcopy make.

Fazer upload de um arquivo

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

Exemplo

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

Exemplo (ponto de extremidade do Data Lake Storage)

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

Você também pode carregar um arquivo usando um símbolo curinga (*) em qualquer lugar no caminho do arquivo ou nome do arquivo. Por exemplo: 'C:\myDirectory\*.txt' ou C:\my*\*.txt.

Carregar um diretório

Carregue um diretório usando o comando azcopy copy.

Este exemplo copia um diretório (e todos os arquivos nesse diretório) para um contêiner de blob. O resultado é um diretório no contêiner com o mesmo nome.

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

Exemplo

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

Exemplo (ponto de extremidade do Data Lake Storage)

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

Para copiar para um diretório dentro do contêiner, basta especificar o nome desse diretório na cadeia de caracteres do comando.

Exemplo

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

Exemplo (ponto de extremidade do Data Lake Storage)

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

Se você especificar o nome de um diretório que não existe no contêiner, o AzCopy criará um diretório com esse nome.

Carregar conteúdo do diretório

Carregue o conteúdo de um diretório usando o comando azcopy copy. Use o símbolo curinga (*) para carregar o conteúdo sem copiar o diretório recipiente propriamente dito.

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

Exemplo

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

Exemplo (ponto de extremidade do Data Lake Storage)

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

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

Carregar arquivos específicos

Você pode carregar arquivos 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 arquivo completos

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

Sintaxe

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

Exemplo

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

Exemplo (ponto de extremidade do Data Lake Storage)

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

Neste exemplo, AzCopy transfere o diretório C:\myDirectory\photos e o arquivo C:\myDirectory\documents\myFile.txt. Inclua a opção --recursive para transferir todos os arquivos no diretório C:\myDirectory\photos.

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

Exemplo

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

Exemplo (ponto de extremidade do Data Lake Storage)

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

Você também pode excluir arquivos 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 arquivo e não ao caminho. Se você quiser copiar todos os arquivos de texto 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.

Carregar arquivos 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 carregam arquivos que foram modificados na data especificada ou após.

Sintaxe

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

Exemplo

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

Exemplo (ponto de extremidade do Data Lake Storage)

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

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

Carregar com marcas de índice

Você pode carregar um arquivo e adicionar marcas de índice de blob ao blob de destino.

Se você estiver usando a autorização do Microsoft Entra, sua entidade de segurança precisará receber a função de Proprietário de Dados do Storage Blob ou receber a permissão para a operação do provedor de recursos do AzureMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write por meio de uma função personalizada do Azure. Se você estiver usando um token SAS (Assinatura de Acesso Compartilhado), esse token precisará fornecer acesso às marcas do blob por meio da permissão SAS t.

Para adicionar marcas, use a opção --blob-tags junto com um par chave-valor codificado por URL. Por exemplo, para adicionar a chave my tag e um valor my tag value, você adicionaria --blob-tags='my%20tag=my%20tag%20value' ao parâmetro de destino.

Separe várias marcas de índice usando um e comercial (&). Por exemplo, se você quiser adicionar uma chave my second tag e um valor my second tag value, a cadeia de caracteres de opção completa será --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'.

Os exemplos a seguir mostram como usar a opção --blob-tags.

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

Carregar um arquivo

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Carregar um diretório

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Carregar conteúdo do diretório

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Observação

Se você especificar um diretório para a origem, todos os blobs copiados para o destino terão as mesmas marcas que você especificar no comando.

Carregar com sinalizadores opcionais

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

Cenário Sinalizador
Carregue arquivos como blobs de acréscimo ou blobs de páginas. --blob-type=[BlockBlob|PageBlob|AppendBlob]
Carregue para uma camada de acesso específica (como a camada de arquivo). --block-blob-tier=[None|Hot|Cool|Archive]

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: