Synchroniser des objets dans un bucket

Vous pouvez synchroniser des répertoires entiers depuis votre machine en local ou depuis un bucket vers un autre bucket à l’aide de la commande sync, en vous assurant que seuls les objets nouveaux ou modifiés sont transférés.

sync synchronise les objets en comparant d’abord leurs tailles ; si les tailles correspondent, la commande vérifie ensuite leur horodotage de dernière modification. Toute divergence déclenche la synchronisation.

Vous pouvez également supprimer automatiquement les objets qui ont été supprimés en local.

Cette fonctionnalité est utile pour optimiser votre stockage tout en évitant toute action manuelle inutile, mais aussi pour gérer vos sites web avec des mises à jour de contenu efficaces.

sync ignore les répertoires vides. Par conséquent, les dossiers vides dans le répertoire source ne seront pas copiés dans le répertoire de destination. Cette fonctionnalité ne peut pas être désactivée.

Synchroniser des objets dans un bucket avec AWS CLI (s3)

Avant de commencer : Installez et configurez AWS CLI et définissez votre profil. Pour en savoir plus, voir Installer et configurer AWS CLI.

Pour synchroniser un objet avec l’un de vos buckets, utilisez la commande sync en suivant cette syntaxe :

Exemple de requête
$ aws s3 sync PATH/TO/DIRECTORY_TO_SYNC or s3://BUCKET_TO_SYNC s3://YOUR_BUCKET/ \
    --profile YOUR_PROFILE \
    --dryrun \
    --include \
    --exclude \
    --follow-symlinks \
    --acl \
    --no-guess-mime-type \
    --website-redirect \
    --content-type \
    --cache-control \
    --content-disposition \
    --content-encoding \
    --content-language \
    --expires \
    --only-show-errors \
    --no-progress \
    --page-size \
    --request-payer \
    --metadata \
    --metadata-directive \
    --copy-props \
    --size-only \
    --exact-timestamps \
    --delete \
    --debug \
    --no-sign-request \
    --no-verify-ssl \
    --no-paginate \
    --endpoint https://oos.eu-west-2.outscale.com

