Einführung
Ein Team speichert Finance- und HR-Dokumente in einem S3-Bucket. Du gibst ihnen aussagekräftige Namen und Eigenschaften, rufst einen Bericht ab und entfernst die Finance-Gruppe, während HR bis zur abschließenden Bereinigung erhalten bleibt.
Schließe zuerst Dateien in S3 speichern und abrufen ab. Diese neue VM stellt die CLI-Verbindung und lokale Dokumente bereit; frühere Ressourcen oder persönliche Zugangsdaten werden nicht benötigt. Verwende Terminal für Befehle und den Tab AWS View daneben, um gespeicherte Schlüssel, Eigenschaften und Inhalte zu vergleichen.
Bezug zu Zertifizierungen
Dieses Lab bietet praktische Übungen zu den folgenden Prüfungsthemen.
- Cloud Practitioner (CLF-C02) · Aufgabe 3.6: S3-Schlüssel, Präfixe und Objektmetadaten.
- Solutions Architect – Associate (SAA-C03) · Aufgabe 3.1: S3-Schlüssel, Präfixe und Objektmetadaten.
- Developer – Associate (DVA-C02) · Aufgabe 1.3: S3-Schlüssel, Präfixe und Objektmetadaten.
Wähle Schlüssel und lade Teamdokumente hoch
In diesem Schritt trennst du die Dokumente zweier Abteilungen in einem Bucket durch aussagekräftige Objektschlüssel.
Ein lokales Verzeichnis speichert Dateien auf deinem Rechner; ein Bucket speichert Objekte in S3. Wechsle mit cd (change directory, Verzeichnis wechseln) in den vorbereiteten Arbeitsbereich:
cd /home/labex/project
Das bereitgestellte Verzeichnis documents enthält zwei kleine Textdateien. cat gibt ihren Inhalt aus, damit du weißt, was du gleich speicherst:
cat documents/revenue.csv
month,revenue
2026-09,42000
Eine CSV-Datei verwendet Kommas zur Trennung von Spalten. Hier sind die zwei Spalten Monat und Umsatz; jede folgende Zeile ist ein Datensatz.
cat documents/welcome.txt
Welcome to the reporting team.
Erstelle mit aws s3 mb (make bucket) einen Bucket. s3:// bezeichnet einen Speicherort und keinen lokalen Pfad:
aws s3 mb s3://labex-team-documents
Der Befehl meldet make_bucket: labex-team-documents.
Der Finance-Schlüssel lautet finance/2026-09/revenue.csv. Die Schrägstriche erleichtern die Gruppierung des Namens, aber S3 erstellt keine Dateisystemverzeichnisse: Die gesamte Zeichenfolge ist ein Objektschlüssel. Sein Präfix finance/ gruppiert Finance-Dokumente; das längere Präfix finance/2026-09/ beschränkt die Gruppe auf einen Monat.
Content-Type ist ein Standardmetadatum, das das Medienformat einer Datei beschreibt. text/csv bezeichnet durch Kommas getrennten Text. Eigene Metadaten enthalten deine eigenen beschreibenden Schlüssel-Wert-Paare. Hier beschreiben department=finance und period=2026-09 den Bericht; sie gewähren keine Berechtigungen und ändern nicht seinen Inhalt.
Dieses Beispiel trennt das Präfix des Schlüssels vom restlichen Namen; Metadaten gehören zum Objekt.

