Einführung
Aktiviere S3-Versionen, veröffentliche einen falschen Entwurf, hole frühere Bytes zurück und entferne deine Versionen.
Schließe die vorherigen Portfolio-Labs ab. Dieses Lab liefert eigene Ressourcen und benötigte frühere Fähigkeiten. Übernimm Wissen, keine alten Instanzen, Dateien oder Zugangsdaten.
Zertifizierungsbezug
| Zertifizierung | Aufgaben | Übung |
|---|---|---|
| AWS Certified Cloud Practitioner (CLF-C02) | Task 3.6 | Anwendungsinhalte durch S3-Versionierung erhalten und wiederherstellen. |
Überblick

Eine richtige Version bewahren
In diesem Schritt aktivierst du Versionierung und speicherst einen VersionId. Prüfe zunächst AURA. Normales Lesen liefert die aktuelle Version, VersionId eine bestimmte frühere. Prüfe das AURA-Bild mit den Pflegeprodukten. Die vier Anfangsversionen heißen null; neue Versionen erstellst du nur für images/aura-brand.webp.
Wechsle ins Projekt.
cd /home/labex/project
Lade und zeige den Bucket.
source website.env
echo "$PORTFOLIO_BUCKET"
Aktiviere Status=Enabled.
aws s3api put-bucket-versioning --bucket "$PORTFOLIO_BUCKET" --versioning-configuration Status=Enabled
Lies Enabled zurück. Das frühere Objekt behält null; Aktivierung weist ihm rückwirkend keine neue ID zu.
aws s3api get-bucket-versioning --bucket "$PORTFOLIO_BUCKET"
put-object lädt die body-Datei hoch; speichere und zeige ORIGINAL_VERSION. Ein Backslash am Zeilenende setzt denselben Befehl in der nächsten Zeile fort.
ORIGINAL_VERSION=$(aws s3api put-object \
--bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp \
--body portfolio-assets/images/aura-brand.webp --content-type image/webp \
--query VersionId --output text)
echo "$ORIGINAL_VERSION"
Prüfe das AURA-Bild mit den Pflegeprodukten. Die vier Anfangsversionen heißen null; neue Versionen erstellst du nur für images/aura-brand.webp.
Falsche Aktualisierung beobachten
In diesem Schritt veröffentlichst du den absichtlich falschen Entwurf unter demselben Key.
Lade aura-draft.webp hoch und speichere DRAFT_VERSION.
DRAFT_VERSION=$(aws s3api put-object \
--bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp \
--body aura-draft.webp --content-type image/webp \
--query VersionId --output text)
echo "$DRAFT_VERSION"
aura-draft.webp enthält das ECHO-Schallplattenbild. Nach dem Upload zum AURA-Key zeigt AURA die Schallplatte statt Pflegeprodukte. FORMA und ECHO bleiben unverändert; die frühere korrekte Version bleibt in S3. Die Liste zeigt die Versionen des Buckets. Prüfe die Zeilen mit Key images/aura-brand.webp; die anderen drei Keys behalten null.
aws s3api list-object-versions --bucket "$PORTFOLIO_BUCKET"
aura-draft.webp enthält das ECHO-Schallplattenbild. Nach dem Upload zum AURA-Key zeigt AURA die Schallplatte statt Pflegeprodukte. FORMA und ECHO bleiben unverändert; die frühere korrekte Version bleibt in S3.

Das frühere Bild wiederherstellen
In diesem Schritt lädst du die gespeicherte Version herunter und veröffentlichst deren Bytes als aktuelle.
get-object mit version-id wählt ORIGINAL_VERSION; der letzte Name ist das lokale Ziel.
aws s3api get-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$ORIGINAL_VERSION" recovered-aura.webp
cmp prüft identische Bytes ohne Ausgabe.
cmp portfolio-assets/images/aura-brand.webp recovered-aura.webp
Veröffentliche die wiederhergestellte Datei und speichere RESTORED_VERSION.
RESTORED_VERSION=$(aws s3api put-object \
--bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp \
--body recovered-aura.webp --content-type image/webp \
--query VersionId --output text)
echo "$RESTORED_VERSION"
Lade neu: AURA zeigt wieder Pflegeprodukte. Herunterladen allein ändert die aktuelle Version nicht; erneutes Hochladen der wiederhergestellten Bytes erstellt RESTORED_VERSION. FORMA, ECHO und projects.json bleiben erhalten.

Übungsversionen bereinigen
In diesem Schritt entfernst du exakt drei erzeugte Versionen und behältst null. Ein Löschen ohne ID kann einen Delete Marker erzeugen statt historische Bytes zu entfernen.
Entferne nur RESTORED_VERSION.
aws s3api delete-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$RESTORED_VERSION"
Entferne nur DRAFT_VERSION.
aws s3api delete-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$DRAFT_VERSION"
Entferne nur die neue ORIGINAL_VERSION.
aws s3api delete-object --bucket "$PORTFOLIO_BUCKET" --key images/aura-brand.webp --version-id "$ORIGINAL_VERSION"
Prüfe, dass allein null bleibt. Die Liste zeigt die Versionen des Buckets. Prüfe die Zeilen mit Key images/aura-brand.webp; die anderen drei Keys behalten null.
aws s3api list-object-versions --bucket "$PORTFOLIO_BUCKET"
Beende den temporären Server.
aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"
Warte auf den Endzustand.
aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"
Behalte Bucket, ursprüngliches null-Bild und Referenzen. Versionierung bleibt aktiv. Das nächste Lab startet unabhängig.
Zusammenfassung
Du hast eine Version bewahrt, falsche und wiederhergestellte Bilder gesehen und nur deine neuen Versionen entfernt.
Offizielle Quellen: S3 Versioning, retrieving object versions.