Cette commande contient les attributs suivants que vous devez spécifier :

  • PATH/TO/DIRECTORY_TO_SYNC ou s3://BUCKET_TO_SYNC/ : Le chemin d’accès au répertoire sur votre machine en local ou le contenu du bucket (si vous avez les permissions appropriées) que vous souhaitez synchroniser.

  • s3://YOUR_BUCKET : Le nom du bucket dans lequel vous souhaitez que le répertoire soit synchronisé.

  • (optionnel) profile : Le profil nommé que vous voulez utiliser, créé pendant la configuration d’AWS CLI. Pour en savoir plus, voir Installer et configurer AWS CLI.

  • (optionnel) dryrun : Fournit une vue d’ensemble des opérations effectuées par la commande sans pour autant l’exécuter. Vous pouvez utiliser cet attribut comme mesure de sécurité pour examiner l’impact d’une commande avant de l’exécuter.

  • (optionnel) include : Spécifie des règles pour inclure des fichiers dans l’opération de synchronisation, en remplaçant les règles d’exclusion globales et en s’assurant que les fichiers spécifiques soient toujours synchronisés.

  • (optionnel) exclude : Spécifie des règles pour exclure des fichiers de l’opération de synchronisation, ce qui permet de filtrer les fichiers ou les répertoires indésirables.

  • (optionnel) follow-symkinks : Suit les liens symboliques dans le répertoire source, en téléchargeant le contenu cible dans le bucket sous le nom du lien symbolique, dans la mesure où S3 ne prend pas en charge les liens symboliques.

  • (optionnel) acl : Les permissions que vous accordez pour votre objet (private | public-read | public-read-write | authenticated-read | bucket-owner-read | bucket-owner-full-control).

  • (optionnel) no-guess-mime-type : Empêche la configuration automatique d’un type MIME basé sur l’extension du fichier. Cette fonctionnalité est utile si vous devez vous assurer qu’un content-type (type de contenu) spécifique est utilisé.

  • (optionnel) website-redirect : Si vous avez configuré le bucket comme site web, redirige les requêtes pour cet objet vers un autre objet dans le même bucket ou vers une URL externe.

  • (optionnel) content-type : Le type MIME (Multipurpose Internet Mail Extensions) de l’objet.

    Un attribut content-type mal défini ou absent peut entraîner une mauvaise interprétation ou un mauvais traitement des objets par les navigateurs. En conséquence, vous pouvez rencontrer des difficultés pour accéder à vos objets ou les visualiser à l’aide de votre navigateur préféré.

  • (optionnel) cache-control : Comment vous souhaitez que l’objet soit traité en termes de mise en cache (max-age | max-stale | min-fresh | no-cache | no-store | no-transform | only-if-cached | stale-if-error).

  • (optionnel) content-disposition : Comment vous souhaitez que l’objet soit affiché lorsque vous y accédez par le biais d’un navigateur ("inline" | "attachment" | "attachment; filename="<NOM_DU_FICHIER>"")

  • (optionnel) content-encoding : Le format d’encodage de l’objet (gzip | compress | deflate | identity | br).

  • (optionnel) content-language : La langue dans laquelle le contenu de l’objet est rédigé, en code de langue (format ISO 639).

  • (optionnel) expires : La date et l’heure, en format UTC, à laquelle vous considérez que l’objet ne peut plus être mis en cache et est considéré comme périmé.

  • (optionnel) only-show-errors : Limite la sortie aux seules erreurs, ce qui facilite la détection des problèmes dans les scripts ou les environnements automatisés.

  • (optionnel) no-progress : Désactive l’affichage de la progression pendant l’opération de synchronisation. Cette fonction est utile pour les scripts ou les journaux pour lesquels vous n’avez pas besoin de mises à jour de progression en temps réel.

  • (optionnel) page-size : Détermine le nombre de requêtes effectuées lors d’un appel. Une taille de page plus petite augmente le nombre d’appels mais aide à éviter les dépassements de délai en récupérant moins d’éléments à chaque requête. Par exemple, si vous avez un bucket de 120 objets et que vous fixez la taille de la page à 10, la CLI devra effectuer 12 requêtes pour récupérer tous les objets. Si vous fixez la taille de la page à 60, seulement 2 requêtes seront nécessaires.

    • La valeur par défaut est 1000.

    • Les valeurs minimales et maximales sont 1 and 1000.

  • (optionnel) request-payer : Configure l’opération pour qu’elle soit effectuée en tant que demandeur-payeur, ce qui signifie que c’est le demandeur plutôt que le propriétaire du bucket qui paie le coût du transfert de données.

  • (optionnel) metadata : Une carte des entrées de metadata supplémentaires que vous pouvez indiquer librement.

    • key : Le nom de la metadata.

    • value : La valeur de la metadata.

  • (optionnel) metadata-directive : Permet de déterminer si les metadata doivent être copiées à partir des objets sources ou remplacées par les metadata fournies dans la requête (COPY ou REPLACE).

  • (optionnel) copy-props : Détermine les propriétés que vous souhaitez copier depuis l’objet source (none | metadata-directive | default).

    • none ne copie aucune des propriétés de l’objet source.

    • metadata-directive copie les valeurs suivantes depuis l’objet source : content-type, content-language, content-encoding, content-disposition, cache-control, expires, et metadata.

    • default-value copie les tags et les metadata spécifiées par la valeur metadata-directive de l’objet source.

  • (optionnel) size-only : Ordonne à la commande de n’utiliser que la taille du fichier, et non l’heure de la dernière modification, pour déterminer si un fichier doit être copié. Cette fonctionnalité permet de réduire le nombre de requêtes HTTP HEAD pendant la synchronisation.

  • (optionnel) exact-timestamps : Utilise des horodatages précis pour comparer les fichiers, garantissant que seuls les fichiers dont l’horodatage est le plus récent sont copiés, ce qui permet un contrôle plus granulaire de ce qui est considéré comme un fichier "plus récent".

  • (optionnel) delete : Supprime les fichiers du répertoire de destination qui n’ont pas d’équivalent dans le répertoire source, ce qui garantit que le répertoire de destination reflète exactement le répertoire source.

  • (optionnel) debug : Si inclus, renvoie un rapport détaillé de l’opération. Cet attribut est utile pour analyser et résoudre les problèmes que vous pouvez rencontrer.

  • (optionnel) no-sign-request : Effectue l’opération sans signer la demande. Ceci est utile pour accéder à des ressources publiques sans utiliser vos informations d’identification.

  • (optionnel) no-paginate : Désactive la pagination de la sortie. Cette fonction est utile pour les commandes qui produisent un grand volume de données.

  • endpoint : Le endpoint correspondant à la Région à laquelle vous voulez envoyer la requête.

Page connexe

AWS™ et Amazon Web Services™ sont des marques de commerce d’Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.