aws s3 cp kopiert den ersten Pfad auf den zweiten. --content-type setzt ausdrücklich das Format. --metadata akzeptiert durch Kommas getrennte Paare name=value. Anführungszeichen halten das Metadatenargument zusammen. Ein umgekehrter Schrägstrich am Zeilenende setzt denselben Befehl in der nächsten Zeile fort:
aws s3 cp documents/revenue.csv s3://labex-team-documents/finance/2026-09/revenue.csv \
--content-type text/csv \
--metadata 'department=finance,period=2026-09'
Die Upload-Meldung nennt den Zielschlüssel. Lade das Begrüßungsdokument mit seinem eigenen Schlüssel und seinen Eigenschaften hoch. text/plain bedeutet gewöhnlichen Text ohne spezielles Dokumentformat:
aws s3 cp documents/welcome.txt s3://labex-team-documents/hr/welcome.txt \
--content-type text/plain \
--metadata 'department=hr'
Verwende ls (list, auflisten) und --recursive, um vollständige Schlüssel im gesamten Bucket anzuzeigen, statt sie in ordnerähnliche Präfixe zu gruppieren:
aws s3 ls s3://labex-team-documents/ --recursive
Zwei Zeilen enden mit finance/2026-09/revenue.csv und hr/welcome.txt; Zeitstempel variieren. AWS View zeigt beide Schlüssel im selben Bucket. Du hast Objekte anhand ihrer Namen organisiert, ohne für jede Abteilung separate Buckets zu erstellen.
Untersuche Eigenschaften und rufe einen Bericht ab
In diesem Schritt wählst du die Objekte einer Abteilung aus, untersuchst Metadaten und weist nach, dass ein heruntergeladener Bericht seiner Quelle entspricht.
aws s3api stellt einzelne S3-API-Operationen bereit. Die Befehle von aws s3 auf höherer Ebene erledigen übliche Dateiabläufe; beide arbeiten mit denselben Objekten. list-objects-v2 listet Objektdatensätze auf. --bucket benennt den Behälter und --prefix beschränkt die von S3 zurückgegebenen Schlüssel auf diejenigen, die mit dieser Zeichenfolge beginnen:
aws s3api list-objects-v2 --bucket labex-team-documents --prefix finance/
Suche in Contents nach finance/2026-09/revenue.csv. Diese Antwort enthält kein HR-Objekt, weil hr/welcome.txt nicht mit finance/ beginnt. Ein Präfix filtert Namen und keine eigenen Metadaten: department=finance allein würde einen anders benannten Schlüssel nicht in dieses Ergebnis aufnehmen.
head-object ruft die Eigenschaften des Objekts ab, ohne seinen Inhalt herunterzuladen. Gib den vollständigen Schlüssel einschließlich seines Präfixes an:
aws s3api head-object --bucket labex-team-documents --key finance/2026-09/revenue.csv
Die Antwort enthält ContentType mit dem Wert text/csv, ContentLength (gespeicherte Bytes) und ein Metadata-Objekt mit department und period. Andere Felder wie Zeitstempel und ETag beschreiben das gespeicherte Objekt. Metadaten sind mit der gespeicherten Kopie verbunden und nicht mit der ursprünglichen lokalen Datei.
Klicke in AWS View auf finance/2026-09/revenue.csv. Die aufgeklappte Karte zeigt seinen Content-Type, eigene Metadaten und tatsächlich gespeicherte CSV-Inhalte. Vergleiche diese mit der CLI-Antwort.
Dieses Beispiel zeigt das aufgeklappte Finance-Objekt mit Eigenschaften und Inhalt aus dem Speicher:

