Zum Hauptinhalt springen

S3-kompatible CLI-Tools & curl verwenden

Diese Seite zeigt die Einrichtung der gängigsten Kommandozeilen-Tools sowie den direkten API-Zugriff mit curl.

Verwendete Beispielwerte (bitte durch echte Werte ersetzen):

Endpointhttps://s3.internet1.de
Region
Access KeyIHR_ACCESS_KEY
Secret KeyIHR_SECRET_KEY

AWS CLI

Installation & Konfiguration

# Installation siehe https://docs.aws.amazon.com/cli/
aws configure
# AWS Access Key ID: IHR_ACCESS_KEY
# AWS Secret Access Key: IHR_SECRET_KEY
# Default region name:
# Default output format: json

Der Endpoint wird pro Befehl mit --endpoint-url übergeben – oder dauerhaft in ~/.aws/config:

[default]
region =
endpoint_url = https://s3.internet1.de

Typische Befehle

aws s3 ls                                        # Buckets auflisten
aws s3 mb s3://mein-bucket # Bucket anlegen
aws s3 cp datei.txt s3://mein-bucket/ # Upload
aws s3 cp s3://mein-bucket/datei.txt . # Download
aws s3 sync ./ordner s3://mein-bucket/ordner # Verzeichnis synchronisieren
aws s3 rm s3://mein-bucket/datei.txt # Objekt löschen
aws s3 rb s3://mein-bucket # leeren Bucket löschen

(Jeweils mit --endpoint-url https://s3.internet1.de, falls nicht in der Config hinterlegt.)

s3cmd

Konfiguration in ~/.s3cfg:

[default]
access_key = IHR_ACCESS_KEY
secret_key = IHR_SECRET_KEY
host_base = s3.internet1.de
host_bucket = %(bucket)s.s3.internet1.de
use_https = True
s3cmd ls                          # Buckets auflisten
s3cmd mb s3://mein-bucket # Bucket anlegen
s3cmd put datei.txt s3://mein-bucket/
s3cmd get s3://mein-bucket/datei.txt

MinIO Client (mc)

mc alias set centron https:// IHR_ACCESS_KEY IHR_SECRET_KEY

mc ls centron # Buckets auflisten
mc mb centron/mein-bucket # Bucket anlegen
mc cp datei.txt centron/mein-bucket/
mc mirror ./ordner centron/mein-bucket/ordner

rclone

rclone config
# n) New remote → Name: centron → Storage: s3 → Provider: Other
# access_key_id / secret_access_key eintragen
# region:
# endpoint: https://s3.internet1.de

Oder direkt in ~/.config/rclone/rclone.conf:

[centron]
type = s3
provider = Other
access_key_id = IHR_ACCESS_KEY
secret_access_key = IHR_SECRET_KEY
region =
endpoint = https://s3.internet1.de
rclone lsd centron:                       # Buckets auflisten
rclone copy ./ordner centron:mein-bucket # Upload
rclone sync centron:mein-bucket ./backup # Download/Sync

Direkter API-Zugriff mit curl

Für Debugging oder minimale Umgebungen lässt sich die API direkt mit curl ansprechen. S3 verlangt signierte Requests (AWS Signature v4); aktuelle curl-Versionen (≥ 7.75) übernehmen die Signierung mit --aws-sigv4:

# Objekt hochladen
curl -X PUT "https://s3.internet1.de/mein-bucket/datei.txt" \
--user "IHR_ACCESS_KEY:IHR_SECRET_KEY" \
--aws-sigv4 "aws:amz:de-central-1:s3" \
--upload-file ./datei.txt

# Objekt herunterladen
curl "https://s3.internet1.de/mein-bucket/datei.txt" \
--user "IHR_ACCESS_KEY:IHR_SECRET_KEY" \
--aws-sigv4 "aws:amz:de-central-1:s3" \
-o datei.txt

# Bucket-Inhalt auflisten (XML-Antwort)
curl "https://s3.internet1.de/mein-bucket?list-type=2" \
--user "IHR_ACCESS_KEY:IHR_SECRET_KEY" \
--aws-sigv4 "aws:amz:de-central-1:s3"

# Objekt löschen
curl -X DELETE "https://s3.internet1.de/mein-bucket/datei.txt" \
--user "IHR_ACCESS_KEY:IHR_SECRET_KEY" \
--aws-sigv4 "aws:amz:de-central-1:s3"
Info

Öffentlich lesbare Objekte oder Presigned URLs benötigen keine Signatur – ein einfaches curl -O <URL> genügt.

Nächster Schritt

Ersten Bucket erstellen →

Verwandte Themen