Verwendung des s3cmd-Clients (S3)
Mit dem s3cmd-Client kannst Du einfach mit Deinem Object Storage interagieren. Hier findest Du praktische Beispiele, wie Du den Client für Deinen Bucket unter storage.netways.cloud nutzen kannst.
Voraussetzungen
- Du besitzt einen User mit S3-Key (Access Key und Secret Key).
- Der s3cmd-Client ist auf Deinem System installiert. Falls nicht, installiere ihn über Deinen Paketmanager oder von s3tools.org.
Konfiguration des s3cmd-Clients
1. Konfiguration anlegen
Erstelle eine Konfiguration für Deinen NWS-Speicher, um nicht jedes Mal die Zugangsdaten eingeben zu müssen:
Folge den Anweisungen und gib Deine Zugangsdaten ein:
- Access Key:
ACCESS_KEY - Secret Key:
SECRET_KEY - Region:
default - Endpoint:
storage.netways.cloud - DNS-style template:
%(bucket)s.storage.netways.cloud - Use HTTPS:
Y
Grundlegende Beispiele
1. Bucket auflisten
Zeige alle Buckets in Deinem Projekt an:
2. Datei hochladen
Lade eine lokale Datei in Deinen Bucket hoch:
3. Bucket-Inhalt anzeigen
Zeige alle Dateien in einem Bucket an:
4. Verzeichnis synchronisieren
Synchronisiere ein lokales Verzeichnis mit Deinem Bucket:
5. Datei herunterladen
Lade eine Datei aus dem Bucket herunter:
6. Dateien löschen
Lösche eine Datei aus dem Bucket:
7. Datei-Statistiken anzeigen
Zeige Details zu einer Datei an:
8. Öffentlichen Link erstellen
Erstelle einen temporären Download-Link (standardmäßig 1 Stunde gültig):
9. Bucket erstellen
Grundlegende Befehle für Bucket-Policies
Für die Verwaltung öffentlicher Zugriffe (anonymous access) müssen die ACL-Befehle verwendet werden:
1. Aktuelle ACL anzeigen
2. ACL setzen
Beispiele für gängige ACL-Szenarien
ACL-Typen
Der s3cmd-Client unterstützt folgende vordefinierte ACL-Typen:
privatepublic
1. Öffentlichen Zugriff erlauben
2. Öffentlichen Zugriff für alle Dateien erlauben
3. Alle öffentlichen Zugriffe entfernen
4. ACL für bestimmten Prefix setzen
JSON-basierte Policy Verwaltung
1. JSON-Policy auf Bucket anwenden
2. Aktuelle Policy auslesen
3. Aktuelle Policy löschen
Beispiele für JSON-Policies
Beispiel 1: Lesezugriff für bestimmte IP-Bereiche
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::mein-bucket/*"],
"Condition": {
"IpAddress": {"aws:SourceIp": ["192.0.2.0/24"]}
}
}
]
}
Beispiel 2: Zeitlich begrenzter Zugriff
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::mein-bucket/öffentlich/*"],
"Condition": {
"DateLessThan": {"aws:CurrentTime": "2023-12-31T23:59:59Z"}
}
}
]
}
Tipps & Hinweise
Sicherheitshinweise
- Öffentliche Rechte (
public) sollten nur in Ausnahmefällen verwendet werden - Prüfe Policies regelmäßig auf ihre Notwendigkeit
- Kombiniere Policies mit Bucket-Quotas, um unerwünschte Nutzung zu begrenzen
- Prüfe JSON-Policies immer auf Gültigkeit
- Teste neue Policies zunächst in nicht-produktiven Umgebungen
Debugging
Füge den Parameter --debug zu Deinen Befehlen hinzu, um detaillierte Informationen zu erhalten, falls etwas nicht wie erwartet funktioniert.
Bucket Versioning
Aktivierung des Versionings
Versioning-Status prüfen
Versioning suspendieren
Object Lifecycle Management
Lifecycle-Regeln erstellen
Erstelle eine XML-Konfigurationsdatei (lifecycle.xml):
<LifecycleConfiguration>
<Rule>
<ID>AutoDeleteTempFiles</ID>
<Filter>
<Prefix>temp/</Prefix>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Days>7</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Regel anwenden: