Transferir Arquivos com AzCopy: OAuth e Token SAS

A automação está presente em todos os lugares hoje em dia na área de TI. Desde a criação de máquinas virtuais até o implantação de sites, a automação é fundamental, especialmente quando você precisa lidar com vários itens. Até mesmo a gerenciamento de arquivos entre o armazenamento Azure e o seu computador local pode ser automatizado usando um programa utilitário chamado AzCopy.

O AzCopy é um utilitário independente que permite o gerenciamento do armazenamento Azure. Com o AzCopy, várias operações podem ser realizadas. Neste artigo, vamos nos concentrar em:

Vamos começar!

Se você aprende melhor por meio de vídeos, também pode conferir um vídeo do TechSnips relacionado ao que você vai aprender neste artigo.

Pré-requisitos

Este artigo apresentará um passo a passo de várias tarefas. Se você deseja acompanhar, certifique-se de atender aos requisitos listados abaixo antes de começar.

Criando novos contêineres de armazenamento

Primeiro, vamos usar o AzCopy para criar novos contêineres de armazenamento em uma conta de armazenamento existente. No exemplo que você usará, você criará dois novos contêineres chamados container1 e container2.

Observação: Antes de criar um novo contêiner, você deve saber a URL de ponto de extremidade do contêiner. A URL de ponto de extremidade segue o formato: https://[nomedacontadearmazenamento].blob.core.windows.net/[nomedocontêiner].

Primeiro, defina a URL de ponto de extremidade. Neste exemplo, os contêineres serão criados em uma conta de armazenamento chamada storageaccount1207 criando duas URLs de ponto de extremidade:

Agora que você conhece as URLs de ponto de extremidade, use o comando azcopy make passando cada URL de ponto de extremidade como parâmetro, conforme mostrado abaixo.

> azcopy make https://storageaccount1207.blob.core.windows.net/container1
> azcopy make https://storageaccount1207.blob.core.windows.net/container2
Creating new containers in the storageaccount1207 storage account

Copiando arquivos para/de contêineres Azure

Depois de criar um contêiner de armazenamento, você provavelmente está se perguntando “Como faço para fazer upload no Azure Blob Storage?”. Você pode fazer isso acontecer com o AzCopy usando o comando azcopy copy. Você pode usar o AzCopy para copiar arquivos PSTs, VHDs e muito mais.

Usando Autenticação OAuth

Ao usar o AzCopy para copiar arquivos para blobs, você tem algumas opções de autenticação. Como presume-se que você já autenticou no Azure Storage (pois isso foi um pré-requisito), você pode simplesmente executar o comando azcopy copy especificando um caminho local para o arquivo seguido de uma URL de endpoint do contêiner, como mostrado abaixo.

Ao não especificar nenhum outro parâmetro, você está usando a autenticação OAuth.

> azcopy copy c:\myDir\file1.txt https://storageaccount1207.blob.core.windows.net/container1
Upload file to Azure Storage using OAuth

Como saber se o arquivo foi copiado para o contêiner de blob do Azure? Você pode usar o comando azcopy list [URL do contêiner]. Veja o exemplo abaixo que mostra que o arquivo file1.txt existe.

> azcopy list https://storageaccount1207.blob.core.windows.net/container1
List the contents of the Azure blob container

Para baixar um arquivo do blob do Azure para o diretório local, você só precisa trocar as posições dos argumentos de origem e destino. Veja o exemplo abaixo.

> azcopy copy https://storageaccount1207.blob.core.windows.net/container1/file1.txt>c:\myDir
Download file from Azure Storage using OAuth authentication

Usando um Token de Acesso Compartilhado (SAS)

Para usar um token SAS, você deve primeiro gerar um. Se você não sabe como gerar um token SAS, confira o artigo Como gerar um token SAS do Azure para acessar contas de armazenamento.

Uma vez que você tenha um token SAS disponível, você pode anexar o token à URL do contêiner de destino como um parâmetro HTTP, como mostrado abaixo.

> azcopy copy c:\myDir\file1.txt 'https://storageaccount1207.blob.core.windows.net/container1?sv=2019-02-02&sr=c&sig=LgFsqIRHZovsSjpAVNAyyyy4tnDJ%2BxNh%2B1Cq3rY4Gbk%3D&se=2019-12-09T06%3A34%3A30Z&sp=rw'

