Trasferimento di file con AzCopy: OAuth e token SAS

L’automazione è ovunque oggi nell’ambito dell’IT. Dalla creazione di macchine virtuali al rilascio di siti web, l’automazione è fondamentale soprattutto quando si devono gestire più elementi. Anche la gestione dei file tra l’archiviazione di Azure e il tuo computer locale può essere automatizzata utilizzando un programma chiamato AzCopy.

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

Cominciamo!

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

Prerequisiti

In questo articolo verrà fornita una panoramica di varie attività. 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://[nome_account_archiviazione].blob.core.windows.net/[nome_contenitore].

Prima di tutto, definisci l’URL del punto di accesso. In questo esempio, i contenitori saranno 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

Copia dei file da/per i contenitori di 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 usare AzCopy per copiare file PST, VHD e altro ancora.

Utilizzo dell’autenticazione OAuth

Quando si utilizza AzCopy per copiare file in blocchi, si hanno un paio di opzioni per l’autenticazione. Presumendo che tu abbia già effettuato l’autenticazione su Azure Storage (dato che era un prerequisito), puoi semplicemente eseguire il comando azcopy copy specificando il percorso del file locale seguito dall’URL del contenitore come mostrato di seguito.

Non specificando altri parametri, 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 puoi confermare che il file sia stato copiato nel contenitore di blob di Azure? Puoi utilizzare il comando azcopy list [URL del contenitore]. Nell’esempio seguente viene mostrato 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 parametri 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 firma di accesso condiviso (SAS)

Per utilizzare un token SAS, è necessario generarne uno. Se non sai come generare un token SAS di Azure per accedere agli account di archiviazione, 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 si utilizza PowerShell e si è memorizzato il token in una variabile (ad esempio $token), è possibile passare quella variabile al posto della stringa di 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 (ipotizzando che sia ancora valido), è anche possibile scaricare file dallo storage di Azure alla memoria locale. L’esempio qui di seguito copia il file file1.txt dallo storage di Azure utilizzando un token SAS.

Nel codice sottostante, si può notare che questa volta, anziché aggiungere il token dopo il nome del contenitore, viene aggiunto prima il nome del file. Questo istruisce AzCopy a copiare un file specifico utilizzando 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

Copia di una directory da/per lo storage di Azure

Se si hanno molti file da trasferire o scaricare da Azure, è possibile copiare intere directory in una sola volta utilizzando azcopy copy. Il comando per farlo non è molto diverso da quello utilizzato per copiare singoli file.

Di seguito è riportato un comando che copia in modo ricorsivo la directory C:\\MyDir nel contenitore di blob container1. Il parametro --recursive è fondamentale qui. La bandiera --recursive alla fine del comando indica che saranno copiati tutti i contenuti della directory principale e delle eventuali sottodirectory che potrebbero esistere.

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

Di seguito puoi vedere che i dieci file presenti nella cartella C:\MyDir sono stati tutti copiati correttamente in base al riepilogo dell’operazione.

Copying a directory and its contents

Copia di file tra i contenitori di archiviazione di Azure

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

Invece di utilizzare un percorso locale del file, cambieresti i parametri per utilizzare un URL di contenitore di blob come origine e un altro URL di contenitore di 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 file da un contenitore a un altro, prima genera un nuovo token SAS. Poiché i due contenitori appartengono allo stesso account di archiviazione, lo stesso token può essere utilizzato sia per la sorgente 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.

Piccolo promemoria: 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 alla copia di file e cartelle, puoi eseguire altre operazioni di copia con AzCopy. Alcune di queste sono:

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

Se vuoi scoprire tutto ciò che AzCopy può fare, consulta il contenuto della guida eseguendo il comando azcopy -h. Troverai molti altri comandi utili oltre al comando copy su cui ti sei concentrato 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. In seguito, puoi provarli da solo utilizzando le tecniche apprese in questo articolo.

Riassunto

In questo articolo hai imparato come utilizzare AzCopy per trasferire file tra il locale e l’archiviazione di Azure. Hai anche imparato come eseguire queste operazioni utilizzando OAuth e un token di firma di accesso condiviso per l’autenticazione. Hai visto quali altri comandi 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/