Como mover arquivos entre Storage Accounts 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.

Também podemos usar o AzCopy para mover dados entre contas de armazenamento.

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 – Criar um container no storage account.

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

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

Criar o segundo Storage account

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

# Variaveis
$resourceGroup = “RG-AZCopy”
$location = “westus”

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

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

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

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

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

06 – Criar um container no storage account.

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

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

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.

SAS stoazcopy

07 – No portal do Azure pesquise por storage accounts e selecione o storage account stoazcopy.

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

09 – Na tela Shared access signature em Allowed services deixe apenas Blob e File, em Allowed resource 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.

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

11 – Copie o SAS Token.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:07:26Z&st=2021-11-19T14:07:26Z&spr=https&sig=Q3Eg2YJ2J6%2FIbJ2Kfr%2B%2FwoKhs%2FTrQDTz54tX7Yfjja0%3D

SAS stoazcopy2

12 – No portal do Azure pesquise por storage accounts e selecione o storage account stoazcopy2.

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

14 – 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.

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

16 – Copie o SAS Token.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:17:35Z&st=2021-11-19T14:17:35Z&spr=https&sig=7bvL6II7Ft0QYME9BdveycCoYWcZ4ZbjWiUs%2FtRIvLI%3D

Instale o utilitário AzCopy

17 – 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

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

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

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

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

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

Mover dados entre storage account (File Share)

23 – Temos alguns arquivos no no File Share do storage account stoazcopy vamos mover todos esses arquivos para o storage account stoazcopy2.

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

25 – Selecione o storage acccount stoazcopy2 em Settings clique em Endpoints, em Endpoints podemos ver o nome File service e Blob service.

26 – Copiar arquivos entre File Share.

Vamos copiar o arquivo teste.doc que esta no File Share fileazcopy no storage account stoazcopy para o File Share fileazcopy2 no storage account stoazcopy2.

No prompt de comando, navegue até a pasta onde o azcopy foi extraido C:\Users\adm.jadson\Downloads\azcopy_windows_amd64_10.13.0

Execute o comando abaixo para mover o arquivo do File Share fileazcopy no storage account stoazcopy para o File Share fileazcopy2 no storage account stoazcopy2.

azcopy copy “https://stoazcopy.file.core.windows.net/fileazcopy/teste.doc?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:07:26Z&st=2021-11-19T14:07:26Z&spr=https&sig=Q3Eg2YJ2J6%2FIbJ2Kfr%2B%2FwoKhs%2FTrQDTz54tX7Yfjja0%3D” “https://stoazcopy2.file.core.windows.net/fileazcopy2?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:17:35Z&st=2021-11-19T14:17:35Z&spr=https&sig=7bvL6II7Ft0QYME9BdveycCoYWcZ4ZbjWiUs%2FtRIvLI%3D”

Acima, o arquivo de origem é https://stoazcopy.file.core.windows.net/fileazcopy/teste.doc

E será copiado para https://stoazcopy2.file.core.windows.net/fileazcopy2

Aqui, destaquei o token SAS de origem.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:07:26Z&st=2021-11-19T14:07:26Z&spr=https&sig=Q3Eg2YJ2J6%2FIbJ2Kfr%2B%2FwoKhs%2FTrQDTz54tX7Yfjja0%3D

E abaixo eu destaquei o token SAS de destino.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:17:35Z&st=2021-11-19T14:17:35Z&spr=https&sig=7bvL6II7Ft0QYME9BdveycCoYWcZ4ZbjWiUs%2FtRIvLI%3D

27 – Podemos verificar o arquivo que foi copiado no portal do Azure, pesquise por storage accounts selecione o storage account stoazcopy2 em File Shares selecione fileazcopy2 e como podemos observar o arquivo teste.doc foi copiado.

28 – Também podemos usar o mesmo método para copiar todo o file share para outro file share.

azcopy copy “https://stoazcopy.file.core.windows.net/fileazcopy?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:07:26Z&st=2021-11-19T14:07:26Z&spr=https&sig=Q3Eg2YJ2J6%2FIbJ2Kfr%2B%2FwoKhs%2FTrQDTz54tX7Yfjja0%3D” “https://stoazcopy2.file.core.windows.net/fileazcopy2?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:17:35Z&st=2021-11-19T14:17:35Z&spr=https&sig=7bvL6II7Ft0QYME9BdveycCoYWcZ4ZbjWiUs%2FtRIvLI%3D” –preserve-smb-permissions=true –preserve-smb-info=true –recursive

