Introduction
Après avoir organisé des objets individuels, publiez une collection évolutive. Synchronisez les rapports quotidiens, distinguez le transfert incrémental d’un miroir et supprimez un rapport obsolète sans toucher à l’archive séparée.
Terminez d'abord Organisez les documents avec des clés et des métadonnées, notamment ses notions de compartiment, de clé, de préfixe et de téléchargement. Cette nouvelle VM fournit la connexion CLI, les rapports locaux et un compartiment contenant uniquement l'archive. Utilisez Terminal pour les commandes et AWS View en haut pour observer vos changements.
Lien avec les certifications
| Certification | Tâche d’examen | Pratique |
|---|---|---|
| Cloud Practitioner (CLF-C02) | Tâche 3.6 | Synchronisation de répertoires et suppression ciblée dans S3. |
| Solutions Architect – Associate (SAA-C03) | Tâche 3.1 | Synchronisation de répertoires et suppression ciblée dans S3. |
| Developer – Associate (DVA-C02) | Tâche 1.3 | Synchronisation de répertoires et suppression ciblée dans S3. |
Vue d’ensemble du laboratoire

Publiez le répertoire de rapports préparé
Dans cette étape, vous publierez deux rapports locaux vers le préfixe daily/ et comprendrez comment leurs noms de fichiers correspondent aux clés d'objet.
Rejoignez l'espace de travail avec cd (change directory, changer de répertoire) :
cd /home/labex/project
Examinez le répertoire de rapports préparé avec ls, qui liste ses noms de fichiers locaux :
ls reports
La liste contient monday.csv et tuesday.csv. Tous deux sont des fichiers CSV : un en-tête nomme les colonnes et des virgules séparent les valeurs de chaque enregistrement. Examinez le rapport du lundi avec cat, qui affiche le contenu d'un fichier :
cat reports/monday.csv
date,orders
2026-09-28,120
Listez le compartiment préparé. Pour un emplacement S3, --recursive affiche les clés complètes de tout le compartiment :
aws s3 ls s3://labex-report-delivery/ --recursive
Seul archive/retention.txt est présent. L'archive appartient à un processus distinct et doit être conservée pendant votre synchronisation quotidienne.
aws s3 sync prend une source et une destination, dans cet ordre. Il examine récursivement les fichiers du répertoire source ; vous n'avez pas besoin de --recursive pour sync. Chaque nom de fichier relatif devient une clé sous le préfixe de destination. reports/monday.csv devient donc daily/monday.csv, plutôt que daily/reports/monday.csv.
aws s3 sync reports/ s3://labex-report-delivery/daily/
La commande indique les chargements pour le lundi et le mardi ; leur ordre dans la sortie peut varier. Listez à nouveau tout le compartiment :
aws s3 ls s3://labex-report-delivery/ --recursive
Vous devriez trouver trois clés : archive/retention.txt, daily/monday.csv et daily/tuesday.csv. AWS View affiche les mêmes objets. Cliquez sur daily/monday.csv pour lire le rapport CSV stocké de deux lignes. L'archive reste en dehors de la destination daily/ sélectionnée.
Synchronisez une modification et un nouveau rapport
Dans cette étape, vous mettrez à jour un rapport, en ajouterez un autre et transférerez ces changements sans recharger un rapport inchangé.
Exécuter sync avec la même source et la même destination est sans risque lorsque ni l'une ni l'autre n'a changé :
aws s3 sync reports/ s3://labex-report-delivery/daily/
Aucune ligne de chargement n'apparaît lorsque les fichiers existants sont déjà à jour. Pour les transferts locaux vers S3, la CLI examine si la clé de destination manque, si les tailles diffèrent ou si le fichier local a une date de modification plus récente. Elle ne surveille pas continuellement le répertoire : vous exécutez sync lorsque vous souhaitez publier des changements.
Ajoutez au rapport du lundi un lot tardif de 25 commandes. printf affiche le texte entre guillemets ; \n termine la ligne. L'opérateur >> du shell ajoute du contenu à un fichier local au lieu de le remplacer :
printf '2026-09-28,25\n' >> reports/monday.csv
Examinez le résultat de trois lignes :
cat reports/monday.csv
date,orders
2026-09-28,120
2026-09-28,25
Créez le rapport du mercredi. Ici, > écrit un nouveau fichier, remplaçant tout contenu existant à ce chemin :
printf 'date,orders\n2026-09-30,150\n' > reports/wednesday.csv
Avant la publication, le rapport du lundi stocké contient toujours deux lignes et le mercredi est absent d'AWS View. Modifier uniquement les fichiers locaux ne change pas S3.
Publiez à nouveau :
aws s3 sync reports/ s3://labex-report-delivery/daily/
Vous devriez voir les chargements du rapport du lundi modifié et du nouveau rapport du mercredi. Le mardi est inchangé et n'est donc pas chargé. C'est un transfert incrémental : il copie les changements plutôt que de recopier systématiquement tous les fichiers.
Dans AWS View, le lundi affiche maintenant le lot tardif et le mercredi apparaît. Téléchargez le lundi vers un chemin local distinct pour comparer le contenu réellement stocké :
aws s3 cp s3://labex-report-delivery/daily/monday.csv retrieved-monday.csv
cmp compare les fichiers octet par octet. Il se termine avec succès sans afficher de différences lorsque les contenus correspondent. && affiche le message uniquement après cette comparaison réussie :
cmp reports/monday.csv retrieved-monday.csv && echo 'Updated report matches'
Updated report matches
Cela confirme que la mise à jour a atteint le stockage ; un simple message de commande réussie ne vous indiquerait pas quels octets ont été stockés.

