Synchroniser avec Stockage Blob Azure à l’aide d’AzCopy
Vous pouvez synchroniser le stockage local avec Stockage Blob Azure à l’aide de l’utilitaire en 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 les uns avec les autres. 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 les comptes qui ont un espace de noms hiérarchique.
Notes
La version actuelle de l’utilitaire AzCopy n’effectue pas de synchronisation entre d’autres sources et destinations (exemple : stockage de fichiers ou compartiments Amazon Web Services (AWS) S3).
Pour obtenir des exemples d’autres types de tâches, telles 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.
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 partent du principe que vous avez fourni des informations d’identification d’autorisation en utilisant Microsoft Entra ID.
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>'
.
Consignes
Par défaut, 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
surprompt
.Si vous envisagez de définir l'indicateur
--delete-destination
surprompt
oufalse
, pensez à utiliser la commande copy au lieu de la commande sync et à définir le paramètre--overwrite
surifSourceNewer
. 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 empêcher 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 les 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
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
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 les modifications d’un autre conteneur
Le premier conteneur qui s’affiche dans cette commande est la source. Le deuxième est la destination.
Si vous fournissez des informations d’identification d’autorisation à l’aide de Microsoft Entra ID, vérifiez que vous avez configuré les rôles appropriés dans votre compte source et de destination. Consultez Option 1 : utiliser Microsoft Entra ID.
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 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 les 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 est la destination.
Si vous fournissez des informations d’identification d’autorisation à l’aide de Microsoft Entra ID, vérifiez que vous avez configuré les rôles appropriés dans votre compte source et de destination. Consultez Option 1 : utiliser Microsoft Entra ID.
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 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
Synchroniser avec des indicateurs facultatifs
Vous pouvez ajuster votre opération de synchronisation à l’aide d’indicateurs facultatifs. Voici quelques exemples.
Scénario | Indicateur |
---|---|
Spécifier la manière 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] |
Pour obtenir la liste complète des indicateurs, consultez Options.
Notes
Par défaut, l'indicateur --recursive
est défini sur true
. Les indicateurs --exclude-pattern
et --include-pattern
ne s’appliquent qu’à des noms de fichier et non à d’autres parties du chemin d’accès de fichier.
Étapes suivantes
Vous trouverez plus d’exemples dans ces articles :
- Exemples : Charger
- Exemples : Téléchargement
- Exemples : Copier entre comptes
- 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 :