Konfigurationsdateien für den s3cmd-Befehl auf EO-Lab
Der Befehl s3cmd kann auf remote-Daten unter Verwendung des S3-Protokolls zugreifen. Dies schließt das EODATA-Repository und den Objektspeicher auf der EO-Lab-Cloud ein.
Um eine Verbindung zum S3-Speicher herzustellen, verwendet s3cmd mehrere Parameter, wie z. B. access key, secret key, S3 endpoint und so weiter. Während der Konfiguration können Sie diese Daten interaktiv eingeben und der Befehl speichert sie in einer Datei. Die Datei kann dann an s3cmd übergeben werden, um Befehle für die darin beschriebene Verbindung auszuführen.
Wenn Sie mehrere Verbindungen von einer einzigen virtuellen Maschine aus nutzen möchten (wie z. B. das EODATA-Repository und den Objektspeicher von EO-Lab cloud), können Sie diese in mehreren Dateien speichern, eine Datei pro Verbindung.
Dieser Artikel enthält Beispiele für die Erstellung und Speicherung dieser Konfigurationsdateien unter verschiedenen Umständen und einige potenzielle Herausforderungen, die damit verbunden sind. Die angeführten Beispiele sind nicht dafür gedacht, nacheinander als Teil eines Arbeitsablaufs ausgeführt zu werden.Stattdessen dienen sie als Beispiele für die verschiedenen Möglichkeiten, wie s3cmd arbeitet.
Voraussetzungen
Nr. 1 s3cmd installiert
Um s3cmd nutzen zu können, muss es zunächst installiert werden. Hier sind die notwendigen Informationen:
Was wir behandeln werden
Initialisierung des Konfigurationsprozesses - Erstellen einer Konfigurationsdatei
Verwendung von –configure mit einer bestehenden Datei
Ausführen von S3-Befehlen
Initialisierung des Konfigurationsprozesses - Erstellen einer Konfigurationsdatei
Das Speichern einer s3cmd-Konfigurationsdatei ist eigentlich ein zweiteiliger Prozess:
erstens die interaktive Beantwortung von Fragen und
zweitens das Speichern der Fragen in der Konfigurationsdatei.
Die Beantwortung der Fragen sieht in etwa so aus:

