Amazon S3 ist ein guter Ort, um Ihre Dateien in der Cloud zu sichern und zu speichern. Während einige Leute es verwenden, um ihre persönlichen Daten zu speichern, gibt es andere, die es verwenden, um Bilder und Skripte für ihre Websites zu speichern und sogar als CDN zu verwenden. Auf Ihrem Desktop können Sie einfach mit Apps wie S3Fox, CloudBerry, DragonDisk usw. auf Ihr Amazon S3-Konto zugreifen und es verwalten. Was aber, wenn Sie von der Befehlszeile darauf zugreifen müssen? Hier kommt S3cmd zum Einsatz.

S3cmd ist ein kostenloses Kommandozeilen-Tool zum Hochladen, Abrufen und Verwalten von Daten in Amazon S3. Neben S3 unterstützt es auch andere Anbieter von Cloud-Speicherdiensten, die das S3-Protokoll verwenden, z. B. Google Cloud Storage oder DreamHost DreamObjects. Die beste Verwendung für dieses Tool ist auf dem Remote-Server, wo alles in der Befehlszeile ausgeführt wird. Alternativ können Sie auch Batch-Skripte und automatische Backups nach S3 erstellen.

S3cmd ist in Python geschrieben und wird daher in allen Betriebssystemen unterstützt, solange Python installiert ist.

Installation

S3cmd wird in den meisten Linux-Repositories gefunden. In Debian / Ubuntu oder einer anderen apt-basierten Distribution können Sie S3cmd mit folgendem Befehl installieren:

 sudo apt-get installieren s3cmd 

Für Fedora, Centos oder jede andere yum-basierte Distribution:

 sudo yum installiere s3cmd 

Alternativ können Sie den Quellcode herunterladen, das Paket entpacken und das Installationsprogramm ausführen:

 sudo python setup.py installieren 

Anfangen

Bevor Sie beginnen, müssen Sie die Zugriffs- und Geheimschlüssel Ihres Amazon S3 bereithalten. Sie können die Schlüssel Access und Secret in der Amazon Management Console suchen.

Öffnen Sie das Terminal und geben Sie Folgendes ein:

 s3cmd --konfigurieren 

Sie werden zunächst aufgefordert, Ihre Zugriffs- und Geheimschlüssel einzugeben.

Als nächstes müssen Sie einen Verschlüsselungsschlüssel und den Pfad zum GPG-Programm eingeben.

Nach dem Verschlüsselungsschlüssel erscheint die Aufforderung zur Verwendung des HTTPS-Protokolls. Die Standardoption ist "Nein", Sie können jedoch für eine sichere Verbindung zu Amazon S3 auf "Ja" festlegen. Beachten Sie, dass die Verwendung des HTTPS-Protokolls die Übertragungsgeschwindigkeit verlangsamt und nicht verwendet werden kann, wenn Sie einen Proxy verwenden.

Nachdem Sie die Einstellungen konfiguriert und getestet haben, können Sie mit der Verwendung von S3cmd fortfahren. Wenn Sie die Einstellungen ändern müssen, können Sie entweder die .s3cfg- Datei in Ihrem Home-Verzeichnis bearbeiten oder den Befehl s3cmd --configure erneut s3cmd --configure .

Verwendung

Um die Buckets in Ihrem S3-Konto anzuzeigen, können Sie zunächst den Befehl ls .

 s3cmd ls 

Verwenden Sie den Befehl mb um einen Bucket zu erstellen:

 s3cmd mb s3: // test-s3cmd-bucket 

Beachten Sie, dass Sie den Bucket-Namen mit "s3: //" voranstellen müssen

Um den Inhalt in einem Bucket aufzulisten, verwenden Sie den Befehl ls zusammen mit dem Bucket-Namen. Beispielsweise:

 s3cmd ls s3: // test-s3cmd-bucket 

Hochladen der Datei in den Bucket

Der einfachste Weg, eine Datei über S3cmd hochzuladen, ist der Befehl put . Beispielsweise:

 s3cmd put text.txt s3: // test-s3cmd-bucket 

Außerdem können Sie den Parameter --encrypt, um die Datei vor dem Hochladen in S3 zu verschlüsseln.

 s3cmd put --decrypt text.txt s3: // test-s3cmd-bucket 

Die Standardberechtigung für den Befehl put ist privat, dh die Datei kann nur von Ihnen angezeigt werden. Wenn die Datei öffentlich zugänglich sein soll, können Sie den Parameter --acl-public hinzufügen

 s3cmd put --acl-public text.txt s3: // test-s3cmd-bucket 

Verwenden --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID für eine genauere Steuerung den --acl-grant=PERMISSION:EMAIL or USER_CANONICAL_ID . Beispielsweise:

 s3cmd put --acl-grant = lesen: [email protected] text.txt s3: // test-s3cmd-bucket 

Die "ERLAUBNIS" kann "gelesen", "schreiben", "read_acp", "write_acp", "full_control", "all" sein.

Dateien aus dem Bucket abrufen

Verwenden Sie den Befehl get, um eine Datei abzurufen.

 s3cmd bekomme s3: //test-s3cmd-bucket/text.txt text.txt 

Um alle Dateien im Bucket herunterzuladen, --recursive einfach den Parameter --recursive .

 s3cmd bekomme --recursive s3: // test-s3cmd-bucket 

Löschen von Dateien aus dem Bucket

Der Löschbefehl für s3cmd ist einfach del . Beispielsweise:

 s3cmd del s3: //test-s3cmd-bucket/text.txt 

Sie können auch den Parameter --recursive, um alle Dateien im Bucket zu löschen.

 s3cmd del --recursive s3: // test-s3cmd-bucket 

Weitere S3cmd-Befehle finden Sie hier.

Erweiterte Verwendung: Synchronisieren Sie einen Ordner mit S3

Angenommen, Sie speichern alle wichtigen Dateien in einem Ordner und möchten, dass sie mit S3 synchronisiert wird. S3cmd wird mit einem sync geliefert, der den lokalen Ordner mit dem Remote-Ziel synchronisieren kann.

 s3cmd sync - löschen-entfernt ~ / SecretFolder s3: // my-secret-bucket / 

Alles, was Sie tun müssen, ist einen Cronjob zu erstellen, um den Sync-Befehl regelmäßig auszuführen.

1. Öffnen Sie die Crontab.

 Crontab -e 

2. Fügen Sie am Ende der Crontab die folgende Zeile hinzu. Speichern und beenden Sie die Crontab.

 5 * * * * s3cmd sync - löschen-entfernt ~ / SecretFolder s3: // my-secret-bucket / 

Das ist es. Ihr System synchronisiert nun den geheimen Ordner alle 5 Minuten mit S3. Sie können den Wert ändern, um den Synchronisierungsbefehl in Ihrem bevorzugten Intervall auszuführen. Jede Datei, die Sie aus dem geheimen Ordner entfernt haben, wird ebenfalls aus S3 entfernt.

Fazit

Für diejenigen, die in der Befehlszeilenumgebung arbeiten müssen, ist S3cmd wirklich ein großartiges Werkzeug für Sie, um auf Amazon S3 über die Befehlszeile zuzugreifen und zu verwalten. Es ist nicht nur einfach zu bedienen, es enthält auch viele Optionen für erweiterte Verwendung und Scripting-Anforderungen.