Acima, estou copiando o conteudo do file share azcopy.

https://stoazcopy.file.core.windows.net/fileazcopy

para https://stoazcopy2.file.core.windows.net/fileazcopy2

29 – Como podemos observar os arquivos do file share fileazcopy no storage account stoazcopy foram copiados para o file share fileazcopy no storage account stoazcopy2

Mover dados entre storage account (Container)

30 – Temos alguns arquivos no container do storage account stoazcopy, vamos mover todos esses arquivos para container  do storage account stoazcopy2.

31 – Copiar arquivos entre Containers.

Vamos copiar o arquivo teste.doc que esta no container contazcopy no storage account stoazcopy para o container contazcopy2 no storage account stoazcopy2.

No prompt de comando, navegue até a pasta onde o azcopy foi extraido C:\Users\adm.jadson\Downloads\azcopy_windows_amd64_10.13.0

Execute o comando abaixo para mover o arquivo do container contazcopy no storage account stoazcopy para o container contazcopy2  no storage account stoazcopy2.

azcopy copy “https://stoazcopy.blob.core.windows.net/contazcopy/teste.doc?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:07:26Z&st=2021-11-19T14:07:26Z&spr=https&sig=Q3Eg2YJ2J6%2FIbJ2Kfr%2B%2FwoKhs%2FTrQDTz54tX7Yfjja0%3D” “https://stoazcopy2.blob.core.windows.net/contazcopy2?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:17:35Z&st=2021-11-19T14:17:35Z&spr=https&sig=7bvL6II7Ft0QYME9BdveycCoYWcZ4ZbjWiUs%2FtRIvLI%3D”

Acima, o arquivo de origem é https://stoazcopy.blob.core.windows.net/contazcopy/teste.doc

E será copiado para https://stoazcopy2.blob.core.windows.net/contazcopy2

Aqui, destaquei o token SAS de origem

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:07:26Z&st=2021-11-19T14:07:26Z&spr=https&sig=Q3Eg2YJ2J6%2FIbJ2Kfr%2B%2FwoKhs%2FTrQDTz54tX7Yfjja0%3D

E abaixo eu destaquei o token SAS de destino

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:17:35Z&st=2021-11-19T14:17:35Z&spr=https&sig=7bvL6II7Ft0QYME9BdveycCoYWcZ4ZbjWiUs%2FtRIvLI%3D

32 – Podemos verificar o arquivo que foi copiado no portal do Azure, pesquise por storage accounts selecione o storage account stoazcopy2 em container selecione contazcopy2 e como podemos obervar o arquivo teste.doc foi copiado.

33 – Também podemos usar o mesmo método para copiar todo o container para outro container.

azcopy copy “https://stoazcopy.blob.core.windows.net/contazcopy?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T08:25:23Z&st=2021-12-17T00:25:23Z&spr=https&sig=l3DWLGc3F5bnwL74RiR6pY%2BmtWaA%2BqW1BjhXWyjBAIs%3D” “https://stoazcopy2.blob.core.windows.net/contazcopy2?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-12-31T08:26:22Z&st=2021-12-17T00:26:22Z&spr=https&sig=8VU1jIue1g5P4Tbz3iA92F4IqdCcomFC029PlLSA928%3D” –recursive

Acima, o arquivo de origem é https://stoazcopy.blob.core.windows.net/contazcopy

E será copiado para https://stoazcopy2.blob.core.windows.net/contazcopy2

Aqui, destaquei o token SAS de origem.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:07:26Z&st=2021-11-19T14:07:26Z&spr=https&sig=Q3Eg2YJ2J6%2FIbJ2Kfr%2B%2FwoKhs%2FTrQDTz54tX7Yfjja0%3D

E abaixo eu destaquei o token SAS de destino.

?sv=2020-08-04&ss=bfqt&srt=sco&sp=rwdlacupitfx&se=2021-11-26T22:17:35Z&st=2021-11-19T14:17:35Z&spr=https&sig=7bvL6II7Ft0QYME9BdveycCoYWcZ4ZbjWiUs%2FtRIvLI%3D

29 – Como podemos observar os arquivo do container contazcopy no storage account stoazcopy foram copiados para o container contazcopy2 no storage account stoazcopy2.

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. Campos obrigatórios são marcados com *