Trasferire file con AzCopy: OAuth e token SAS

L’automazione è ovunque oggi nell’IT. Dalla fornitura di macchine virtuali alla distribuzione di siti web, l’automazione è fondamentale soprattutto quando devi gestire più elementi. Anche la gestione dei file tra lo storage di Azure e il tuo computer locale può essere automatizzata utilizzando un programma di utilità chiamato AzCopy.

AzCopy è un’utilità standalone che consente la gestione dello storage di Azure. Con AzCopy, è possibile eseguire diverse operazioni. In questo articolo, ci concentreremo su:

Iniziamo!

Se preferisci imparare tramite video, puoi anche guardare un video di TechSnips strettamente correlato a ciò che imparerai in questo articolo.

Prerequisiti

Questo articolo sarà una procedura guidata che illustra vari compiti. Se desideri seguirla, assicurati di soddisfare i seguenti requisiti prima di iniziare.

Creazione di Nuovi Contenitori di Archiviazione

Prima di tutto, utilizziamo AzCopy per creare nuovi contenitori di archiviazione in un account di archiviazione esistente. Nell’esempio che userai, creerai due nuovi contenitori chiamati container1 e container2.

Nota: Prima di creare un nuovo contenitore, devi conoscere l’URL del punto di accesso del contenitore. L’URL del punto di accesso segue il formato: https://[storageaccountname].blob.core.windows.net/[container_name].

Prima, definisci l’URL del punto di accesso. In questo esempio, i contenitori verranno creati in un account di archiviazione chiamato storageaccount1207 creando due URL del punto di accesso:

Ora che conosci gli URL del punto di accesso, utilizza il comando azcopy make passando ciascun URL del punto di accesso come parametro come mostrato di seguito.

> 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

Copiare File da/a Contenitori Azure

Una volta creato un contenitore di archiviazione, probabilmente ti stai chiedendo “Come carico su Azure Blob Storage?”. Puoi farlo con AzCopy utilizzando il comando azcopy copy. Puoi utilizzare AzCopy per copiare PST, VHD e altro.

Utilizzo dell’Autenticazione OAuth

Quando si utilizza AzCopy per copiare file nei blob, si hanno un paio di opzioni per l’autenticazione. Poiché si presume che tu abbia già effettuato l’autenticazione su Azure Storage (poiché era nei prerequisiti), puoi semplicemente eseguire azcopy copy specificando un percorso file locale seguito da un URL del contenitore come mostrato di seguito.

Non specificando nessun altro parametro, si utilizza l’autenticazione OAuth.

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

Come si fa a confermare che il file è stato copiato nel contenitore del blob di Azure? Puoi utilizzare il comando azcopy list [URL del contenitore]. Vedi l’esempio di seguito che mostra che il file file1.txt esiste.

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

Per scaricare un file dal blob di Azure nella directory locale, è sufficiente invertire i posti degli argomenti di origine e destinazione. Vedi l’esempio di seguito.

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

Utilizzo di un Token di Accesso Condiviso (SAS)

Per utilizzare un token SAS, è necessario prima generarne uno. Se non sai come generare un token SAS, consulta l’articolo Come Generare un Token SAS di Azure per Accedere agli Account di Archiviazione.

Una volta disponibile un token SAS, è possibile aggiungere il token all’URL del contenitore di destinazione come parametro HTTP come mostrato di seguito.

> 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 stai utilizzando PowerShell e hai memorizzato il token in una variabile (ad es. $token), puoi passare quella variabile invece della stringa del token completa come nel comando seguente.

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

Utilizzando lo stesso token (supponendo che sia ancora valido), puoi anche scaricare file dallo storage di Azure allo storage locale. L’esempio qui sotto copia il file file1.txt dallo storage di Azure con un token SAS.

Nel codice qui sotto, puoi vedere che questa volta invece di aggiungere il token dopo il nome del contenitore, viene aggiunto prima il nome del file. Questo istruisce AzCopy a copiare un file specifico usando l’autenticazione SAS.

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

Copiare una directory da/a uno storage di Azure

Se hai molti file da trasferire o scaricare da Azure, puoi anche copiare intere directory in una volta sola usando azcopy copy. Il comando per farlo non è molto diverso da quello che usi per copiare singoli file.

Di seguito puoi vedere un comando che copia ricorsivamente la cartella C:\\MyDir nel contenitore blob container1. Il parametro --recursive è fondamentale qui. Il flag --recursive alla fine del comando indica che tutti i contenuti dalla directory genitore e dalle eventuali sottodirectory che possono esistere verranno copiati.

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

Puoi vedere di seguito che dieci file all’interno della cartella C:\MyDir sono stati tutti copiati con successo in base al riepilogo del lavoro.

Copying a directory and its contents

Copiare file tra contenitori di Azure Storage

In tutto questo articolo, hai usato abbastanza il comando azcopy copy. Non c’è bisogno di fermarsi ora! Non solo puoi copiare directory e file da/per on-prem, ma puoi anche copiare i blob tra contenitori di archiviazione.

Invece di utilizzare un percorso di file locale, cambieresti i parametri per utilizzare un URL del contenitore blob come origine e un altro URL del contenitore blob come destinazione.

Hai già creato due contenitori di archiviazione chiamati container1 e container2. In questa sezione, copiamo file, directory e persino l’intero contenitore di blob da container1 a container2.

Per copiare i file da un contenitore all’altro, prima genera un nuovo token SAS. Dato che i due contenitori appartengono allo stesso account di archiviazione, lo stesso token può essere usato sia per l’origine che per la destinazione.

Assumendo che tu abbia salvato la stringa del token in una variabile chiamata $token (se esegui azcopy con PowerShell), puoi facilmente copiare tutti i dati da un contenitore di archiviazione all’altro come mostrato di seguito.

Prememoria: Dai un’occhiata all’articolo Come generare un token SAS di Azure per accedere agli account di archiviazione se non sai come generare un 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

Altre operazioni utili di AzCopy

Oltre a copiare file e cartelle, ci sono altre operazioni di copia che puoi eseguire con AzCopy. Alcune di queste sono:

  • Copiare file specifici (filtrati).
  • Copiare una directory in un’altra directory nel contenitore di blob.
  • Copia da Amazon AWS a Azure Storage.

Se vuoi conoscere tutto ciò che AzCopy può fare, controlla i contenuti della guida eseguendo azcopy -h. Troverai molti altri comandi utili oltre al comando copy su cui ti sei concentrato esclusivamente in questo articolo. Puoi vedere uno screenshot di questi comandi di seguito.

List of AzCopy Commands

Per saperne di più, visita la pagina AzCopy Copy. Poi puoi provare questi comandi da solo utilizzando le tecniche apprese in questo articolo.

Riepilogo

In questo articolo hai imparato come utilizzare AzCopy per trasferire file tra il locale e lo storage di Azure. Hai anche imparato come eseguire queste operazioni utilizzando OAuth e il token di firma di accesso condiviso per l’autenticazione. Hai visto quali altri comandi di AzCopy sono disponibili e come trovarli.

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-storage/