Einführung
Nach einzelnen Objekten veröffentlichst du eine veränderliche Sammlung. Synchronisiere Tagesberichte, unterscheide inkrementelle Übertragung von Spiegelung und entferne einen veralteten Bericht, ohne das separate Archiv anzutasten.
Schließe zuerst Dokumente mit Schlüsseln und Metadaten organisieren ab, einschließlich der Konzepte zu Buckets, Schlüsseln, Präfixen und Downloads. Diese neue VM stellt die CLI-Verbindung, lokale Berichte und einen Bucket bereit, der nur das Archiv enthält. Verwende Terminal für Befehle und AWS View oben, um deine Änderungen zu beobachten.
Bezug zu Zertifizierungen
| Zertifizierung | Prüfungsaufgabe | Übung |
|---|---|---|
| Cloud Practitioner (CLF-C02) | Aufgabe 3.6 | Verzeichnissynchronisierung und gezieltes Löschen in S3. |
| Solutions Architect – Associate (SAA-C03) | Aufgabe 3.1 | Verzeichnissynchronisierung und gezieltes Löschen in S3. |
| Developer – Associate (DVA-C02) | Aufgabe 1.3 | Verzeichnissynchronisierung und gezieltes Löschen in S3. |
Lab-Überblick

Veröffentliche das vorbereitete Berichtsverzeichnis
In diesem Schritt veröffentlichst du zwei lokale Berichte unter dem Präfix daily/ und lernst, wie ihre Dateinamen auf Objektschlüssel abgebildet werden.
Wechsle mit cd (change directory, Verzeichnis wechseln) in den Arbeitsbereich:
cd /home/labex/project
Untersuche das vorbereitete Berichtsverzeichnis mit ls, das seine lokalen Dateinamen auflistet:
ls reports
Die Liste enthält monday.csv und tuesday.csv. Beide sind CSV-Dateien: Eine Kopfzeile benennt die Spalten und Kommas trennen die Werte in jedem Datensatz. Untersuche den Montagsbericht mit cat, das den Inhalt einer Datei ausgibt:
cat reports/monday.csv
date,orders
2026-09-28,120
Liste den vorbereiteten Bucket auf. Bei einem S3-Speicherort zeigt --recursive vollständige Schlüssel im gesamten Bucket an:
aws s3 ls s3://labex-report-delivery/ --recursive
Nur archive/retention.txt ist vorhanden. Das Archiv gehört zu einem separaten Ablauf und muss deine tägliche Synchronisierung überstehen.
aws s3 sync nimmt eine Quelle und ein Ziel entgegen, in dieser Reihenfolge. Es berücksichtigt Dateien im Quellverzeichnis rekursiv; für sync benötigst du kein --recursive. Jeder relative Dateiname wird zu einem Schlüssel unterhalb des Zielpräfixes. reports/monday.csv wird deshalb zu daily/monday.csv und nicht zu daily/reports/monday.csv.
aws s3 sync reports/ s3://labex-report-delivery/daily/
Der Befehl meldet Uploads für Montag und Dienstag; ihre Ausgabereihenfolge kann variieren. Liste den gesamten Bucket erneut auf:
aws s3 ls s3://labex-report-delivery/ --recursive
Du solltest drei Schlüssel finden: archive/retention.txt, daily/monday.csv und daily/tuesday.csv. AWS View zeigt dieselben Objekte. Klicke auf daily/monday.csv, um den gespeicherten zweizeiligen CSV-Bericht zu lesen. Das Archiv bleibt außerhalb des ausgewählten Ziels daily/.
Synchronisiere eine Änderung und einen neuen Bericht
In diesem Schritt aktualisierst du einen Bericht, ergänzt einen weiteren und überträgst diese Änderungen, ohne einen unveränderten Bericht erneut hochzuladen.
Das Ausführen von sync mit derselben Quelle und demselben Ziel ist sicher, wenn sich keine Seite geändert hat:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Es gibt keine Upload-Zeilen, wenn die vorhandenen Dateien bereits aktuell sind. Bei Übertragungen von lokal nach S3 berücksichtigt die CLI, ob der Zielschlüssel fehlt, die Größen abweichen oder die lokale Datei eine neuere Änderungszeit hat. Sie überwacht das Verzeichnis nicht kontinuierlich: Du führst sync aus, wenn du Änderungen veröffentlichen möchtest.
Ergänze den Montagsbericht um eine verspätete Gruppe von 25 Bestellungen. printf gibt den Text in Anführungszeichen aus; \n beendet die Zeile. Das >> der Shell hängt an eine lokale Datei an, statt sie zu ersetzen:
printf '2026-09-28,25\n' >> reports/monday.csv
Untersuche das dreizeilige Ergebnis:
cat reports/monday.csv
date,orders
2026-09-28,120
2026-09-28,25
Erstelle den Mittwochsbericht. Hier schreibt > eine neue Datei und ersetzt vorhandenen Inhalt an diesem Pfad:
printf 'date,orders\n2026-09-30,150\n' > reports/wednesday.csv
Vor der Veröffentlichung hat der gespeicherte Montagsbericht weiterhin zwei Zeilen und Mittwoch fehlt in AWS View. Allein das Bearbeiten lokaler Dateien verändert S3 nicht.
Veröffentliche erneut:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Du solltest Uploads für den geänderten Montagsbericht und den neuen Mittwochsbericht sehen. Dienstag ist unverändert und wird deshalb nicht hochgeladen. Dies ist eine inkrementelle Übertragung: Sie kopiert Änderungen, statt einfach jede Datei zu kopieren.
In AWS View zeigt Montag jetzt die verspätete Gruppe und Mittwoch erscheint. Lade Montag auf einen separaten lokalen Pfad herunter, damit du den tatsächlich gespeicherten Inhalt vergleichen kannst:
aws s3 cp s3://labex-report-delivery/daily/monday.csv retrieved-monday.csv
cmp vergleicht Dateien Byte für Byte. Wenn die Inhalte übereinstimmen, endet es erfolgreich, ohne Unterschiede auszugeben. && gibt die Meldung erst nach diesem erfolgreichen Vergleich aus:
cmp reports/monday.csv retrieved-monday.csv && echo 'Updated report matches'
Updated report matches
Dies bestätigt, dass die Aktualisierung den Speicher erreicht hat; eine erfolgreiche Befehlsmeldung allein würde dir nicht sagen, welche Bytes gespeichert wurden.

