Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
AzCopy est un utilitaire de ligne de commande que vous pouvez utiliser pour copier des blobs ou des fichiers vers ou depuis un compte de stockage. Cet article vous aide à copier des objets, des répertoires et des compartiments de Google Cloud Storage vers Stockage Blob Azure à l’aide d’AzCopy.
Choisissez la façon dont vous fournirez des informations d’identification d’autorisation
Pour autoriser avec stockage Azure, utilisez l’ID Microsoft Entra ou un jeton SAS (Shared Access Signature).
Pour autoriser avec Google Cloud Storage, utilisez une clé de compte de service.
Autoriser avec stockage Azure
Consultez l’article Prise en main d’AzCopy pour télécharger AzCopy, et découvrez comment vous pouvez fournir des informations d’identification au service de stockage.
Note
Les exemples de cet article supposent que vous fournissez des informations d’identification d’autorisation à l’aide de l’ID Microsoft Entra.
Si vous préférez utiliser un jeton SAP pour autoriser l’accès aux données d’objet blob, vous pouvez ajouter ce jeton à l’URL de la ressource dans chaque commande AzCopy. Par exemple : 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.
Autoriser avec Google Cloud Storage
Pour autoriser avec Google Cloud Storage, utilisez une clé de compte de service. Pour plus d’informations sur la création d’une clé de compte de service, consultez Création et gestion des clés de compte de service.
Après avoir obtenu une clé de service, définissez la GOOGLE_APPLICATION_CREDENTIALS variable d’environnement sur le chemin absolu du fichier de clé de compte de service :
| Système d’exploitation | Command |
|---|---|
| Windows | set GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| Linux | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| macOS | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
Copier des objets, des répertoires et des compartiments
AzCopy utilise l’API Put Block From URL . Les données sont donc copiées directement entre google Cloud Storage et les serveurs de stockage. Ces opérations de copie n’utilisent pas la bande passante réseau de votre ordinateur.
Conseil / Astuce
Dans les exemples de cette section, les arguments de chemin d’accès sont entre guillemets simples (' '). Utilisez des guillemets simples dans tous les interpréteurs de commandes, à l’exception de l’interface de commande Windows (cmd. exe). Si vous utilisez une interface de commande Windows (cmd. exe), placez les arguments de chemin d’accès entre guillemets doubles (" ") au lieu de guillemets simples (' ').
Ces exemples fonctionnent également avec des comptes qui ont un espace de noms hiérarchique.
L’accès à plusieurs protocoles sur Data Lake Storage vous permet d’utiliser la même syntaxe d’URL (blob.core.windows.net) sur ces comptes.
Copier un objet
Utilisez la même syntaxe d’URL (blob.core.windows.net) pour les comptes qui ont un espace de noms hiérarchique.
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Exemple
azcopy copy 'https://storage.cloud.google.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Copier un répertoire
Utilisez la même syntaxe d’URL (blob.core.windows.net) pour les comptes qui ont un espace de noms hiérarchique.
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Exemple
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Note
Cet exemple ajoute l’indicateur --recursive pour copier des fichiers dans tous les sous-répertoires.
Copier le contenu d’un répertoire
Vous pouvez copier le contenu d’un répertoire sans copier le répertoire contenant lui-même à l’aide du symbole générique (*).
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Exemple
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Copier un compartiment de stockage cloud
Utilisez la même syntaxe d’URL (blob.core.windows.net) pour les comptes qui ont un espace de noms hiérarchique.
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemple
azcopy copy 'https://storage.cloud.google.com/mybucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Copier tous les compartiments dans un projet Google Cloud
Tout d’abord, définissez l’ID GOOGLE_CLOUD_PROJECT de projet de votre projet Google Cloud.
Utilisez la même syntaxe d’URL (blob.core.windows.net) pour les comptes qui ont un espace de noms hiérarchique.
Syntaxe
azcopy copy 'https://storage.cloud.google.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemple
azcopy copy 'https://storage.cloud.google.com/' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Copier un sous-ensemble de compartiments dans un projet Google Cloud
Tout d’abord, définissez l’ID GOOGLE_CLOUD_PROJECT de projet de votre projet Google Cloud.
Copiez un sous-ensemble de compartiments à l’aide d’un symbole générique (*) dans le nom du compartiment. Utilisez la même syntaxe d’URL (blob.core.windows.net) pour les comptes qui ont un espace de noms hiérarchique.
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket*name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Exemple
azcopy copy 'https://storage.cloud.google.com/my*bucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Gérer les différences dans les règles de nommage des buckets
Google Cloud Storage possède un ensemble de conventions d’attribution de noms aux compartiments différent des conteneurs d’objets blob Azure. Vous pouvez en savoir plus ici. Si vous choisissez de copier un groupe de conteneurs dans un compte de stockage Azure, l’opération de copie peut échouer en raison des différences de noms.
AzCopy gère trois des problèmes les plus courants qui peuvent se présenter : les compartiments contenant des points, les compartiments contenant des tirets consécutifs et les compartiments contenant des traits de soulignement. Les noms de compartiments Google Cloud Storage peuvent contenir des points et des traits d’union consécutifs, mais un conteneur dans Azure ne peut pas. AzCopy remplace les points par des traits d’union et des traits d’union consécutifs par un nombre qui représente le nombre de traits d’union consécutifs (par exemple : un compartiment nommé my----bucket devient my-4-bucket). Si le nom du compartiment a un trait de soulignement (_), AzCopy remplace le trait de soulignement par un trait d’union. Par exemple, un compartiment nommé my_bucket devient my-bucket.
Gérer les différences dans les règles d’affectation de noms d’objets
Google Cloud Storage a un ensemble différent de conventions d’affectation de noms pour les noms d’objets par rapport aux objets blob Azure. Vous pouvez en savoir plus ici.
Azure Storage n’autorise pas les noms d’objets (ou tout segment du chemin d’accès du répertoire virtuel) à se terminer par des points de fin (par exemple my-bucket...). Les points de fin sont supprimés lorsque l’opération de copie est effectuée.
Gérer les différences dans les métadonnées d’objet
Google Cloud Storage et Azure autorisent différents ensembles de caractères dans les noms des clés d’objet. Vous pouvez en savoir plus sur les métadonnées dans Google Cloud Storage ici. Côté Azure, les clés d’objet blob respectent les règles d’affectation de noms pour les identificateurs C#.
Dans le cadre d’une commande AzCopy copy , vous pouvez fournir une valeur pour l’indicateur facultatif s2s-handle-invalid-metadata qui spécifie comment gérer les fichiers où les métadonnées du fichier contiennent des noms de clés incompatibles. Le tableau suivant décrit chaque valeur d’indicateur.
| Valeur de repère | Descriptif |
|---|---|
| ExcludeIfInvalid | (Option par défaut) Les métadonnées ne sont pas incluses dans l’objet transféré. AzCopy enregistre un avertissement. |
| FailIfInvalid | Les objets ne sont pas copiés. AzCopy enregistre une erreur et inclut cette erreur dans le nombre d’échecs qui apparaît dans le résumé du transfert. |
| RenameIfInvalid | AzCopy résout la clé de métadonnées non valide et copie l’objet dans Azure à l’aide de la paire de valeurs de clé de métadonnées résolue. Pour savoir exactement quelles étapes AzCopy prend pour renommer des clés d’objet, consultez la section Comment AzCopy renomme les clés d’objet . Si AzCopy ne peut pas renommer la clé, l’objet n’est pas copié. |
Comment AzCopy renomme les clés d’objet
AzCopy effectue les étapes suivantes :
Remplace les caractères non valides par '_'.
Ajoute la chaîne
rename_au début d’une nouvelle clé valide.Cette clé sera utilisée pour enregistrer la valeur des métadonnées d’origine.
Ajoute la chaîne
rename_key_au début d’une nouvelle clé valide. Cette clé doit être utilisée pour enregistrer la clé invalide d’origine des métadonnées. Vous pouvez utiliser cette clé pour essayer de récupérer les métadonnées côté Azure, car la clé de métadonnées est conservée en tant que valeur sur le service de stockage d’objets blob.
Spécifier les types source et de destination
AzCopy utilise le paramètre --from-to pour définir explicitement les types de ressources source et de destination lorsque la détection automatique peut échouer, par exemple dans les scénarios de piping ou les émulateurs. Cela permet à AzCopy de comprendre le contexte du transfert et d’optimiser en conséquence. Vous pouvez définir ce paramètre pour GCPBlobindiquer explicitement que la commande copie à partir de Google Cloud Storage vers Azure Blob Storage.
Étapes suivantes
Pour plus d’exemples, consultez les articles suivants :
- Exemples : Téléverser
- Exemples : Télécharger
- Exemples : Copier entre des comptes
- Exemples : Synchroniser
- Exemples : compartiments Amazon S3
- Exemples : Azure Files
Consultez les articles suivants pour configurer les paramètres, optimiser les performances et résoudre les problèmes :