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

L’automatisation 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 lorsque vous devez gérer plusieurs éléments. Même la gestion de fichiers entre le stockage Azure et votre machine locale peut être automatisée en utilisant 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 :

  • Création de conteneurs de stockage
  • Copie de fichiers locaux vers des conteneurs
  • Copie de fichiers entre des conteneurs

Commençons !

Si vous préférez apprendre via vidéo, vous pouvez également consulter une vidéo de TechSnips étroitement liée à ce que vous allez apprendre 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 container1 et container2.

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 suit le format : 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 en 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

Copie de fichiers vers/depuis les conteneurs Azure

Une fois que vous avez créé un conteneur de stockage, vous vous demandez probablement « Comment puis-je télécharger vers le stockage blob Azure ? ». 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 plusieurs options d’authentification. Étant donné qu’il est présumé que vous vous êtes déjà authentifié auprès du stockage Azure (car 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 blobs Azure ? Vous pouvez utiliser la commande azcopy list [URL du conteneur]. Voir 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 depuis le blob Azure vers le répertoire local, vous devez simplement échanger les positions des arguments source et destination. Voir 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 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 ajouter le jeton à 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 que vous 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 dans sa période de validité), 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-ci, 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 depuis/vers 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 à la 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 individuels.

Vous pouvez voir ci-dessous une commande qui copie récursivement 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 dossier C:\MyDir ont tous été copiés avec succès en fonction du résumé de la tâche.

Copying a directory and its contents

Copie de 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 besoin de s’arrêter maintenant ! Non seulement vous pouvez copier des répertoires et des fichiers de/vers votre site local, mais vous pouvez également copier des blobs entre des conteneurs de stockage.

Au lieu d’utiliser un chemin de fichier local, vous modifierez les paramètres pour utiliser une URL de conteneur de blob comme source et une autre URL de 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 l’ensemble du conteneur de blob de container1 à container2.

Pour copier des fichiers d’un conteneur à un autre, commencez par générer un nouveau jeton SAS. Comme les deux conteneurs appartiennent au même compte de stockage, le même jeton peut être utilisé 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 : Consultez 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 d’AzCopy

Outre la copie de fichiers et de dossiers, vous pouvez effectuer d’autres opérations de copie avec AzCopy. Certaines d’entre elles 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 le stockage Azure.

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 plus de la commande copy sur laquelle vous vous êtes concentré uniquement 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 Copie AzCopy. Ensuite, vous pouvez les essayer par 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 tout en utilisant OAuth et le jeton d’authentification de signature d’accès partagé. 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-storage/