Spiegle nur das Präfix daily/
In diesem Schritt entfernst du einen veralteten Bericht am Ziel und schützt dabei das unbeteiligte Archiv.
Das Synchronisierungsziel ist daily/; archive/ bleibt außerhalb dieses Umfangs.

Der Dienstagsbericht gehört nicht mehr zur veröffentlichten täglichen Sammlung. Entferne nur diese lokale Datei mit rm (remove, entfernen). Dies ist ein lokaler Dateisystembefehl, daher löscht er kein S3-Objekt:
rm reports/tuesday.csv
Führe erneut eine gewöhnliche Synchronisierung aus:
aws s3 sync reports/ s3://labex-report-delivery/daily/
Liste das Zielpräfix auf:
aws s3 ls s3://labex-report-delivery/daily/ --recursive
Dienstag erscheint weiterhin. Standardmäßig kopiert sync fehlende oder aktualisierte Dateien, lässt aber zusätzliche Objekte am Ziel bestehen. Allein das Entfernen einer Quelldatei entfernt ihre gespeicherte Kopie nicht.
Eine Spiegelung gleicht den Dateibestand des Ziels an die Quelle an, einschließlich Löschungen. --delete entfernt Zielschlüssel, zu denen keine passende Quelldatei existiert. Kombiniere es zuerst mit --dryrun, das vorgesehene Operationen anzeigt, ohne sie auszuführen:
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete --dryrun
Der Probelauf sollte nur die Löschung von daily/tuesday.csv auflisten. Montag und Mittwoch entsprechen der Quelle und archive/retention.txt liegt außerhalb von daily/. Halte das Zielpräfix genau ein: Die Verwendung der Bucket-Wurzel würde das Archiv in den Umfang aufnehmen.
Nachdem du die vorgesehene Löschung geprüft hast, führe dieselbe Operation ohne --dryrun aus:
aws s3 sync reports/ s3://labex-report-delivery/daily/ --delete
Der Befehl meldet die Löschung von Dienstag. Untersuche den gesamten Bucket, damit du sowohl das Verschwundene als auch das Erhaltene prüfen kannst:
aws s3 ls s3://labex-report-delivery/ --recursive
Die verbleibenden Schlüssel sind daily/monday.csv, daily/wednesday.csv und archive/retention.txt. Öffne das Archivobjekt in AWS View und bestätige, dass es weiterhin Keep the archive outside daily synchronization. enthält. Deine Spiegelung betraf nur das gewählte Präfix.
Zusammenfassung
Du hast mit sync ein veränderliches Berichtsverzeichnis veröffentlicht, die gespeicherte Aktualisierung geprüft und die Spiegelung vor --delete kontrolliert. daily/ enthält abschließend Montag und Mittwoch; das separate Archiv bleibt unverändert. Wähle vor der Veröffentlichung Übertragungsrichtung und Zielbereich.
Weitere Informationen bietet die AWS-Dokumentation: Übertragungsauswahl, Vorschau und Löschumfang bei S3 sync.



