Tous les produits
Search
Centre de documentation

Object Storage Service:Synchronize local files to OSS using the sync command

Dernière mise à jour :Sep 22, 2026

Utilisez la commande sync pour synchroniser des fichiers ou des dossiers locaux vers OSS. La commande sync compare la date de dernière modification des fichiers ou utilise les informations de snapshot pour identifier et télécharger uniquement les fichiers modifiés de manière incrémentielle. Ce processus permet de maintenir efficacement la cohérence du contenu entre la source et la destination.

Fonctionnement

  • 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 entre les commandes sync et cp

    • La commande sync parcourt de manière récursive tous les fichiers et sous-répertoires d'un dossier spécifié. La commande cp n'effectue une opération récursive que si vous ajoutez l'option -r.

    • Lorsque vous utilisez la commande sync pour synchroniser des données vers OSS, vous pouvez ajouter l'option --delete afin de supprimer les fichiers qui existent dans la destination mais pas dans la source. Cette option garantit que le répertoire de destination contient uniquement les fichiers de la synchronisation en cours. La commande cp ne prend pas en charge l'option --delete.

    • La commande sync ne prend pas en charge l'option --version-id. Vous ne pouvez pas utiliser la commande sync pour synchroniser les versions antérieures des fichiers dans un bucket pour lequel le versioning est activé. La commande cp prend en charge l'option --version-id.

    Hormis ces différences, les commandes sync et cp s'utilisent de manière similaire. Pour plus d'informations sur l'utilisation et des exemples de la commande cp, consultez la rubrique cp (télécharger des fichiers).

Remarque d'utilisation

À partir de la version 1.6.16 d'ossutil, vous pouvez utiliser directement le binaire ossutil sans le renommer pour votre système d'exploitation. Pour les versions antérieures à la 1.6.16, vous devez renommer le fichier binaire. Pour plus d'informations, consultez la rubrique Référence de la commande ossutil.

Autorisations

Par défaut, seul un compte Alibaba Cloud dispose des autorisations nécessaires pour effectuer toutes les opérations API. Pour exécuter cette commande, un utilisateur RAM ou un rôle RAM doit recevoir les autorisations requises de la part d'un compte Alibaba Cloud ou d'un administrateur via une politique RAM ou une politique de bucket.

Action API

Description

oss:ListObjects

Répertorie les objets du bucket de destination pour les comparer aux fichiers locaux.

oss:PutObject

Télécharge des fichiers vers OSS.

oss:DeleteObject

[Facultatif] Requis lorsque vous utilisez l'option --delete pour supprimer les fichiers supplémentaires du bucket de destination.

oss:PutObjectTagging

[Facultatif] Requis lorsque vous utilisez l'option --tagging pour ajouter des tags à un objet.

Syntaxe de la commande

ossutil sync file_url cloud_url [options]

Le tableau suivant décrit les paramètres et les options.

Paramètre

Description

file_url

Chemin du dossier local à synchroniser. Par exemple, /localfolder/ pour Linux ou D:\localfolder\ pour Windows.

cloud_url

Chemin du dossier OSS de destination. Le format est oss://bucketname/path/. Par exemple, oss://examplebucket/exampledir/. Si le paramètre cloud_url saisi ne se termine pas par une barre oblique (/), ossutil en ajoute automatiquement une à la fin.

-f --force

Force l'exécution de l'opération sans invite de confirmation.

-u, --update

Synchronise un fichier uniquement si le fichier de destination n'existe pas, ou si la date de dernière modification du fichier source est plus récente que celle du fichier de destination.

--delete

Supprime les autres fichiers présents dans le chemin de destination et conserve uniquement les fichiers issus de la synchronisation actuelle.

Avertissement

Avant d'utiliser l'option --delete, activez le versioning pour éviter toute suppression accidentelle de données.

--enable-symlink-dir

Synchronise les sous-répertoires liés.

--disable-all-symlink

Ignore tous les fichiers liés et les sous-répertoires liés lors de la synchronisation des dossiers.

--disable-ignore-error

N'ignore pas les erreurs lors des opérations par lot.

--only-current-dir

Synchronise uniquement les fichiers du répertoire actuel. Les sous-répertoires et les fichiers qu'ils contiennent sont ignorés.

--output-dir

Spécifie le répertoire de stockage des fichiers de sortie. Les fichiers de sortie sont des rapports générés en cas d'erreurs lors de la synchronisation par lot. Par défaut, ces rapports sont enregistrés dans le répertoire ossutil_output du répertoire actuel.

