Como transferir dados para um storage account utilizando o AzCopy

AzCopy é um utilitário de linha de comando que pode ser usado para transferir dados para dentro ou para fora da conta de armazenamento (blobs ou arquivos). Isso pode ser usado em sistemas Windows, Linux ou macOS. O mesmo utilitário também pode ser usado para migrar dados de uma conta de armazenamento para outra.

Criar Storage Account

Um storage account do Azure contém todos os seus objetos de dados do Armazenamento do Azure: blobs, files, queues, tables e disks. A conta de armazenamento fornece um namespace exclusivo para seus dados de armazenamento do Azure que pode ser acessado de qualquer lugar do mundo por HTTP ou HTTPS. Os dados em sua conta de armazenamento do Azure são duráveis e altamente disponíveis, seguros e extremamente escalonáveis.

01 – Execute o script abaixo para criar o storage account do tipo StorageV2 com replicação Locally-redudant storage (LRS).

# Criar o Resource Group
$resourceGroup = “RG-AZCopy”
$location = “westus”
New-AzResourceGroup -Name $resourceGroup -Location $location

# Criar Storage Account
New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name stoazcopy `
-Location $location `
-SkuName Standard_LRS `
-Kind StorageV2

Como podemos observar na imagem abaixo o storage account foi criado com sucesso.

02 –  O próximo passo é criar um File Share no storage account.

$stoazcopy = Get-AzStorageAccount -ResourceGroupName RG-AZCopy -Name stoazcopy

New-AzStorageShare -Context $stoazcopy.Context -Name fileazcopy

03 – Vamos criar um Container no storage account.

$stoazcopy = Get-AzStorageAccount -ResourceGroupName RG-AZCopy -Name stoazcopy

New-AzStorageContainer -Context $stoazcopy.Context -Name contazcopy

Criar shared access signature (SAS) token para o Storage Account

O token SAS permite fornecer acesso temporário a contêineres e blobs em uma conta de armazenamento.

Vamos criar o token SAS para esta nova conta de armazenamento. Uma vez feito isso, podemos usá-lo para acessar a conta de armazenamento usando o AzCopy.

04 – Faça login no portal do Azure.

05 – No portal pesquise por Storage accounts.

06 – Selecione o storage account que criamos (stoazcopy).

07 – Em Security + networking clique em Shared access signature.

08 – Na tela Shared access signature em Allowed services deixe apenas Blob e File, em Allowed rsource type marque Service, Container e Object, em Allowed permissions deixe a configuração padrão selecionada, em Start and expiry date/time ajuste a data de expiração do token SAS, vamos criar um token de 7 dias, quando todas as configurações forem realizadas clique em Generate SAS and connection string.

09 – Como podemos observar o SAS token e Connection string foram criados.

10 – Copie o SAS Token.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacuptfx&se=2021-10-16T21:39:42Z&st=2021-10-11T13:39:42Z&spr=https&sig=Qmbt21s7rwbiqQfVd18%2FkVHXCxpgNNwMCIpOZes9pBc%3D

11 – Selecione o storage acccoun stoazcopy em Settings clique em Endpoints, em Endpoints podemos ver o nome File service e Blob service.

OBS: Anote essas informações porque vamos precisar para as próximas etapas.

Instale o utilitário AzCopy

12 – Podemos baixar o AzCopy no link abaixo, selecione a versão do seu sistema operacional.

https://docs.microsoft.com/pt-br/azure/storage/common/storage-use-azcopy-v10

13 – Após efetuar o download do arquivo, clique com o botão direito no arquivo e selecione Extract All.

14 – Para a opção Select a Destination and Extract Files deixa a configuração padrão e clique em Extract.

15 – Abra a pasta onde o azcopy foi extraído e copie o caminho da pasta.

16 – Clique em Start e digite cmd, em Comand Prompt clique com o botão direito do mouse e selecione Run as administrator.

17 – No Command Prompt digite o comando cd e o caminho da pasta onde o azcopy foi extraído.

Upload arquivo para File Share

Vamos fazer upload de um arquivo que criamos para o file share.

Em meu ambiente tenho uma pasta no disco C chamada temp e dentro dessa pasta tenho dois arquivos teste-pdf.pdf e teste-txt.txt, vamos fazer upload do arquivo teste-pdf.pdf.

18 – O comando abaixo copia o arquivo teste-pdf.pdf para o file share fileazcopy.

azcopy copy “C:\temp\teste-pdf.pdf” “https://stoazcopy.file.core.windows.net/fileazcopy/teste-pdf.pdf?sv=2020-08-04&ss=bf&srt=sco&sp=rwdlactfx&se=2021-10-19T21:44:02Z&st=2021-10-04T13:44:02Z&spr=https&sig=eJmyN%2BKHEniiRiEESd7PiBGMh3OPM40uVHtms8hk7Bc%3D” –preserve-smb-permissions=true –preserve-smb-info=true –recursive

Explicação do comando:

Arquivo que faremos upload = “C:\temp\teste-pdf.pdf”

File service, File Share e nome do arquivo =  https://stoazcopy.file.core.windows.net/fileazcopy/teste-pdf.pdf

SAS token =

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacuptfx&se=2021-10-16T21:39:42Z&st=2021-10-11T13:39:42Z&spr=https&sig=Qmbt21s7rwbiqQfVd18%2FkVHXCxpgNNwMCIpOZes9pBc%3D

19 – Como podemos observar foi feito o upload do arquivo teste-pdf.pdf para o File Share.

20 – Um arquivo de log da tarefa é gerado em C:\Users\adm.jadson\.azcopy.

21 – No portal do Azure pesquise por storage accounts, em seguida selecione o storage account stoazcopy, clique em File Shares selecione o File share fileazcopy e observe que foi feito o upload do arquivo teste-pdf.pdf.

Observação: Vou deletar o arquivo teste-pdf.pdf do file share para usar na próxima demonstração.

Upload conteúdo de um diretório para File Share

Usando o símbolo curinga (*), você pode fazer upload do conteúdo de um diretório sem copiar o diretório propriamente dito.

azcopy copy “C:\temp\*” “https://stoazcopy.file.core.windows.net/fileazcopy/?sv=2020-08-04&ss=bf&srt=sco&sp=rwdlactfx&se=2021-10-19T21:44:02Z&st=2021-10-04T13:44:02Z&spr=https&sig=eJmyN%2BKHEniiRiEESd7PiBGMh3OPM40uVHtms8hk7Bc%3D” –preserve-smb-permissions=true –preserve-smb-info=true –recursive

22 – Como podemos observar foi feito o upload do conteúdo da pasta temp para o file share.

23 – No portal do Azure pesquise por storage accounts, em seguida selecione o storage account stoazcopy, clique em File Shares selecione o File share fileazcopy e observe que foi feito o upload de todo o conteúdo da pasta temp.

Observação: Vou deletar os arquivos para a próxima demonstração.

Upload diretório para File Share

Vamos fazer upload do diretório temp e todo seu conteúdo para o file share.

24 – O comando abaixo copia o conteúdo do diretório temp e cria uma pasta no file share chamada temp com o conteúdo do diretório C:\temp\

azcopy copy “C:\temp” “https://stoazcopy.file.core.windows.net/fileazcopy?sv=2020-08-04&ss=bf&srt=sco&sp=rwdlactfx&se=2021-10-19T21:44:02Z&st=2021-10-04T13:44:02Z&spr=https&sig=eJmyN%2BKHEniiRiEESd7PiBGMh3OPM40uVHtms8hk7Bc%3D” –preserve-smb-permissions=true –preserve-smb-info=true –recursive

25 – Como podemos observar foi feito o upload do diretório temp e todo seu conteúdo para o file share.

26 – No portal do Azure pesquise por storage accounts, em seguida selecione o storage account stoazcopy, clique em File Shares selecione o File share fileazcopy e observe que foi feito o upload da pasta temp e todo seu conteudo.

Download arquivo

Também podemos baixar arquivos, diretórios e conteúdo de diretórios usando o AzCopy.

27 – Execute o comando abaixo para baixar o arquivo teste-pdf.pdf que está no file share (fileazcopy) para diretório C:\download_azure.

azcopy copy “https://stoazcopy.file.core.windows.net/fileazcopy/teste-pdf.pdf?sv=2020-08-04&ss=bf&srt=sco&sp=rwdlactfx&se=2021-10-19T21:44:02Z&st=2021-10-04T13:44:02Z&spr=https&sig=eJmyN%2BKHEniiRiEESd7PiBGMh3OPM40uVHtms8hk7Bc%3D” “C:\download_azure\teste-pdf.pdf” –preserve-smb-permissions=true –preserve-smb-info=true –recursive

Explicação do comando:

No exemplo acima, estou baixando um arquivo PDF chamado teste-pdf.pdf do file share fileazcopy. O caminho local do arquivo é https://stoazcopy.file.core.windows.net/fileazcopy. O token SAS  é ?sv=2020-08-04&ss=bf&srt=sco&sp=rwdlactfx&se=2021-10-19T21:44:02Z&st=2021-10-04T13:44:02Z&spr=https&sig=eJmyN%2BKHEniiRiEESd7PiBGMh3OPM40uVHtms8hk7Bc%3D, o arquivo teste-pdf.pd será baixado em C:\download_azure.

28 – Como podemos observar o arquivo teste-pdf.pdf  foi baixado em C:\download_azure.

Download diretório

29 – Também podemos baixar o diretório e seu conteúdo com o seguinte comando.

azcopy copy “https://stoazcopy.file.core.windows.net/fileazcopy/temp?sv=2020-08-04&ss=bf&srt=sco&sp=rwdlactfx&se=2021-10-19T21:44:02Z&st=2021-10-04T13:44:02Z&spr=https&sig=eJmyN%2BKHEniiRiEESd7PiBGMh3OPM40uVHtms8hk7Bc%3D” “C:\download_azure” –preserve-smb-permissions=true –preserve-smb-info=true –recursive

30 – Como podemos observar o diretório temp foi baixado em C:\download_azure.

 

Upload arquivo para container

31 – Vamos fazer upload de um arquivo para o container contazcopy.

O comando abaixo copiar o arquivo teste-pdf.pdf para o container contazcopy.

azcopy copy “C:\temp\teste-pdf.pdf” “https://stoazcopy.blob.core.windows.net/contazcopy/teste-pdf.pdf?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T17:43:35Z&st=2021-11-01T09:43:35Z&spr=https&sig=kFhvrFVpOUtIitxH7KcKxEPxK%2FlOKkmLsipluF1p0g0%3D”

Explicação do comando:

Arquivo que faremos upload = “C:\temp\teste-pdf.pdf”

Blob service, container e nome do arquivo = https://stoazcopy.blob.core.windows.net/contazcopy/teste-pdf.pdf

SAS token.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T17:43:35Z&st=2021-11-01T09:43:35Z&spr=https&sig=kFhvrFVpOUtIitxH7KcKxEPxK%2FlOKkmLsipluF1p0g0%3D

32 – Como podemos observar foi feito o upload do arquivo teste-pdf.pdf para o Container.

33 – No portal do Azure pesquise por storage accounts, em seguida selecione o storage account stoazcopy, clique em Conatiner selecione o container contazcopy e observe que foi feito o upload do arquivo teste-pdf.pdf.

Download arquivo

Vamos baixar o arquivo teste-pdf.pdf que está no container contazcopy.

34 – Execute o comando abaixo para baixar o arquivo teste-pdf.pdf que está no container contazcopy para o diretório C:\download_azure.

azcopy copy “https://stoazcopy.blob.core.windows.net/contazcopy/teste-pdf.pdf?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T17:43:35Z&st=2021-11-01T09:43:35Z&spr=https&sig=kFhvrFVpOUtIitxH7KcKxEPxK%2FlOKkmLsipluF1p0g0%3D” “C:\download_azure\teste-pdf.pdf”

Explicação do comando:

No exemplo acima, estou baixando um arquivo PDF chamado teste-pdf.pdf do container contazcopy. O caminho local do arquivo é https://stoazcopy.file.core.windows.net/fileazcopy. O token SAS  é ?sv=2020-08-04&ss=bf&srt=sco&sp=rwdlactfx&se=2021-10-19T21:44:02Z&st=2021-10-04T13:44:02Z&spr=https&sig=eJmyN%2BKHEniiRiEESd7PiBGMh3OPM40uVHtms8hk7Bc%3D, o arquivo teste-pdf.pd será baixado em C:\download_azure.

35 – Como podemos observar o arquivo teste-pdf.pdf foi baixado em C:\download_azure.

Upload conteúdo de um diretório para Container

Usando o símbolo curinga (*), você pode fazer upload do conteúdo de um diretório sem copiar o diretório propriamente dito.

azcopy copy “C:\temp\*” “https://stoazcopy.blob.core.windows.net/contazcopy?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T17:43:35Z&st=2021-11-01T09:43:35Z&spr=https&sig=kFhvrFVpOUtIitxH7KcKxEPxK%2FlOKkmLsipluF1p0g0%3D” –recursive

36 – Como podemos observar foi feito o upload do conteúdo da pasta temp para o container.

37 – No portal do Azure pesquise por storage accounts, em seguida selecione o storage account stoazcopy, clique em Containers selecione o container contazcopy e observe que foi feito o upload de todo o conteúdo da pasta temp.

Observação: Vou deletar os arquivos para a próxima demonstração.

Upload diretorio para container

Vamos fazer upload do diretório temp e todo seu conteúdo para o container.

O comando abaixo copia o conteúdo do diretório temp e cria uma pasta no container chamada temp com o conteúdo do diretório C:\temp\

azcopy copy “C:\temp” “https://stoazcopy.blob.core.windows.net/contazcopy?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T17:43:35Z&st=2021-11-01T09:43:35Z&spr=https&sig=kFhvrFVpOUtIitxH7KcKxEPxK%2FlOKkmLsipluF1p0g0%3D” –recursive

38 – Como podemos observar foi feito o upload do diretório temp e todo seu conteúdo para o container.

39 – No portal do Azure pesquise por storage accounts, em seguida selecione o storage account stoazcopy, clique em Container selecione o container contazcopy e observe que foi feito o upload da pasta temp e todo seu conteudo.

Download diretório

40 – Também podemos baixar o diretório e seu conteúdo com o seguinte comando.

azcopy copy “https://stoazcopy.blob.core.windows.net/contazcopy/temp?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T17:43:35Z&st=2021-11-01T09:43:35Z&spr=https&sig=kFhvrFVpOUtIitxH7KcKxEPxK%2FlOKkmLsipluF1p0g0%3D” “C:\download_azure” –recursive

41 – Como podemos observar o diretório temp foi baixado em C:\download_azure.

Comente suas sugestões e observações! 

Forte abraço, obrigado e até o próximo post.

Deixe um comentário

O seu endereço de e-mail não será publicado.