Se você estiver usando o PowerShell e armazenou o token em uma variável (por exemplo, $token), você pode passar essa variável em vez da string completa do token como no comando abaixo.

> azcopy copy c:\myDir\file1.txt "https://storageaccount1207.blob.core.windows.net/container1?$token"
Copy file to Azure Container using SAS Token Authentication

Usando o mesmo token (assumindo que ainda esteja dentro do seu período de validade), você também pode baixar arquivos do armazenamento do Azure para o armazenamento local. O exemplo abaixo copia o arquivo file1.txt do armazenamento do Azure usando um token SAS.

No código abaixo, você pode ver que desta vez, em vez de anexar o token após o nome do container, o nome do arquivo é adicionado primeiro. Isso instrui o AzCopy a copiar um arquivo específico usando a autenticação SAS.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1/file1.txt'+$token) C:\MyDir\
Copy file from Azure Container with SAS Token

Copiando um diretório de/para o Armazenamento do Azure

Se você tiver muitos arquivos para transferir ou baixar do Azure, também pode copiar diretórios inteiros de uma só vez usando o azcopy copy. O comando para fazer isso não é muito diferente do que você usa para copiar arquivos individuais.

Abaixo, você pode ver um comando que copia recursivamente o diretório C:\\MyDir para o container de blob container1. O parâmetro --recursive é a chave aqui. A flag --recursive no final do comando indica que todo o conteúdo do diretório pai e subdiretórios que possam existir serão copiados.

> azcopy copy C:\MyDir\ https://storageaccount1207.blob.core.windows.net/container1/ --recursive

Abaixo, você pode ver que os dez arquivos dentro da pasta C:\MyDir foram todos copiados com sucesso, com base no resumo do trabalho.

Copying a directory and its contents

Copiando arquivos entre containers de armazenamento do Azure

Ao longo deste artigo, você tem usado bastante o comando azcopy copy. Não há necessidade de parar agora! Além de poder copiar diretórios e arquivos de / para o local, você também pode copiar blobs entre contêineres de armazenamento.

Em vez de usar um caminho de arquivo local, você alteraria os parâmetros para usar uma URL de contêiner de blob como origem e outra URL de contêiner de blob como destino.

Você já criou dois contêineres de armazenamento chamados container1 e container2. Nesta seção, vamos copiar arquivos, diretórios e até mesmo o contêiner de blob inteiro de container1 para container2.

Para copiar arquivos de um contêiner para outro, primeiro gere um novo token SAS. Como os dois contêineres pertencem à mesma conta de armazenamento, o mesmo token pode ser usado tanto para a origem quanto para o destino.

Supondo que você tenha salvado a string do token em uma variável chamada $token (se estiver executando o azcopy com o PowerShell), você pode facilmente copiar todos os dados de um contêiner de armazenamento para o outro, conforme mostrado abaixo.

Lembrete: Dê uma olhada no artigo Como Gerar um Token SAS do Azure para Acessar Contas de Armazenamento se você não souber como gerar um token SAS.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1'+$token) ('https://storageaccount1207.blob.core.windows.net/container2'+$token) --recursive
Copying data between containers using SAS Token authentication

Outras operações úteis do AzCopy

Além de copiar arquivos e pastas, existem outras operações de cópia que você pode realizar com o AzCopy. Algumas delas são:

  • Copiar arquivos específicos (filtrados).
  • Copiar um diretório para outro diretório no contêiner de blob.
  • Copiar do Amazon AWS para o Armazenamento do Azure.

Se você deseja aprender sobre tudo o que o AzCopy pode fazer, confira o conteúdo de ajuda executando azcopy -h. Você encontrará muitos outros comandos úteis, além do comando copy no qual você se concentrou exclusivamente neste artigo. Você pode ver uma captura de tela desses comandos abaixo.

List of AzCopy Commands

Para saber mais, visite a página AzCopy Copy. Em seguida, você pode tentar esses comandos por conta própria usando as técnicas que aprendeu neste artigo.

Resumo

Neste artigo, você aprendeu como usar o AzCopy para transferir arquivos entre o armazenamento local e o Azure. Você também aprendeu como realizar essas tarefas usando OAuth e Token de Assinatura de Acesso Compartilhado para autenticação. Você viu quais outros comandos do AzCopy estão disponíveis e como encontrá-los.

I hope this article has helped you get started with AzCopy and sparked your interest in using it more as part of your administration or development tasks. Thank you!

Source:
https://adamtheautomator.com/azcopy/