-bigfile-threshold

Seuil de taille de fichier pour le téléchargement avec reprise. Unité : octets.

Valeur par défaut : 100 Mo

Plage de valeurs valides : 0 à 9223372036854775807

--part-size

Taille des parties. Unité : octets. Par défaut, ossutil calcule une taille de partie appropriée en fonction de la taille du fichier.

Plage de valeurs valides : 1 à 9223372036854775807

--checkpoint-dir

Spécifie le répertoire de stockage des informations de point de contrôle pour les téléchargements avec reprise. Lorsqu'un téléchargement avec reprise échoue, ossutil crée automatiquement un répertoire nommé .ossutil_checkpoint pour enregistrer les informations de point de contrôle. Ce répertoire est supprimé une fois le téléchargement réussi. Si vous spécifiez un répertoire pour cette option, assurez-vous qu'il peut être supprimé.

--encoding-type

Format d'encodage des noms de fichiers. Définissez la valeur sur url. Si vous ne spécifiez pas cette option, les noms de fichiers ne sont pas encodés.

--snapshot-path

Spécifie le répertoire d'enregistrement des informations de snapshot pour la synchronisation. Lors de la prochaine tâche de synchronisation, ossutil lit les informations de snapshot depuis ce répertoire pour effectuer une synchronisation incrémentielle.

--include

Inclut tous les fichiers qui répondent à la condition spécifiée.

Pour plus d'informations, consultez les options include et exclude.

--exclude

Exclut tous les fichiers qui répondent à la condition spécifiée.

Pour plus d'informations, consultez les options include et --exclude.

--meta

Définit les métadonnées des fichiers. Le format est header:value#header:value. Exemple : Cache-Control:no-cache#Content-Encoding:gzip. Pour plus d'informations, consultez la rubrique set-meta (Gérer les métadonnées des fichiers).

--acl

Liste de contrôle d'accès (ACL) des fichiers. Valeurs valides :

  • default : L'ACL des fichiers est héritée du bucket.

  • private (par défaut) : Seul le propriétaire du bucket dispose des autorisations de lecture et d'écriture sur les fichiers. Les autres utilisateurs ne peuvent pas accéder aux fichiers.

  • public-read : Seul le propriétaire du bucket dispose des autorisations d'écriture sur les fichiers. Les autres utilisateurs, y compris les utilisateurs anonymes, disposent uniquement des autorisations de lecture sur les fichiers. Cela peut exposer vos données et augmenter vos frais. Si des utilisateurs malveillants écrivent des informations illégales dans votre bucket, vos droits et intérêts légaux peuvent être violés. Nous vous recommandons de ne pas configurer cette autorisation, sauf dans des scénarios spécifiques.

  • public-read-write : Tous les utilisateurs, y compris les utilisateurs anonymes, disposent des autorisations de lecture et d'écriture sur les fichiers. Cela peut exposer vos données et augmenter vos frais. Utilisez cette autorisation avec prudence.

--maxupspeed

Vitesse de téléchargement maximale. Unité : Ko/s. La valeur par défaut est 0, ce qui indique que la vitesse de téléchargement n'est pas limitée.

--disable-crc64

Désactive la validation des données CRC-64.

--payer

Méthode de paiement de la requête. Si vous souhaitez que le demandeur paie les frais tels que le trafic et les requêtes générés par l'accès aux ressources du chemin spécifié, définissez cette option sur requester.

-j,--job

Nombre de tâches simultanées pour les opérations sur plusieurs fichiers. Valeur par défaut : 3. Plage de valeurs valides : 1 à 10000.

--parallel

Nombre de tâches simultanées pour une opération sur un seul fichier. Plage de valeurs valides : 1 à 10000. Si vous ne spécifiez pas cette option, ossutil détermine la valeur en fonction du type d'opération et de la taille du fichier.

--retry-times

Nombre de tentatives en cas d'erreur. Valeur par défaut : 10. Plage de valeurs valides : 1 à 500.

--tagging

Informations de tag des fichiers. Le format est TagkeyA=TagvalueA&TagkeyB=TagvalueB.....

Pour plus d'informations sur les autres options courantes de cette commande, consultez la rubrique Options courantes.

Exemples

Les exemples suivants utilisent un système Linux. Vous devez modifier les paramètres pour qu'ils correspondent à votre système d'exploitation et à votre environnement. Les exemples supposent l'environnement suivant :

