La commande sync synchronise les objets d'un répertoire OSS vers un répertoire local.
Remarques sur l'utilisation
Cette opération nécessite les autorisations
oss:GetObjectetoss:ListObjects. Accorder des autorisations personnalisées à un utilisateur RAM.
-
Nom du binaire
Pour ossutil 1.6.16 et versions ultérieures, vous pouvez utiliser ossutil directement comme nom de binaire dans la ligne de commande. Il n'est pas nécessaire de modifier le nom du binaire en fonction du système d'exploitation. Si vous utilisez une version d'ossutil antérieure à la 1.6.16, adaptez le nom du binaire à votre système d'exploitation. Pour plus d'informations, consultez la page Référence des commandes ossutil.
-
Nombre de fichiers
Lorsque vous exécutez la commande sync sans l'option --delete, il n'y a aucune limite au nombre de fichiers que vous pouvez synchroniser en une seule fois. Si vous incluez l'option --delete, vous pouvez synchroniser jusqu'à 1 million de fichiers à la fois. Si le nombre de fichiers à synchroniser dépasse 1 million, l'erreur over max sync numbers 1000000. est renvoyée.
-
Différences avec la commande cp
Par défaut, la commande sync parcourt de manière récursive tous les objets et sous-répertoires. La commande cp nécessite l'option -r pour les opérations récursives.
La commande sync prend en charge l'option --backup-dir afin d'enregistrer les fichiers présents uniquement dans la destination vers un dossier de sauvegarde. La commande cp ne prend pas en charge l'option --backup-dir.
La commande sync ne prend pas en charge l'option --version-id ; elle ne peut donc pas synchroniser les versions précédentes des objets. La commande cp prend en charge l'option --version-id.
Les commandes sync et cp partagent toutes les autres options. Consultez la page cp (Télécharger des fichiers).
Format de la commande
ossutil sync cloud_url file_url
[-f --force]
[-u --update]
[--maxdownspeed <value>]
[--delete]
[--backup-dir <value>]
[--enable-symlink-dir]
[--disable-all-symlink]
[--disable-ignore-error]
[--only-current-dir]
[--output-dir <value>]
[--bigfile-threshold <value>]
[--part-size <value>]
[--checkpoint-dir <value>]
[--range <value>]
[--encoding-type <value>]
[--snapshot-path <value>]
[--include <value>]
[--exclude <value>]
[--disable-crc64]
[--payer <value>]
[-j, --job <value>]
[--parallel <value>]
[--retry-times <value>]
Paramètres et options :
Paramètre ou option | Description |
cloud_url | Le chemin du répertoire source OSS au format |
file_url | Le chemin du dossier de destination local. Exemple : |
-f --force | Force l'exécution de l'opération sans demande de confirmation. |
-u, --update | Synchronise uniquement lorsque le fichier de destination est manquant ou que l'objet source est plus récent. |
--maxdownspeed | Vitesse de téléchargement maximale en Ko/s. Valeur par défaut : 0 (illimité). |
--delete | Supprime les fichiers de destination qui n'existent pas dans le répertoire source OSS. Avertissement Activez la gestion des versions avant d'utiliser --delete afin d'éviter toute perte accidentelle de données. |
--backup-dir | Enregistre les fichiers présents uniquement dans la destination vers le dossier de sauvegarde spécifié, au lieu de les supprimer. |
--enable-symlink-dir | Synchronise les sous-répertoires liés par des liens symboliques. |
--disable-all-symlink | Ignore tous les liens symboliques (fichiers et répertoires) lors de la synchronisation. |
--disable-ignore-error | Interrompt l'exécution en cas d'erreur lors des opérations par lot, au lieu de les ignorer. |
--only-current-dir | Synchronise uniquement les objets du répertoire actuel, en excluant les sous-répertoires. |
--output-dir | Le répertoire destiné aux fichiers de rapport d'erreur générés lors de la synchronisation par lot. Valeur par défaut : ossutil_output dans le répertoire actuel. |
--bigfile-threshold | Seuil de taille pour le téléchargement avec reprise, en octets. Valeur par défaut : 100 Mo Plage de valeurs : 0 à 9223372036854775807 |
--part-size | Taille des parties en octets. Par défaut, ossutil calcule la taille des parties en fonction de la taille de l'objet. Plage de valeurs : 1 à 9223372036854775807 |
--checkpoint-dir | Le répertoire contenant les données de point de contrôle pour le téléchargement avec reprise. En cas d'échec d'un téléchargement avec reprise, ossutil crée un répertoire |
--range | Télécharge la plage d'octets spécifiée depuis l'objet et l'enregistre sous forme de nouveau fichier. Utilise une numérotation à partir de zéro.
|
--encoding-type | Méthode d'encodage pour les noms d'objets. Valeur valide : url. Par défaut : aucun encodage. |
--snapshot-path | Le répertoire contenant les instantanés de synchronisation. ossutil lit les instantanés depuis ce répertoire pour effectuer une synchronisation incrémentielle lors des exécutions suivantes. |
--include | Inclut uniquement les objets correspondant au modèle spécifié. Pour plus d'informations, consultez les options --include et --exclude. |
--exclude | Exclut les objets correspondant au modèle spécifié. Pour plus d'informations, consultez les options --include et --exclude. |
--disable-crc64 | Désactive la validation des données CRC-64. |
--payer | Payeur de la requête. Définissez cette option sur requester pour facturer les frais de trafic et de requête au demandeur. |
-j, --job | Nombre de tâches simultanées pour les opérations multi-objets. Valeur par défaut : 3. Plage : 1 à 10000. |
--parallel | Nombre de tâches simultanées pour les opérations mono-objet. Plage : 1 à 10000. Par défaut, ossutil détermine la valeur en fonction du type d'opération et de la taille de l'objet. |
--retry-times | Nombre de tentatives en cas d'erreur. Valeur par défaut : 10. Plage : 1 à 500. |
Vérifier les résultats de la synchronisation
Vérifiez que tous les objets ont été transférés correctement :
-
Vérifier le nombre de fichiers
Comparez le nombre d'objets entre OSS et les répertoires locaux :
# Count files in the local directory. ls -1 /local/dir/ | wc -l # Count objects in the OSS directory. ossutil ls oss://bucket/dir/ -r | grep "^oss://" | wc -l -
Lister les objets synchronisés
Consultez les objets synchronisés :
# List local files with sizes. ls -lh /local/dir/ # Compare with the OSS directory. ossutil ls oss://bucket/dir/ -r
Exemples
Les exemples suivants utilisent cette structure de fichiers. Le dossier localdir du bucket OSS contient a.txt, b.txt et le sous-répertoire C. Le dossier local destdir contient d.txt :
examplebucket local root directory
└── localdir/ └── destdir/
├── a.txt └── d.txt
├── b.txt
└── C/
-
Synchronisez le dossier localdir depuis OSS vers votre ordinateur local
ossutil sync oss://examplebucket/localdir/ destdir/Résultat : a.txt, b.txt et le sous-répertoire C sont ajoutés au dossier local destdir.
examplebucket local root directory └── localdir/ └── destdir/ ├── a.txt ├── a.txt ├── b.txt ├── b.txt └── C/ ├── d.txt └── C/ -
Synchronisation avec l'option --backup-dir : synchronisez localdir depuis examplebucket vers le dossier local destdir et déplacez les fichiers présents uniquement dans la destination vers le dossier backup.
ossutil sync oss://examplebucket/localdir/ destdir/ --delete --backup-dir backup/Résultat : le dossier localdir est synchronisé. Les fichiers présents dans destdir mais absents de la source sont déplacés vers le dossier backup. Le dossier local destdir ne contient plus que a.txt, b.txt et le sous-répertoire C. Le fichier d.txt d'origine est déplacé vers le dossier backup.
examplebucket local root directory └── localdir/ ├── destdir/ ├── a.txt │ ├── a.txt ├── b.txt │ ├── b.txt └── C/ │ └── C/ └── backup/ └──d.txt -
Sortie en cas de synchronisation réussie :
Succeed: Total num: 2, size: 750,081. OK num: 2(upload 2 files). average speed 1641000(byte/s)
Options courantes
Pour accéder à un bucket situé dans une autre région, utilisez -e pour spécifier l'endpoint. Pour accéder à un bucket appartenant à un autre compte Alibaba Cloud, utilisez -i pour l'AccessKey ID et -k pour l'AccessKey Secret.
Exemple : synchronisation depuis un bucket de la région Chine (Shanghai) appartenant à un autre compte Alibaba Cloud :
ossutil sync oss://examplebucket/srcfolder/ examplefolder/ -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret