Transférer des fichiers avec AzCopy : jeton OAuth et jeton SAS

Lautomatisation est omniprésente de nos jours dans le domaine de l’informatique. De la provision de machines virtuelles au déploiement de sites web, l’automatisation est essentielle, surtout lorsqu’il s’agit de gérer plusieurs éléments. Même la gestion de fichiers entre le stockage Azure et votre machine locale peut être automatisée à l’aide d’un programme utilitaire appelé AzCopy.

AzCopy est un utilitaire autonome qui permet la gestion du stockage Azure. Avec AzCopy, plusieurs opérations peuvent être effectuées. Dans cet article, nous allons nous concentrer sur :

  • La création de conteneurs de stockage
  • La copie de fichiers locaux vers des conteneurs
  • La copie de fichiers entre des conteneurs

Commençons !

Si vous préférez apprendre via une vidéo, vous pouvez également consulter une vidéo TechSnips étroitement liée à ce que vous apprendrez dans cet article.

Prérequis

Cet article sera un guide pas à pas démontrant diverses tâches. Si vous souhaitez suivre, assurez-vous d’avoir rempli la liste des exigences ci-dessous avant de commencer.

Création de nouveaux conteneurs de stockage

Tout d’abord, utilisons AzCopy pour créer de nouveaux conteneurs de stockage dans un compte de stockage existant. Dans l’exemple que vous utiliserez, vous créerez deux nouveaux conteneurs nommés conteneur1 et conteneur2.

Remarque: Avant de créer un nouveau conteneur, vous devez connaître l’URL de point de terminaison du conteneur. L’URL de point de terminaison respecte le format suivant: https://[nom_du_compte_de_stockage].blob.core.windows.net/[nom_du_conteneur].

Tout d’abord, définissez l’URL de point de terminaison. Dans cet exemple, les conteneurs seront créés dans un compte de stockage appelé storageaccount1207 créant deux URL de point de terminaison:

Maintenant que vous connaissez les URL de point de terminaison, utilisez la commande azcopy make en passant chaque URL de point de terminaison en tant que paramètre comme indiqué ci-dessous.

> 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

Copier des fichiers vers/depuis des conteneurs Azure

Une fois que vous avez créé un conteneur de stockage, vous vous demandez probablement « Comment puis-je télécharger vers Azure Blob Storage? ». Vous pouvez le faire avec AzCopy en utilisant la commande azcopy copy. Vous pouvez utiliser AzCopy pour copier des fichiers PST, des VHD et plus encore.

Utilisation de l’authentification OAuth

Lorsque vous utilisez AzCopy pour copier des fichiers vers des blobs, vous avez quelques options d’authentification. Comme il est présumé que vous vous êtes déjà authentifié auprès du stockage Azure (puisque c’était dans les prérequis), vous pouvez simplement exécuter azcopy copy en spécifiant un chemin de fichier local suivi d’une URL de point de terminaison de conteneur comme indiqué ci-dessous.

En ne spécifiant aucun autre paramètre, vous utilisez l’authentification OAuth.

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

Comment savoir si le fichier est bien copié dans le conteneur de blob Azure ? Vous pouvez utiliser la commande azcopy list [URL du conteneur]. Voyez l’exemple ci-dessous montrant que le fichier file1.txt existe.

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

Pour télécharger un fichier du blob Azure vers le répertoire local, vous devez simplement échanger les positions des arguments source et destination. Voyez l’exemple ci-dessous.

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

Utilisation d’un jeton de signature d’accès partagé (SAS)

Pour utiliser un jeton SAS, vous devez d’abord en générer un. Si vous ne savez pas comment générer un jeton SAS, consultez l’article Comment générer un jeton SAS Azure pour accéder aux comptes de stockage.

Une fois que vous avez un jeton SAS disponible, vous pouvez l’ajouter à l’URL du conteneur de destination en tant que paramètre HTTP comme indiqué ci-dessous.

> 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'

Si vous utilisez PowerShell et avez stocké le jeton dans une variable (par exemple, $token), vous pouvez passer cette variable à la place de la chaîne de jeton complète comme dans la commande ci-dessous.

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