Deux fichiers, d.txt et e.png, se trouvent dans le répertoire local localfolder. Le répertoire destfolder d'un bucket nommé examplebucket contient deux fichiers, a.txt et b.txt, ainsi qu'un sous-répertoire nommé C. Le contenu initial est le suivant.

Local root directory                  examplebucket
    └── localfolder         └── destfolder/
            ├── d.txt               ├── a.txt
            └── e.png               ├── b.txt
                                    └── C/

Synchroniser un dossier local vers OSS

Synchronisez tous les fichiers du répertoire local localfolder/ vers le répertoire de destination destfolder/. Cette opération télécharge uniquement les nouveaux fichiers. Les fichiers existants, tels que a.txt et b.txt, ainsi que le sous-répertoire C/ du bucket de destination, sont conservés.

ossutil sync localfolder/ oss://examplebucket/destfolder/

Une fois la synchronisation réussie, la sortie inclut le nombre de fichiers synchronisés, la taille totale des fichiers et le temps nécessaire à l'opération :

Succeed: Total num: 2, size: 750,081. OK num: 2(upload 2 files).

average speed 1641000(byte/s)

Après la synchronisation, la structure du répertoire destfolder/ est la suivante :

destfolder/
├── a.txt
├── b.txt
├── d.txt 
├── e.png 
└── C/

Supprimer les fichiers supplémentaires du répertoire de destination lors de la synchronisation

Lorsque vous synchronisez le répertoire local localfolder/, vous pouvez utiliser l'option --delete pour supprimer les fichiers et répertoires, tels que a.txt, b.txt et C/, du répertoire destfolder/ qui ne figurent pas dans la source.

ossutil sync localfolder/ oss://examplebucket/destfolder/ --delete

Après la synchronisation, la structure de répertoire de destfolder/ est identique à celle de localfolder/ :

destfolder/
├── d.txt
└── e.png

Filtrer et synchroniser des fichiers spécifiques

Vous pouvez utiliser les options --include et --exclude pour filtrer les fichiers à synchroniser.

  • Par exemple, la commande suivante synchronise uniquement les fichiers .txt.

    ossutil sync localfolder/  oss://examplebucket/destfolder/ --include "*.txt"

    Après avoir exécuté la commande, seul le fichier d.txt est téléchargé et e.png est ignoré. Les fichiers existants dans le bucket de destination ne sont pas affectés.

    destfolder/
    ├── a.txt
    ├── b.txt
    ├── d.txt 
    └── C/
  • La commande suivante synchronise uniquement les fichiers autres que .txt.

    ossutil sync localfolder/  oss://examplebucket/destfolder/ --exclude "*.txt"

    Après avoir exécuté la commande, seul le fichier e.png est téléchargé et d.txt est ignoré. Les fichiers existants dans le bucket de destination ne sont pas affectés.

    destfolder/
    ├── a.txt
    ├── b.txt
    ├── e.png 
    └── C/

Écraser de force les fichiers portant le même nom dans le répertoire de destination

Par défaut, si un fichier portant le même nom qu'un fichier que vous téléchargez existe déjà dans le répertoire de destination, ossutil vous demande de confirmer l'écrasement. Si vous êtes certain de vouloir écraser tous les fichiers de destination portant les mêmes noms, vous pouvez utiliser l'option -f ou --force pour ignorer l'invite de confirmation et forcer l'écrasement des fichiers.

ossutil sync localfolder/ oss://examplebucket/destfolder/ -f

Une fois la commande exécutée avec succès, la sortie inclut des informations telles que le nombre de fichiers synchronisés, la taille totale et la vitesse moyenne. Voici un exemple de sortie :

Succeed: Total num: 2, size: 750,081. OK num: 2(upload 2 files).

average speed 1641000(byte/s)

Synchronisation inter-comptes

Utilisez les options -e, -i et -k pour synchroniser des fichiers du répertoire local srcfolder vers le répertoire testfolder du bucket examplebucket. Ce bucket se trouve dans la région Chine (Shanghai) et appartient à un autre compte Alibaba Cloud.

Remarque

Spécifiez le endpoint correspondant à la région de votre bucket. Pour plus d'informations, consultez la rubrique Régions et endpoints.

ossutil sync srcfolder/ oss://examplebucket/testfolder/ -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
Conseil de sécurité : Inclure un AccessKey dans une commande présente un risque de sécurité. Pour les tâches automatisées ou à long terme, nous vous recommandons de créer un rôle RAM pour le compte source et d'accorder des autorisations au compte de destination. Cette méthode offre un accès inter-comptes plus sécurisé.