Mettez en miroir uniquement le préfixe quotidien
Dans cette étape, vous supprimerez un rapport obsolète à la destination en protégeant l'archive sans rapport avec cette opération.
La destination de sync est daily/ ; archive/ reste en dehors de ce périmètre.

Le rapport du mardi ne fait plus partie de la collection quotidienne publiée. Supprimez uniquement ce fichier local avec rm (remove). C'est une commande du système de fichiers local ; elle ne supprime donc pas d'objet S3 :
rm reports/tuesday.csv
Relancez une synchronisation ordinaire :
aws s3 sync reports/ s3://labex-report-delivery/daily/
Listez le préfixe de destination :
aws s3 ls s3://labex-report-delivery/daily/ --recursive
Le mardi apparaît toujours. Par défaut, sync copie les fichiers manquants ou mis à jour, mais laisse les objets supplémentaires à la destination. Supprimer un fichier source seul ne supprime pas sa copie stockée.
Un miroir maintient l'ensemble de fichiers de la destination aligné sur la source, suppressions comprises. --delete supprime les clés de destination sans fichier source correspondant. Combinez-le d'abord avec --dryrun, qui affiche les opérations prévues sans les exécuter :
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete --dryrun
L'essai à blanc devrait lister uniquement la suppression de daily/tuesday.csv. Le lundi et le mercredi correspondent à la source, et archive/retention.txt est en dehors de daily/. Gardez le préfixe de destination exact : utiliser la racine du compartiment inclurait l'archive dans le périmètre.
Après avoir vérifié la suppression prévue, exécutez la même opération sans --dryrun :
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete
La commande indique la suppression du mardi. Examinez tout le compartiment pour vérifier à la fois ce qui a disparu et ce qui a été conservé :
aws s3 ls s3://labex-report-delivery/ --recursive
Les clés restantes sont daily/monday.csv, daily/wednesday.csv et archive/retention.txt. Dans AWS View, ouvrez l'objet d'archive et confirmez qu'il affiche toujours Keep the archive outside daily synchronization. Votre opération de mise en miroir a affecté uniquement le préfixe choisi.
Résumé
Vous avez publié un répertoire évolutif avec sync, vérifié la mise à jour stockée et prévisualisé le miroir avant --delete. La collection finale daily/ contient les rapports de lundi et mercredi ; l’archive séparée reste intacte. Choisissez le sens du transfert et la portée de la destination avant de publier.
Pour approfondir ce sujet, consultez la documentation AWS : Sélection des transferts, aperçu et périmètre de suppression de S3 sync.