En utilisant le même jeton (en supposant qu’il soit toujours valide), vous pouvez également télécharger des fichiers depuis le stockage Azure vers le stockage local. L’exemple ci-dessous copie le fichier file1.txt depuis le stockage Azure avec un jeton SAS.

Dans le code ci-dessous, vous pouvez voir que cette fois, au lieu d’ajouter le jeton après le nom du conteneur, le nom du fichier est ajouté en premier. Cela indique à AzCopy de copier un fichier spécifique en utilisant l’authentification SAS.

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

Copier un répertoire de/depuis le stockage Azure

Si vous avez de nombreux fichiers à transférer ou à télécharger depuis Azure, vous pouvez également copier des répertoires entiers en une seule fois en utilisant azcopy copy. La commande pour le faire n’est pas très différente de celle que vous utilisez pour copier des fichiers uniques.

Vous pouvez voir ci-dessous une commande qui copie de manière récursive le répertoire C:\\MyDir vers le conteneur de blob container1. Le paramètre --recursive est la clé ici. Le drapeau --recursive à la fin de la commande indique que tous les contenus du répertoire parent et des sous-répertoires éventuels seront copiés.

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

Vous pouvez voir ci-dessous que dix fichiers à l’intérieur du répertoire C:\MyDir ont été tous copiés avec succès selon le résumé de l’opération.

Copying a directory and its contents

Copier des fichiers entre des conteneurs de stockage Azure

Tout au long de cet article, vous avez beaucoup utilisé la commande azcopy copy. Il n’y a pas de raison de s’arrêter maintenant ! Non seulement vous pouvez copier des répertoires et des fichiers vers/depuis on-prem, mais vous pouvez également copier des blobs d’un conteneur de stockage à l’autre.

Plutôt que d’utiliser un chemin de fichier local, vous changeriez les paramètres pour utiliser l’URL d’un conteneur de blob comme source et l’URL d’un autre conteneur de blob comme destination.

Vous avez déjà créé deux conteneurs de stockage appelés container1 et container2. Dans cette section, copions des fichiers, des répertoires et même le conteneur de blob entier de container1 à container2.

Pour copier des fichiers d’un conteneur à l’autre, générez d’abord un nouveau jeton SAS. Puisque les deux conteneurs appartiennent au même compte de stockage, le même jeton peut être utilisé à la fois pour la source et la destination.

En supposant que vous avez enregistré la chaîne de jeton dans une variable appelée $token (si vous exécutez azcopy avec PowerShell), vous pouvez facilement copier toutes les données d’un conteneur de stockage à l’autre comme indiqué ci-dessous.

Rappel : Jetez un œil à l’article Comment Générer un Jeton SAS Azure pour Accéder aux Comptes de Stockage si vous ne savez pas comment générer un jeton 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

Autres Opérations Utiles avec AzCopy

En dehors de la copie de fichiers et de dossiers, il existe d’autres opérations de copie que vous pouvez effectuer avec AzCopy. Certaines de ces opérations sont :

  • Copier des fichiers spécifiques (filtrés).
  • Copier un répertoire dans un autre répertoire dans le conteneur de blob.
  • Copier d’Amazon AWS vers Azure Storage.

Si vous souhaitez découvrir tout ce que AzCopy peut faire, consultez le contenu d’aide en exécutant azcopy -h. Vous trouverez de nombreuses autres commandes utiles en dehors de la commande copy sur laquelle vous vous êtes exclusivement concentré dans cet article. Vous pouvez voir une capture d’écran de ces commandes ci-dessous.

List of AzCopy Commands

Pour en savoir plus, visitez la page AzCopy Copy. Ensuite, vous pouvez les essayer vous-même en utilisant les techniques que vous avez apprises dans cet article.

Résumé

Dans cet article, vous avez appris comment utiliser AzCopy pour transférer des fichiers entre le stockage local et Azure. Vous avez également appris comment effectuer ces tâches en utilisant OAuth et le jeton de signature d’accès partagé pour l’authentification. Vous avez vu quelles autres commandes AzCopy sont disponibles et comment les trouver.

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/