AWS S3

S3 Cheat Sheet – CLI

Bucket-Namen und Datei eintragen → Befehle anpassen → kopieren.

Buckets anzeigen & erstellen

Alle Buckets auflisten
aws s3 ls
Ausgabe
2026-03-10 08:50:51 awsbudhge1
2026-03-10 09:32:26 dhge-bucket-max1
Inhalt eines Buckets auflisten
aws s3 ls s3://BUCKET/
Ausgabe
2026-03-10 09:17:15 477 datei.svg
Bucket erstellen
aws s3 mb s3://BUCKET
mb = make bucket. Name muss global eindeutig sein — lowercase, keine Leerzeichen.
Bucket löschen (leer)
aws s3 rb s3://BUCKET
Bucket löschen inkl. aller Dateien
aws s3 rb s3://BUCKET --force
--force löscht zuerst alle Objekte, dann den Bucket. Nicht rückgängig zu machen!

Dateien hochladen

Datei hochladen (cp)
aws s3 cp /pfad/zur/datei s3://BUCKET/datei
Dateinamen mit Leerzeichen immer in Anführungszeichen: "/pfad/datei (1).svg"
Ganzen Ordner hochladen (recursive)
aws s3 sync /pfad/zum/ordner s3://BUCKET/
sync lädt nur neue oder geänderte Dateien hoch — ideal für mehrere Dateien.
Bucket zu Bucket synchronisieren (S3 -> S3)
aws s3 sync s3://QUELLE-BUCKET/ s3://ZIEL-BUCKET/
Kopiert neue/geänderte Objekte zwischen zwei Buckets.
Datei herunterladen
aws s3 cp s3://BUCKET/datei ~/Downloads/
Datei löschen
aws s3 rm s3://BUCKET/datei

Temporärer Download-Link (Presigned URL)

Link 1 Stunde gültig
aws s3 presign s3://BUCKET/datei --expires-in 3600
Link 24 Stunden gültig
aws s3 presign s3://BUCKET/datei --expires-in 86400
Link 1 Woche gültig
aws s3 presign s3://BUCKET/datei --expires-in 604800
ℹ Die URL enthält einen signierten Token — jeder mit dem Link kann die Datei herunterladen, ohne AWS-Zugang. Nach Ablauf der Zeit ist der Link ungültig.

Bucket & Objekte abfragen

Metadaten einer Datei anzeigen
aws s3api head-object --bucket BUCKET --key datei
Zeigt ContentType, Größe, Last-Modified — ohne die Datei herunterzuladen.
Alle Objekte eines Buckets auflisten (JSON)
aws s3api list-objects-v2 --bucket BUCKET
Nur Dateinamen ausgeben
aws s3api list-objects-v2 --bucket BUCKET --query "Contents[].Key"
Bucket-Größe berechnen
aws s3 ls s3://BUCKET/ --recursive --human-readable --summarize
Ausgabe (unten)
Total Objects: 3
Total Size: 12.4 KiB

Einzelne Datei per JSON-Bucket-Policy öffentlich machen

1) Policy-Datei erstellen (nur 1 Objekt öffentlich)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadSingleObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET/datei.json" } ] }
Speichere den Inhalt als policy-public-single.json und ersetze BUCKET/datei.json.
2) Policy setzen
aws s3api put-bucket-policy --bucket BUCKET --policy file://policy-public-single.json
3) Web-Link der Datei
https://BUCKET.s3.amazonaws.com/datei.json
⚠ Falls Zugriff trotz Policy blockiert ist: in S3 beim Bucket "Block public access" so anpassen, dass Bucket-Policy für diesen Lernfall wirksam werden kann.

Zugriff wieder einschränken

Öffentliche Bucket-Policy entfernen
aws s3api delete-bucket-policy --bucket BUCKET
Optional: Objekt wieder privat setzen
aws s3api put-object-acl --bucket BUCKET --key datei.json --acl private

JSON-Datei mit Key-Value und Liste erstellen/lesen

Datei erstellen
cat > daten.json <<EOF { "name": "Max Mustermann", "kurs": "AWS", "punkte": [85, 90, 95], "aktiv": true } EOF
Datei lesen
cat daten.json
Nur Listenwert lesen (Beispiel mit jq)
jq ".punkte" daten.json
Ausgabe: [85,90,95]. Falls jq fehlt, reicht cat daten.json.
⚠ AWS Academy: Credentials sind temporär und laufen nach ~4h ab. Nach jedem Lab-Neustart neue Credentials aus "AWS Details → AWS CLI" kopieren und in ~/.aws/credentials einfügen.