Partager via


Synchroniser avec le stockage Blob Azure à l’aide d’AzCopy

Vous pouvez synchroniser le stockage local avec stockage Blob Azure à l’aide de l’utilitaire de ligne de commande AzCopy v10.

Vous pouvez synchroniser le contenu d’un système de fichiers local avec un conteneur d’objets blob. Vous pouvez également synchroniser des conteneurs et des répertoires virtuels entre eux. La synchronisation est unidirectionnelle. En d’autres termes, vous choisissez lequel de ces deux points de terminaison est la source et lequel est la destination. La synchronisation utilise également un serveur pour les API de serveur. Les exemples présentés dans cette section fonctionnent également avec des comptes qui ont un espace de noms hiérarchique.

Remarque

La version actuelle d’AzCopy ne se synchronise pas entre d’autres sources et destinations (par exemple : stockage de fichiers ou compartiments Amazon Web Services (AWS) S3).

Pour voir des exemples pour d’autres types de tâches, tels que le chargement de fichiers, le téléchargement d’objets blob ou la copie d’objets blob entre des comptes, consultez les liens présentés dans la section Étapes suivantes de cet article.

Commencez

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.

Si vous préférez utiliser un jeton SAS pour autoriser l’accès aux données d’objets blob, vous pouvez ajouter ce jeton à l’URL de ressource dans chaque commande AzCopy. Par exemple : 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Lignes directrices

La commande sync compare les noms de fichiers et les horodatages de la dernière modification. Vous pouvez remplacer ce comportement pour utiliser des hachages MD5 au lieu des derniers horodatages modifiés à l’aide de l’indicateur --compare-hash. Définissez l’indicateur facultatif --delete-destination sur la valeur true ou prompt pour supprimer des fichiers dans le répertoire de destination si ces fichiers n’existent plus dans le répertoire source.

  • Si vous affectez la valeur true à l’indicateur --delete-destination, AzCopy supprime les fichiers sans invite. Si vous souhaitez qu’une invite s’affiche avant que l’utilitaire AzCopy ne supprime un fichier, définissez l’indicateur --delete-destination sur prompt.

  • Si vous envisagez de définir l'indicateur --delete-destination sur prompt ou false, pensez à utiliser la commande copy au lieu de la commande sync et à définir le paramètre --overwrite sur ifSourceNewer. La commande copy consomme moins de mémoire et génère des coûts de facturation inférieurs, car une opération de copie ne doit pas indexer la source ou la destination avant de déplacer des fichiers.

  • Si vous n’envisagez pas d’utiliser l’indicateur --compare-hash, l’ordinateur sur lequel vous exécutez la commande de synchronisation doit avoir une horloge système précise, car les heures de la dernière modification sont essentielles pour déterminer si un fichier doit être transféré. Si votre système connaît des décalages d’horloge significatifs, évitez de modifier les fichiers de la destination à un moment trop proche de celui où vous envisagez d’exécuter une commande de synchronisation.

  • AzCopy utilise des API serveur à serveur pour synchroniser les données entre les comptes de stockage. Cela signifie que les données sont copiées directement entre les serveurs de stockage. Toutefois, AzCopy configure et surveille chaque transfert. De plus, pour les comptes de stockage plus volumineux (par exemple, les comptes qui contiennent des millions d’objets blob), AzCopy peut nécessiter une quantité importante de ressources de calcul pour accomplir ces tâches. Par conséquent, si vous exécutez AzCopy à partir d’une machine virtuelle, assurez-vous que la machine virtuelle dispose de suffisamment de cœurs/mémoire pour gérer la charge.

  • Pour éviter les suppressions accidentelles, veillez à activer la fonctionnalité de suppression réversible avant d’utiliser l’indicateur --delete-destination=prompt|true .

Mettre à jour un conteneur avec des modifications apportées à un système de fichiers local

Dans ce cas, le conteneur est la destination, et le système de fichiers local est la source.

Conseil / Astuce

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 sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Exemple

azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive

Mettre à jour un système de fichiers local avec les modifications apportées à un conteneur

Dans ce cas, le système de fichiers local est la destination et le conteneur est la source.

Conseil / Astuce

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 sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive

Exemple

azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive

Mettre à jour un conteneur avec des modifications dans un autre conteneur

Le premier conteneur qui apparaît dans cette commande est la source. Le deuxième conteneur est la destination.

Si vous fournissez des informations d’identification d’autorisation à l’aide de l’ID Microsoft Entra, veillez à configurer les rôles appropriés dans votre compte source et de destination. Voir l’option 1 : Utiliser l’ID Microsoft Entra.

Conseil / Astuce

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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Exemple

azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

Mettre à jour un répertoire avec des modifications apportées à un répertoire dans un autre conteneur

Le premier répertoire qui s’affiche dans cette commande est la source. Le deuxième répertoire est la destination.

Si vous fournissez des informations d’identification d’autorisation à l’aide de l’ID Microsoft Entra, veillez à configurer les rôles appropriés dans votre compte source et de destination. Voir l’option 1 : Utiliser l’ID Microsoft Entra.

Conseil / Astuce

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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive

Exemple

azcopy sync 'https://mysourceaccount.blob.core.windows.net/<container-name>/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myDirectory' --recursive

Mettre à jour un conteneur avec des modifications dans un autre conteneur à l’aide d’un jeton SAP

Le premier conteneur qui apparaît dans cette commande est la source. Le deuxième conteneur est la destination.

Si vous fournissez un jeton SAP, assurez-vous d’utiliser un jeton SAP correspondant aux comptes de stockage source et de destination lors de l’utilisation de la synchronisation azcopy.

Syntaxe

azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<destination-SAS-token>' --recursive

Exemple

azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/?sv=2018-03-28&ss=qrdu&dst=mco&kp=rwdlapuc&se=2019-07-04T05:30:08Z&st=2019-07-03T21:31:10Z&spr=https&sig=CAfhgnc9gdGktvB=yzx9CAjMKeeN678yiyFwdNU092JC8%6D' --recursive

Conseil / Astuce

Si vous copiez une grande quantité de données, vous pouvez utiliser l’Explorateur Stockage Azure.

Pour vérifier la taille des données que vous avez copiées, dans le menu de la barre supérieure, sélectionnez Autres statistiques de>dossiers pour obtenir les détails du répertoire, y compris la taille en octets.

Synchroniser avec des indicateurs facultatifs

Vous pouvez ajuster votre opération de synchronisation à l’aide d’indicateurs facultatifs. Voici quelques exemples.

Scénario Drapeau
Spécifiez la façon dont les hachages MD5 doivent être validés lors du téléchargement. --check-md5=[NoCheck|LogOnly|FailIfDifferent|FailIfDifferentOrMissing]
Exclure des fichiers en fonction d’un modèle --exclude-path
Spécifier le niveau de détail des entrées de journal liées à la synchronisation --log-level=[WARNING|ERROR|INFO|NONE]
Spécifiez comment copier un fichier vhd. --blob-type=BlockBlob --include-pattern « *.vhd » ou --blob-type=BlockBlob

Pour obtenir la liste complète des indicateurs, consultez les options.

Remarque

L’indicateur --recursive est défini true par défaut. Les drapeaux --exclude-pattern et --include-pattern s’appliquent uniquement aux noms de fichiers et non à d’autres parties du chemin d’accès au fichier.

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