Das Ergebnis dieses Prozesses wird in einer Datei gespeichert.
Falls Sie den Konfigurationsprozess versehentlich gestartet haben und ihn nicht abschließen möchten, brechen Sie ihn mit der Tastenkombination STRG+C ab.
Nachdem alle Konfigurationsfragen beantwortet wurden, werden Sie erneut gefragt, ob Sie die Verbindung testen und die Daten speichern möchten.
In diesem Artikel erklären wir nur verschiedene Methoden zur Initialisierung des Konfigurationsprozesses, abhängig vom gewünschten Speicherort der resultierenden Konfigurationsdatei.
Details zum eigentlichen Konfigurationsprozess finden Sie im Abschnitt Was als Nächstes zu tun ist.
Erklärung der Parameter
Hier sind die s3cmd-Parameter, die in diesem Artikel verwendet werden.
- -c
Gibt den Namen und/oder den Speicherort der Konfigurationsdatei an. Beachten Sie, dass es nur einen Bindestrich am Anfang gibt.
- --config
Wird zum Erreichen des gleichen Zwecks wie -c verwendet. Beachten Sie zwei Bindestriche am Anfang.
- --configure
Erzeugt Konfigurationsdateien. Startet die Prozedur auf dem Bildschirm und speichert Daten in der Datei.
Sie können entweder die Parameter -c oder --config zusammen mit --configure verwenden.
Stellen Sie sicher, dass der Name und/oder der Speicherort der Datei korrekt an die Shell übergeben wird. Achten Sie auf Leerzeichen, Escape-Zeichen, Anführungszeichen usw.
Ziel: Standarddatei
Der standardmäßige Speicherort für die s3cmd-Konfigurationsdatei ist eine versteckte Datei mit dem Namen .s3cfg, die sich in Ihrem Home-Verzeichnis befindet.
Um zu überprüfen, was Ihr Home-Verzeichnis ist, führen Sie diesen Befehl aus:
echo $HOME
Unter Linux wird es höchstwahrscheinlich /home/<BENUTZERNAME> sein, wobei <BENUTZERNAME> Ihr Benutzername ist. Auf einer VM in der EO-Lab-Cloud ist das Home-Verzeichnis normalerweise /home/eouser. In diesem Fall befindet sich die Konfigurationsdatei standardmäßig unter /home/eouser/.s3cfg.
Angenommen, Sie möchten, dass die resultierende Konfigurationsdatei im Standardverzeichnis gespeichert wird. In diesem Fall können Sie den Konfigurationsprozess mit diesem Befehl starten:
s3cmd --configure
Ziel: Benutzerdefinierte Datei
Wenn Ihre gewünschte Zieldatei eine benutzerdefinierte Datei ist, übergeben Sie ihren Namen und/oder Speicherort an den Befehl mit dem -c-Parameter. Beenden Sie den Befehl mit –configure, um s3cmd mitzuteilen, dass Sie eine solche Datei erstellen möchten. Hier sind einige Beispielbefehle:
Datei mit dem Namen object-storage-access in Ihrem aktuellen Arbeitsverzeichnis
s3cmd -c object-storage-access --configure
Datei mit dem Namen eodata-access im Verzeichnis /home/eouser/
s3cmd -c /home/eouser/eodata-access --configure
Datei mit dem Namen object-storage-access im übergeordneten Verzeichnis des aktuellen Arbeitsverzeichnisses
s3cmd -c ../object-storage-access --configure
Verwendung von –configure auf einer bestehenden Datei
Der –configure-Befehl verwendet immer eine Datei. Wenn die Parameter -c oder –config weggelassen werden, wird –configure die Standarddatei als Ziel verwenden. Umgekehrt, wenn Sie -c oder –config verwenden, um eine Datei anzugeben, wird –configure versuchen, diese Datei zu nutzen.
Verwendung von s3cmd mit einer bestehenden und gültigen s3cmd-Konfigurationsdatei
Wenn Sie
eine bestehende und gültige s3cmd-Konfigurationsdatei angeben,
–configure verwenden und
das Speichern der Datei nach Abschluss des Abfrageprozesses bestätigen,
wird die Konfiguration in dieser Datei geändert.
Wenn Sie den Abfrageprozess abbrechen oder das Speichern der Daten nicht bestätigen, bleibt die vorherige Konfiguration unverändert.
Bestehende Datei, aber keine gültige s3cmd-Konfigurationsdatei
Wenn Sie
eine bestehende Datei angeben, die keine s3cmd-Konfigurationsdatei ist, und
gleichzeitig --configure verwenden,
kann dies zu unerwünschten Ergebnissen führen. Stellen Sie daher sicher, dass Sie den richtigen Dateinamen und/oder Pfad verwenden.
Ausführen von S3-Befehlen
Sie können S3-Befehle über die Verbindung ausführen, die in Ihrer Konfigurationsdatei gespeichert ist. In diesem Artikel beschränken wir uns auf den Befehl ls, mit dem unter anderem die für eine Verbindung verfügbaren Buckets aufgelistet werden können. Weitere Details, einschließlich anderer Befehle, finden Sie in den Artikeln, die unter Was als Nächstes zu tun ist aufgeführt sind.
Bestehende und gültige s3cmd-Konfigurationsdatei – nicht standardmäßiger Speicherort
Die Verwendung von -c ohne –configure ermöglicht es Ihnen, S3-Befehle auf der Verbindung auszuführen, die in der angegebenen Datei beschrieben ist. Um beispielsweise die für die Konfiguration in der Datei eodata-now (im aktuellen Arbeitsverzeichnis) verfügbaren Buckets aufzulisten, führen Sie folgenden Befehl aus:
s3cmd -c eodata-now ls
Die Ausgabe sollte die verfügbaren Buckets auflisten, etwa so:
2017-11-15 10:40 s3://DIAS
2017-11-15 10:40 s3://EODATA
Bestehende und gültige s3cmd-Konfigurationsdatei – Standardspeicherort
Wenn Sie den Standardspeicherort für Ihre s3cmd-Konfigurationsdatei gewählt haben, können Sie S3-Befehle auf der Verbindung ausführen, die darin beschrieben ist, ohne den Dateinamen anzugeben. Zum Beispiel:
s3cmd ls
Nicht vorhandene Datei
Wenn
die angegebene Datei an diesem Speicherort nicht existiert
und Sie nicht die Funktion --configure verwenden,
wird ein Fehler angezeigt.
Als Beispiel nehmen wir an, dass die Datei am Speicherort /home/eouser/this-file nicht existiert, aber dennoch der folgende Befehl ausgeführt wurde:
s3cmd -c /home/eouser/this-file ls
Statt einer Liste von Buckets wird das Ergebnis eine Reihe von Fehlern wie folgt sein:
ERROR: /home/eouser/this-file: None
ERROR: Configuration file not available.
ERROR: Consider using --configure parameter to create one.
Vorhandene Datei, aber keine gültige s3cmd-Konfigurationsdatei
Wenn Sie eine
existierende Datei übergeben, die jedoch
keine gültige s3cmd-Konfigurationsdatei ist und Sie
verwenden nicht --configure,
kann dies ebenfalls zu unerwünschten Ergebnissen führen. Stellen Sie in diesem Fall sicher, dass Sie den richtigen Dateinamen und/oder Pfad verwenden.
Dies gilt auch, wenn Sie -c oder –config nicht verwendet haben, um eine Datei anzugeben, und die Datei, die im Standardverzeichnis gespeichert ist, keine s3cmd-Konfigurationsdatei ist.
Was als Nächstes zu tun ist
Sie können s3cmd unter anderem für die folgenden Zwecke verwenden: