Partager via


Copier des objets blob entre des comptes de stockage Azure à l’aide d’AzCopy

Vous pouvez utiliser l’utilitaire de ligne de commande AzCopy v10 pour copier des objets blob, des répertoires et des conteneurs entre des comptes de stockage.

Pour obtenir des exemples d’autres types de tâches, tels que le chargement de fichiers, le téléchargement d’objets blob et la synchronisation avec le stockage d’objets blob, consultez les liens de la section Étapes suivantes de cet article.

AzCopy utilise des API de 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 fournissez des informations d’identification d’autorisation à l’aide de l’ID Microsoft Entra et que votre identité Microsoft Entra dispose des 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 l’autorisation Microsoft Entra pour la source et la destination, les deux comptes doivent appartenir au même locataire Microsoft Entra.

  • Votre client doit disposer d’un accès réseau aux comptes de stockage source et 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.

    Pour en savoir plus sur les topologies réseau prises en charge lors de la copie entre les comptes, consultez Copier des objets blob entre des comptes de stockage avec restriction d’accès.

  • 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 ont 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 est synchrone. Lorsque la commande est retournée, elle indique que tous les fichiers sont 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. Lorsque la commande est retournée, tous les fichiers sont copiés.

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. Lorsque la commande est retournée, tous les fichiers sont copiés.

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 est synchrone. Lorsque la commande est retournée, elle indique que tous les fichiers sont 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, attribuez le rôle Propriétaire des données Blob de stockage à votre principal de sécurité ou accordez-lui l’autorisation à l’opération du Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writefournisseur de ressources Azure via un rôle Azure personnalisé. Si vous utilisez un jeton de signature d’accès partagé (SAP), ce jeton doit fournir l’accès aux balises de l’objet blob via l’autorisation SAP t.

Pour ajouter des balises, utilisez l’option --blob-tags avec une paire clé-valeur encodée d’URL.

Par exemple, pour ajouter la clé my tag et la valeur my tag value, ajoutez --blob-tags='my%20tag=my%20tag%20value' le paramètre de destination.

Séparez plusieurs balises d’index avec un ampersand (&). Par exemple, si vous souhaitez ajouter la clé my second tag et la 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. Lorsque la commande est retournée, tous les fichiers sont copiés.

Remarque

Si vous spécifiez un répertoire, un conteneur ou un compte pour la source, tous les objets blob que vous copiez vers la destination ont 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.

Spécifier les types source et de destination

AzCopy utilise le --from-to paramètre pour définir explicitement les types de ressources source et de destination lorsque la détection automatique peut échouer, comme dans les scénarios de piping ou les émulateurs. Ce paramètre permet à AzCopy de comprendre le contexte du transfert et de l’optimiser en conséquence.

Valeur FromTo Descriptif
BlobBlob Copier entre deux emplacements Stockage Blob Azure
BlobBlobFS Copier à partir de Stockage Blob Azure vers Azure Data Lake Gen2 (BlobFS)
BlobFSBlob Copier à partir d’Azure Data Lake Gen2 (BlobFS) vers Stockage Blob Azure
BlobFSBlobFS Copier entre deux emplacements Azure Data Lake Gen2 (BlobFS)
BlobFSFile Copier à partir d’Azure Data Lake Gen2 (BlobFS) vers Stockage Fichier Azure
BlobFile Copier à partir du Stockage Blob Azure vers Stockage Fichier Azure
FileBlob Copier à partir de Stockage Fichier Azure vers Stockage Blob Azure
FileBlobFS Copier à partir de Stockage Fichier Azure vers Azure Data Lake Gen2 (BlobFS)

É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 :