Lade die Datei mit der S3-URI als Quelle und einem neuen lokalen Dateinamen als Ziel herunter. Sein Name muss nicht mit dem Schlüssel übereinstimmen:
aws s3 cp s3://labex-team-documents/finance/2026-09/revenue.csv retrieved-revenue.csv
Untersuche den abgerufenen Inhalt:
cat retrieved-revenue.csv
Du solltest dieselben zwei CSV-Zeilen sehen, die du zuvor untersucht hast. cmp vergleicht zwei lokale Dateien Byte für Byte; bei Übereinstimmung erzeugt es keine Ausgabe. Das && der Shell führt die Meldung nur aus, wenn dieser Vergleich erfolgreich ist:
cmp documents/revenue.csv retrieved-revenue.csv && echo 'Report content matches'
Report content matches
Dies beweist, dass der Abruf die Bytes des Berichts erhalten hat. Deine lokale Datei enthält den Inhalt; verwende head-object, wenn du die in S3 gespeicherten Eigenschaften untersuchen möchtest.
Entferne nur das Finance-Präfix
In diesem Schritt entfernst du die Finance-Dokumente, während das HR-Dokument erhalten bleibt.
Ein gemeinsam genutzter Bucket kann unbeteiligte Arbeit enthalten. Das Löschen des gesamten Buckets oder die Verwendung seiner Wurzel als Ziel einer rekursiven Löschung würde beide Abteilungen betreffen. Wähle stattdessen das konkrete Präfix finance/. Der abschließende Schrägstrich gehört zum Präfix und hält Namen wie finance-archive.csv außerhalb dieses Umfangs.
aws s3 rm entfernt Objekte. --recursive wendet die Operation auf alle passenden Schlüssel an und --dryrun listet die vorgesehenen Operationen auf, ohne sie auszuführen. Sieh dir zuerst den genauen Umfang an:
aws s3 rm s3://labex-team-documents/finance/ --recursive --dryrun
Die Ausgabe des Probelaufs nennt nur finance/2026-09/revenue.csv. Sie darf hr/welcome.txt nicht nennen. Die Objekte existieren zu diesem Zeitpunkt weiterhin.
Entferne --dryrun, um die geprüfte Operation auszuführen:
aws s3 rm s3://labex-team-documents/finance/ --recursive
Die Ausgabe bestätigt die Löschung des Finance-Schlüssels. Frage den Bucket erneut ab:
aws s3 ls s3://labex-team-documents/ --recursive
Nur hr/welcome.txt bleibt übrig. Klappe dieses verbleibende Objekt in AWS View auf: Seine Begrüßungsnachricht und Metadaten department=hr sind unverändert. Eine erfolgreiche Auflistung und ein erfolgreicher Lesezugriff belegen, dass du den vorgesehenen Umfang entfernt und dabei das Dokument einer anderen Abteilung erhalten hast.
Entferne die verbleibenden Lab-Ressourcen
In diesem Schritt entfernst du das verbleibende Dokument dieses Labs und den leeren Bucket.
Das HR-Objekt war während der Finance-Operation geschützt. Die Ressourcen beider Abteilungen gehören zu dieser Übung, daher kannst du das verbleibende Objekt jetzt anhand seines genauen Schlüssels entfernen, ohne ein weitreichendes rekursives Ziel zu verwenden:
aws s3 rm s3://labex-team-documents/hr/welcome.txt
Die Ausgabe bestätigt die Löschung des HR-Schlüssels. Prüfe die Inhalte des Buckets, bevor du seinen Behälter entfernst:
aws s3 ls s3://labex-team-documents/ --recursive
Der erfolgreiche Befehl gibt keine Objektzeilen aus. Ein Bucket muss leer sein, bevor rb (remove bucket, Bucket entfernen) ihn entfernen kann:
aws s3 rb s3://labex-team-documents
Die Ausgabe lautet remove_bucket: labex-team-documents. Bestätige, dass der Speicher weiterhin antwortet:
aws s3 ls
In diesem neuen Arbeitsbereich gibt es keine Bucket-Zeilen. AWS View zeigt No buckets; eine Meldung Unavailable würde bedeuten, dass die Seite den Zustand nicht feststellen kann. Deine lokalen Quell- und heruntergeladenen Dokumente bleiben zur Prüfung verfügbar.
Zusammenfassung
Du hast die Dokumente zweier Abteilungen mit vollständigen Objektschlüsseln und Präfixen organisiert, Standardmetadaten und eigene Metadaten zugewiesen, Eigenschaften über die S3-API untersucht und heruntergeladene Bytes mit ihrer Quelle verglichen. Außerdem hast du eine auf ein Präfix begrenzte Löschung vorab geprüft, ein unbeteiligtes Dokument erhalten und die verbleibenden Ressourcen dieses Labs entfernt.
Verwende Präfixe für eine vorhersehbare Gruppierung anhand von Namen und Metadaten zur Beschreibung von Objekten. Wähle Löschbereiche bewusst und prüfe die Ressourcen, die erhalten bleiben sollen.



