Effiziente Verwaltung von AWS S3 mit Befehlszeilen-Tools
Die Kontrolle und Organisation von Daten kann eine herausfordernde Aufgabe sein. Die folgenden AWS S3-Befehle bieten eine schnelle und effiziente Möglichkeit, Ihre AWS S3-Buckets und darin enthaltenen Daten zu handhaben.
AWS S3 ist ein von Amazon Web Services bereitgestellter Objektspeicherdienst. Als einer der meistgenutzten Speicherdienste von AWS ermöglicht er die Speicherung nahezu unbegrenzter Datenmengen. S3 zeichnet sich durch hohe Verfügbarkeit, Langlebigkeit und einfache Integration in andere AWS-Dienste aus.
AWS S3 ist vielseitig einsetzbar und eignet sich für verschiedenste Anforderungen, wie beispielsweise die Speicherung von Daten für mobile und Webanwendungen, Big-Data-Analysen, maschinelles Lernen, das Hosting statischer Webseiten und viele weitere Anwendungen.
Wenn Sie S3 bereits in Ihren Projekten verwenden, wissen Sie um die Herausforderungen, die mit der Verwaltung einer großen Anzahl von Buckets und Terabytes an Daten einhergehen können. Im Folgenden finden Sie eine Zusammenstellung von AWS S3-Befehlen inklusive Anwendungsbeispielen, die Ihnen helfen sollen, Ihre AWS S3-Buckets und Daten effizienter zu verwalten.
Einrichtung der AWS CLI
Nach dem erfolgreichen Herunterladen und Installieren der AWS Command Line Interface (CLI), müssen Sie Ihre AWS-Zugangsdaten konfigurieren, um auf Ihr AWS-Konto und die zugehörigen Dienste zugreifen zu können. Die folgenden Schritte erläutern die grundlegende Konfiguration der AWS CLI.
Der erste Schritt beinhaltet das Erstellen eines Benutzers mit programmatischem Zugriff auf Ihr AWS-Konto. Stellen Sie sicher, dass Sie die entsprechende Option aktivieren, wenn Sie einen Benutzer speziell für die AWS CLI erstellen.
Nach dem Festlegen der Benutzerberechtigungen und dem Erstellen des Benutzers, kopieren Sie die Zugriffs-Schlüssel-ID und den geheimen Zugriffsschlüssel. Diese Anmeldeinformationen werden für die Authentifizierung über die AWS CLI benötigt.
Öffnen Sie nun Ihr bevorzugtes Terminal und führen Sie den folgenden Befehl aus:
aws configure
Geben Sie auf Anfrage die Zugriffs-Schlüssel-ID und den geheimen Zugriffsschlüssel ein. Wählen Sie anschließend eine AWS-Region Ihrer Wahl und ein Ausgabeformat für Befehle. Das JSON-Format ist eine gängige Wahl, Sie können diese Einstellungen jedoch jederzeit ändern.
Nach der Konfiguration sind Sie bereit, beliebige AWS CLI Befehle in der Konsole auszuführen. Betrachten wir nun die spezifischen AWS S3-Befehle.
Der Befehl ‚cp‘
Der Befehl ‚cp‘ dient zum Kopieren von Daten innerhalb und zwischen S3-Buckets. Er ermöglicht das Kopieren von Dateien von Ihrem lokalen System nach S3, von S3 auf Ihr lokales System sowie zwischen verschiedenen S3-Buckets. Es stehen zahlreiche Optionen zur Verfügung, um das Verhalten des Befehls anzupassen.
Beispielsweise können Sie mit dem Parameter ‚–dryrun‘ den Befehl testen, ohne tatsächlich Daten zu kopieren. Mit dem Parameter ‚–storage-class‘ können Sie die Speicherklasse Ihrer Daten in S3 definieren. Darüber hinaus gibt es Optionen zum Konfigurieren der Verschlüsselung und viele weitere Parameter. Der cp-Befehl bietet Ihnen volle Kontrolle über die Datensicherheit in S3.
Syntax
aws s3 cp <QUELLE> <ZIEL> [--optionen]
Beispiele
Kopieren von Daten vom lokalen System nach S3
aws s3 cp dateiname.txt s3://bucket_name/dateiname_2.txt
Kopieren von Daten von S3 auf das lokale System
aws s3 cp s3://bucket_name/dateiname_2.txt dateiname.txt
Kopieren von Daten zwischen S3-Buckets
aws s3 cp s3://bucket_name/dateiname.txt s3://bucket_name_2/dateiname_2.txt
Kopieren von Daten vom lokalen System nach S3 mit STANDARD_IA Speicherklasse
aws s3 cp dateiname.txt s3://bucket_name/dateiname_2.txt --storage-class STANDARD_IA
Kopieren aller Daten aus einem lokalen Ordner nach S3
aws s3 cp ./lokaler_ordner s3://bucket_name --recursive
Der Befehl ‚ls‘
Der ls-Befehl wird verwendet, um Buckets oder die Inhalte von Buckets aufzulisten. Er dient also dazu, Informationen zu Ihren Buckets oder den darin enthaltenen Daten abzurufen.
Syntax:
aws s3 ls KEINE oder <BUCKET_NAME> [--optionen]
Beispiele
Auflisten aller Buckets im Konto
aws s3 ls Ausgabe: 2022-02-02 18:20:14 BUCKET_NAME_1 2022-03-20 13:12:43 BUCKET_NAME_2 2022-03-29 10:52:33 BUCKET_NAME_3
Dieser Befehl listet alle Buckets in Ihrem Konto zusammen mit dem jeweiligen Erstellungsdatum auf.
Auflisten aller Objekte der obersten Ebene in einem Bucket
aws s3 ls BUCKET_NAME_1 oder s3://BUCKET_NAME_1 Ausgabe: PRE samplePrefix/ 2021-12-09 12:23:20 8754 datei_1.png 2021-12-09 12:23:21 1290 datei_2.json 2021-12-09 12:23:21 3088 datei_3.html
Dieser Befehl listet alle Objekte der obersten Ebene in einem S3-Bucket auf. Beachten Sie, dass die Objekte mit dem Präfix ’samplePrefix/‘ nicht direkt angezeigt werden.
Auflisten aller Objekte in einem Bucket
aws s3 ls BUCKET_NAME_1 oder s3://BUCKET_NAME_1 --recursive Ausgabe: 2021-12-09 12:23:20 8754 datei_1.png 2021-12-09 12:23:21 1290 datei_2.json 2021-12-09 12:23:21 3088 datei_3.html 2021-12-09 12:23:20 16328 samplePrefix/datei_1.txt 2021-12-09 12:23:20 29325 samplePrefix/sampleSubPrefix/datei_1.css
Dieser Befehl listet alle Objekte in einem S3-Bucket auf, einschließlich Objekte mit dem Präfix ’samplePrefix/‘ und allen Unterverzeichnissen.
Der Befehl ‚mb‘
Der mb-Befehl dient der Erstellung neuer S3-Buckets. Der Bucket-Name muss eindeutig für alle S3-Buckets sein.
Syntax
aws s3 mb <BUCKET_NAME>
Beispiel
Erstellen eines neuen Buckets in einer bestimmten Region
aws s3 mb meinEinzigartigerBucketName --region eu-west-1
Der Befehl ‚mv‘
Der mv-Befehl wird verwendet, um Daten innerhalb und zwischen S3-Buckets zu verschieben. Er ist ähnlich wie der ‚cp‘-Befehl, kann Daten vom lokalen System nach S3, von S3 auf das lokale System und zwischen S3-Buckets verschieben.
Der entscheidende Unterschied zwischen ‚mv‘ und ‚cp‘ besteht darin, dass ‚mv‘ die Datei aus der Quelle löscht, nachdem sie an das Ziel verschoben wurde. Es gibt auch hier viele Optionen zur Anpassung des Befehls.
Syntax
aws s3 mv <QUELLE> <ZIEL> [--optionen]
Beispiele
Verschieben von Daten vom lokalen System nach S3
aws s3 mv dateiname.txt s3://bucket_name/dateiname_2.txt
Verschieben von Daten von S3 auf das lokale System
aws s3 mv s3://bucket_name/dateiname_2.txt dateiname.txt
Verschieben von Daten zwischen S3-Buckets
aws s3 mv s3://bucket_name/dateiname.txt s3://bucket_name_2/dateiname_2.txt
Verschieben von Daten vom lokalen System nach S3 mit STANDARD_IA Speicherklasse
aws s3 mv dateiname.txt s3://bucket_name/dateiname_2.txt --storage-class STANDARD_IA
Verschieben aller Daten von einem Präfix in S3 in einen lokalen Ordner
aws s3 mv s3://bucket_name/einPraefix ./lokalerOrdner --recursive
Der Befehl ‚presign‘
Der ‚presign‘-Befehl generiert eine signierte URL für einen Schlüssel in einem S3-Bucket. Diese URLs können verwendet werden, um anderen Zugriff auf eine Datei in dem angegebenen S3-Bucket-Schlüssel zu gewähren.
Syntax
aws s3 presign <OBJECT_KEY> –expires-in <ZEIT_IN_SEKUNDEN>
Beispiel
Generieren einer signierten URL für ein Objekt im Bucket, die 1 Stunde gültig ist.
aws s3 presign s3://bucket_name/samplePrefix/dateiname.png --expires-in 3600 Ausgabe: https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/dateiname.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd3db1be96
Der Befehl ‚rb‘
Der ‚rb‘-Befehl wird zum Löschen von S3-Buckets verwendet.
Syntax
aws rb <BUCKET_NAME>
Beispiel
Löschen eines S3-Buckets.
aws s3 mb meinBucketName # Dieser Befehl schlägt fehl, wenn sich Daten im Bucket befinden.
Löschen eines S3-Buckets zusammen mit den enthaltenen Daten.
aws s3 mb meinBucketName --force
Der Befehl ‚rm‘
Der ‚rm‘-Befehl wird zum Löschen von Objekten in S3-Buckets verwendet.
Syntax
aws s3 rm <S3Uri_Zur_Datei>
Beispiele
Löschen einer Datei aus einem S3-Bucket.
aws s3 rm s3://bucket_name/sample_prefix/dateiname_2.txt
Löschen aller Dateien mit einem bestimmten Präfix in einem S3-Bucket.
aws s3 rm s3://bucket_name/sample_prefix --recursive
Löschen aller Dateien in einem S3-Bucket.
aws s3 rm s3://bucket_name --recursive
Der Befehl ’sync‘
Der ’sync‘-Befehl kopiert und aktualisiert Dateien von der Quelle zum Ziel. Er ist ähnlich wie ‚cp‘, aber es gibt einen wichtigen Unterschied. Bei Verwendung von ‚cp‘ werden Daten von der Quelle zum Ziel kopiert, auch wenn die Daten bereits am Ziel vorhanden sind.
Auch Dateien, die in der Quelle gelöscht werden, werden am Ziel nicht gelöscht. Der Befehl ’sync‘ hingegen analysiert das Ziel, bevor Daten kopiert werden, und kopiert nur neue und aktualisierte Dateien. Der sync-Befehl ist vergleichbar mit dem Committen und Pushen von Änderungen zu einem Remote-Branch in Git. ’sync‘ bietet ebenfalls viele Optionen zur Anpassung des Verhaltens.
Syntax
aws s3 sync <QUELLE> <ZIEL> [--optionen]
Beispiele
Synchronisieren eines lokalen Ordners mit S3
aws s3 sync ./lokaler_ordner s3://bucket_name
Synchronisieren von S3-Daten mit einem lokalen Ordner
aws s3 sync s3://bucket_name ./lokaler_ordner
Synchronisieren von Daten zwischen zwei S3-Buckets
aws s3 sync s3://bucket_name s3://bucket_name_2
Verschieben von Daten zwischen zwei S3-Buckets, mit Ausnahme aller .txt-Dateien.
aws s3 sync s3://bucket_name s3://bucket_name_2 --exclude "*.txt"
Der Befehl ‚website‘
S3-Buckets können für das Hosting statischer Websites verwendet werden. Der Befehl ‚website‘ konfiguriert das statische S3-Website-Hosting für Ihren Bucket.
Sie legen die Index- und Fehlerdateien fest, und S3 stellt eine URL bereit, unter der Sie die Website anzeigen können.
Syntax
aws s3 website <S3_URI> [--optionen]
Beispiel
Konfigurieren Sie das statische Hosting für einen S3-Bucket und legen Sie die Index- und Fehlerdateien fest
aws s3 website s3://bucket_name --index-document index.html --error-document error.html
Fazit
Diese Übersicht soll Ihnen einen Einblick in einige der am häufigsten verwendeten AWS S3-Befehle zur Verwaltung von Buckets geben. Für weitere Informationen können Sie sich die Details zu AWS-Zertifizierungen ansehen.