Copier des objets blob entre des comptes de stockage Azure à l’aide d’AzCopy
Vous pouvez copier des objets blob, des répertoires et des conteneurs d’un compte de stockage à un autre à l’aide de l’utilitaire en ligne de commande AzCopy v10.
Pour obtenir des exemples d’autres types de tâches, telles que le chargement de fichiers, le téléchargement d’objets blob et la synchronisation avec le stockage d’objets blob, consultez les liens présentés dans la section Étapes suivantes de cet article.
AzCopy utilise des API serveur à serveur, de sorte que les données sont copiées directement entre les serveurs de stockage.
Bien démarrer
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.
Remarque
Les exemples de cet article supposent que vous avez fourni des informations d’identification d’autorisation à l’aide de Microsoft Entra ID et que votre identité Microsoft Entra possède les attributions de rôles appropriées pour les comptes source et de destination.
Vous pouvez également ajouter un jeton SAP à l’URL source ou de destination dans chaque commande AzCopy. Par exemple : azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
.
Consignes
Respectez les consignes suivantes lors de l’exécution de commandes AzCopy.
Si vous utilisez une autorisation Microsoft Entra pour la source et la destination, les deux comptes doivent appartenir au même tenant Microsoft Entra.
Votre client doit disposer d’un accès réseau à la fois au compte de stockage source et au compte de stockage de destination. Pour savoir comment configurer les paramètres réseau de chaque compte de stockage, consultez Configurer des pare-feux et des réseaux virtuels dans Stockage Azure.
Si vous effectuez une copie vers un compte de stockage d’objets blob de blocs Premium, omettez le niveau d’accès d’un objet blob de l’opération de copie en affectant la valeur
false
às2s-preserve-access-tier
(par exemple :--s2s-preserve-access-tier=false
). Les comptes de stockage d’objet blob de blocs Premium ne prennent pas en charge les niveaux d’accès.Vous pouvez augmenter le débit des opérations de copie en définissant la valeur de la variable d’environnement
AZCOPY_CONCURRENCY_VALUE
. Pour plus d’informations, consultez Augmenter la concurrence.Si les objets blob sources contiennent des balises d’index et que vous souhaitez conserver ces balises, vous devez les réappliquer aux objets blob de destination. Pour plus d’informations sur la façon de définir des balises d’index, consultez la section Copier des objets blob vers un autre compte de stockage avec des balises d’index de cet article.
Copier un objet blob
Copiez un objet blob vers un autre compte de stockage à l’aide de la commande azcopy copy.
Conseil
Cet exemple englobe les arguments de chemin d’accès avec des 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 (' ').
Syntaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>'
Exemple
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
Exemple (point de terminaison Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'
L’opération de copie étant synchrone, lorsque la commande retourne un résultat, cela indique que tous les fichiers ont été copiés.
Copier un répertoire
Copiez un répertoire vers un autre compte de stockage à l’aide de la commande azcopy copy.
Conseil
Cet exemple englobe les arguments de chemin d’accès avec des 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 (' ').
Syntaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Exemple
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Exemple (point de terminaison Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
L’opération de copie est synchrone. Tous les fichiers ont été copiés lorsque la commande est retournée.
Copier un conteneur
Copiez un conteneur vers un autre compte de stockage à l’aide de la commande azcopy copy.
Conseil
Cet exemple englobe les arguments de chemin d’accès avec des 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 (' ').
Syntaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Exemple
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Exemple (point de terminaison Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
L’opération de copie est synchrone. Tous les fichiers ont été copiés lorsque la commande est retournée.
Copier des conteneurs, des répertoires et des objets blob
Copier tous les conteneurs, répertoires et objets blob vers un autre compte de stockage à l’aide de la commande azcopy copy.
Conseil
Cet exemple englobe les arguments de chemin d’accès avec des 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 (' ').
Syntaxe
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/' --recursive
Exemple
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive
Exemple (point de terminaison Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/' 'https://mydestinationaccount.dfs.core.windows.net' --recursive
L’opération de copie étant synchrone, lorsque la commande retourne un résultat, cela indique que tous les fichiers ont été copiés.
Copier des objets blob et ajouter des balises d’index
Copiez des objets blob vers un autre compte de stockage et ajoutez des balises d’index d’objet blob à l’objet blob cible.
Si vous utilisez l’autorisation Microsoft Entra, votre principal de sécurité doit détenir le rôle Propriétaire des données Blob du stockage, ou l’autorisation d’accès à l’opération du fournisseur de ressources Azure Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
doit lui être accordée par le biais d’un rôle Azure personnalisé. Si vous utilisez un jeton de signature d’accès partagé (SAS), ce jeton doit fournir l’accès aux balises de l’objet blob par le biais de l’autorisation SAS t
.
Pour ajouter des balises, utilisez l’option --blob-tags
avec une paire clé-valeur encodée en URL.
Par exemple, pour ajouter la clé my tag
et une valeur my tag value
, vous devez ajouter --blob-tags='my%20tag=my%20tag%20value'
au paramètre de destination.
Séparez plusieurs balises d’index à l’aide d’une esperluette (&
). Par exemple, si vous souhaitez ajouter une clé my second tag
et une valeur my second tag value
, la chaîne d’option complète est --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
.
Les exemples suivants montrent comment utiliser l’option --blob-tags
.
Conseil
Ces exemples englobent les arguments de chemin avec des 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 (' ').
Exemple d’objet Blob
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Exemple de répertoire
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Exemple de conteneur
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Exemple de compte
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
L’opération de copie est synchrone. Tous les fichiers ont été copiés lorsque la commande est retournée.
Notes
Si vous spécifiez un répertoire, un conteneur ou un compte comme source, tous les objets blob copiés vers la destination auront les mêmes balises que celles que vous spécifiez dans la commande.
Copier avec des indicateurs facultatifs
Vous pouvez ajuster votre opération de copie à l’aide d’indicateurs facultatifs. Voici quelques exemples.
Scénario | Indicateur |
---|---|
Copier les objets blob en tant que blobs de bloc, de page ou d’ajout. | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
Effectuer une copie vers un niveau d’accès spécifique (tel que le niveau Archive) | --block-blob-tier=[None|Hot|Cool|Archive] |
Décompresser automatiquement les fichiers | --decompress=[gzip|deflate] |
Pour obtenir la liste complète, consultez Options.
Étapes suivantes
Vous trouverez plus d’exemples dans ces articles :
- Exemples : Charger
- Exemples : Téléchargement
- Exemples : Synchroniser
- Exemples : Compartiments Amazon S3
- Exemples : Google Cloud Storage
- Exemples : Azure Files
- Tutoriel : Migrer des données locales vers un stockage cloud à l’aide d’AzCopy
Consultez les articles suivants pour configurer les paramètres, optimiser les performances et résoudre les problèmes :
- Paramètres de configuration d’AzCopy
- Optimiser les performances d’AzCopy
- Rechercher des erreurs et reprendre des travaux à l’aide des fichiers journaux et de plan dans AzCopy
- Résoudre les problèmes liés à AzCopy v10
- Utiliser AzCopy pour copier des objets blob entre des comptes de stockage Azure avec des restrictions réseau