9 AWS S3-Befehle mit Beispielen zum Verwalten von Buckets und Daten

Inhaltsverzeichnis

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.