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 APIserveur à 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 AzureMicrosoft.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 :

Consultez les articles suivants pour configurer les paramètres, optimiser les performances et résoudre les problèmes :