Wie man mit s3cmd auf EODATA zugreift auf CODE-DE-Lab
Unter EODATA verstehen wir das Erdbeobachtungsdatenarchiv, das z.B. über CREODIAS oder das Copernicus Data Space Ecosystem verfügbar ist. Über CODE-DE-Lab können Sie direkt auf dieses Archiv zugreifen.
Wenn Sie auf EODATA in der CODE-DE-Lab Cloud zugreifen möchten, können Sie das Repository als Dateisystem mounten. Das bedeutet, dass die Cloud-Daten als ein Teil des lokalen File-Systems erscheinen. Eine andere Möglichkeit, die in diesem Artikel beschrieben wird, ist der Zugriff auf das EODATA-Repository mit s3cmd von einer CODE-DE-Lab virtuellen Maschine.
Was wir behandeln werden
Konfiguration von s3cmd für den Zugriff auf das EODATA-Repository
Erkunden des EODATA-Repositorys
Herunterladen von Dateien
Voraussetzungen
Nr. 1 Konto
Sie benötigen ein CODE-DE-Lab Konto mit Zugriff auf die Horizon-Schnittstelle: https://identity.cloudferro.com/auth/realms/CODE-DE3/account/.
Nr. 2 Zugriffsschlüssel für EODATA
Melden Sie sich im Tenant Manager an und öffnen Sie Configuration → EODATA Access. Erstellen Sie dort Ihren persönlichen Zugriffsschlüssel und geheimen Schlüssel. Verwenden Sie dieses Schlüsselpaar für die Beispiele. Weitere Informationen enthält die CODE-DE-Lab-Migrationsanleitung (Englisch).
Nr. 3 Virtuelle Maschine
Sie benötigen eine virtuelle Maschine, die auf CODE-DE-Lab gehostet wird. Dieser Artikel enthält Anweisungen für Ubuntu 22.04. Andere Betriebssysteme und Umgebungen sind nicht Gegenstand dieses Artikels.
Ihre virtuelle Maschine muss den Endpunkt https://eodata.code-de.org über HTTPS erreichen können.
In den folgenden Artikeln erfahren Sie, wie man auf CODE-DE-Lab eine Linux virtuelle Maschine erstellt:
Nr. 4 Installation von s3cmd
Sie müssen s3cmd auf Ihrer virtuellen Maschine installiert haben. Der folgende Artikel enthält Informationen dazu:
Nr. 5 Die Rolle der Konfigurationsdatei in s3cmd
s3cmd speichert seine Konfiguration in Konfigurationsdateien, eine Verbindung pro Datei. Sie müssen entscheiden, wo Sie die Verbindungsdaten für das EODATA-Repository speichern möchten. Erfahren Sie hier mehr:
s3cmd für den Zugriff auf das EODATA-Repository konfigurieren
In diesem Artikel wird eine Beispielkonfiguration in der Datei eodata-access im Verzeichnis /home/eouser gespeichert und für den Ablauf verwendet; Sie können die Befehle nach Ihren Bedürfnissen anpassen.
Hier ist der Befehl, um den Prozess der Konfiguration des s3cmd zu starten:
s3cmd -c /home/eouser/eodata-access --configure
Geben Sie Ihren persönlichen Zugriffsschlüssel und geheimen Schlüssel aus Voraussetzung Nr. 2 ein. Drücken Sie nach jeder Antwort die Eingabetaste.
Verwenden Sie für FRA1-3 die folgenden Einstellungen:
Access Key [access]: YOUR_ACCESS_KEY
Secret Key [access]: YOUR_SECRET_KEY
Default Region [US]: s3.fra1-3.cloudferro.com
S3 Endpoint [s3.amazonaws.com]: eodata.code-de.org
DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]:
Encryption password:
Path to GPG program [/usr/bin/gpg]:
Use HTTPS protocol [Yes]: Yes
HTTP Proxy server name:
Lassen Sie DNS-style bucket+hostname:port template leer, damit s3cmd den Endpunkt eodata.code-de.org direkt verwendet.
Nachdem Sie alle Fragen beantwortet haben, sollten Sie gefragt werden, ob Sie den Zugang testen möchten:
Test access with supplied credentials? [Y/n]
Antworten Sie mit Y und drücken Sie die Eingabetaste.
Der Test sollte nur wenige Sekunden dauern. Anschließend erhalten Sie eine Bestätigung und die Frage, ob die Einstellungen gespeichert werden sollen:
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
Now verifying that encryption works...
Not configured. Never mind.
Save settings? [y/N]
Antworten Sie mit y und drücken Sie die Eingabetaste. Sie sollten eine Bestätigung ähnlich der folgenden erhalten:
Configuration saved to '/home/eouser/eodata-access'
Sie sind nun zurück im Eingabemodus.
Öffnen Sie die gespeicherte Datei /home/eouser/eodata-access und prüfen Sie die folgenden Werte:
host_base = eodata.code-de.org
host_bucket = eodata.code-de.org
bucket_location = s3.fra1-3.cloudferro.com
use_https = True
signature_v2 = False
host_bucket muss mit host_base übereinstimmen. Verwenden Sie keine DNS-Vorlage, die dem Hostnamen den Bucket-Namen voranstellt.
Erkundung des EODATA-Repositorys
Listen Sie den Inhalt des Buckets s3://eodata/ mit folgendem Befehl auf:
s3cmd -c /home/eouser/eodata-access ls s3://eodata/
Sie sollten eine ähnliche Ausgabe wie die folgende erhalten:
DIR s3://eodata/C3S/
DIR s3://eodata/CAMS/
DIR s3://eodata/CEMS/
DIR s3://eodata/CLMS/
DIR s3://eodata/CMEMS/
DIR s3://eodata/Envisat/
DIR s3://eodata/Envisat-ASAR/
DIR s3://eodata/Global-Mosaics/
DIR s3://eodata/Jason-3/
DIR s3://eodata/Landsat-5/
DIR s3://eodata/Landsat-7/
DIR s3://eodata/Landsat-8/
DIR s3://eodata/SMOS/
DIR s3://eodata/Sentinel-1/
DIR s3://eodata/Sentinel-1-COG/
DIR s3://eodata/Sentinel-1-RTC/
DIR s3://eodata/Sentinel-2/
DIR s3://eodata/Sentinel-3/
DIR s3://eodata/Sentinel-5P/
DIR s3://eodata/Sentinel-6/
DIR s3://eodata/auxdata/
Sie können auf diese Weise verschiedene Verzeichnisse durchsuchen. Um zum Beispiel den Inhalt des Verzeichnisses Sentinel-1 aufzulisten, führen Sie folgenden Befehl aus:
s3cmd -c /home/eouser/eodata-access ls s3://eodata/Sentinel-1/
Die Ausgabe sollte wie folgt aussehen:
DIR s3://eodata/Sentinel-1/AUX/
DIR s3://eodata/Sentinel-1/SAR/
Beenden Sie Pfade mit Schrägstrich bei der Verwendung von s3cmd ls
Achten Sie beim Auflisten von Verzeichnissen mit dem Befehl s3cmd ls darauf, die Pfade mit einem Schrägstrich abzuschließen. Wenn Sie diesen Befehl ausführen, um den Inhalt des Verzeichnisses CLMS aufzulisten,
s3cmd -c /home/eouser/eodata-access ls s3://eodata/CLMS/
sollten Sie eine Ausgabe erhalten, die das enthält, wonach Sie suchen:
DIR s3://eodata/CLMS/Global/
DIR s3://eodata/CLMS/Imagery_and_reference_data/
DIR s3://eodata/CLMS/Local/
DIR s3://eodata/CLMS/Pan-European/
2021-10-08 07:42 0 s3://eodata/CLMS/
Wenn Sie jedoch den Schrägstrich am Ende weglassen,
s3cmd -c /home/eouser/eodata-access ls s3://eodata/CLMS
enthält Ihre Ausgabe nur Ihre ursprüngliche Anfrage mit einem Schrägstrich am Ende:
DIR s3://eodata/CLMS/
Auflistung des Inhalts eines Produkts
Um alle Elemente des Produkts S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635 aufzulisten, führen Sie diesen Befehl aus:
s3cmd -c /home/eouser/eodata-access ls s3://eodata/Sentinel-5P/TROPOMI/L1B/2023/02/20/S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635/
Die Ausgabe sollte wie folgt aussehen:
2023-02-20 07:06 0 s3://eodata/Sentinel-5P/TROPOMI/L1B/2023/02/20/S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635/
2023-02-20 07:06 132968 s3://eodata/Sentinel-5P/TROPOMI/L1B/2023/02/20/S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635/S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635.cdl
2023-02-20 07:06 2156950172 s3://eodata/Sentinel-5P/TROPOMI/L1B/2023/02/20/S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635/S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635.nc
Herunterladen von Dateien
Beispiel 1: Herunterladen einer einzelnen Datei
Um eine Datei aus einem Produktverzeichnis herunterzuladen, verwenden Sie den Befehl s3cmd get und geben das Verzeichnis (des Produktes) und den Namen der Datei an. Um beispielsweise die Datei S5P_OPER_AUX_CTMANA_20230812T000000_20230813T000000_20230820T143624.cdl aus dem Produkt S5P_OPER_AUX_CTMANA_20230812T000000_20230813T000000_20230820T143624 herunterzuladen, führen Sie diesen Befehl aus:
s3cmd -c /home/eouser/eodata-access get s3://eodata/Sentinel-5P/AUX/AUX_CTMANA/2023/08/12/S5P_OPER_AUX_CTMANA_20230812T000000_20230813T000000_20230820T143624/S5P_OPER_AUX_CTMANA_20230812T000000_20230813T000000_20230820T143624.cdl
Der Download-Vorgang sollte beginnen. Die Datei sollte in Ihrem aktuellen Arbeitsverzeichnis gespeichert werden.
Nachdem der Prozess beendet wurde, können Sie den Befehl ls verwenden, um die heruntergeladene Datei zu sehen:
Beispiel 2: Herunterladen eines vollständigen Produkts
Um alle Dateien eines Produkts aus dem zugehörigen Verzeichnis herunterzuladen, verwenden Sie den Befehl s3cmd get mit dem Parameter -r, mit dem Sie rekursive Downloads durchführen können. Um beispielsweise alle Dateien des Produkts S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635 herunterzuladen, führen Sie diesen Befehl aus:
s3cmd -c /home/eouser/eodata-access get -r s3://eodata/Sentinel-5P/TROPOMI/L1B/2023/02/20/S5P_OFFL_L1B_RA_BD8_20230220T011032_20230220T025202_27746_03_020100_20230220T043635
Der Download-Vorgang sollte beginnen. Das Verzeichnis und die darin enthaltenen Dateien sollten in Ihrem aktuellen Arbeitsverzeichnis gespeichert werden.
Bemerkung
Wenn Sie das Verzeichnis im obigen Befehl mit einem Schrägstrich abschließen, wird nur der Inhalt dieses Verzeichnisses in Ihrem aktuellen Arbeitsverzeichnis gespeichert. Das Verzeichnis selbst wird nicht heruntergeladen. Wenn Sie also das Verzeichnis und seinen Inhalt herunterladen möchten, dürfen Sie den Pfad nicht mit einem Schrägstrich abschließen.
Nachdem der Vorgang abgeschlossen wurde, können Sie den Befehl ls verwenden, um die heruntergeladenen Dateien zu sehen:
Verwendung des Sync-Befehls
s3cmd kann auch sicherstellen, dass ein Verzeichnis auf Ihrer virtuellen Maschine genau den gleichen Inhalt hat wie ein Verzeichnis im EODATA-Repository. Wenn das lokale Verzeichnis einige oder alle Dateien aus dem entfernten Speicherort nicht enthält, werden sie heruntergeladen.
Herunterladen eines Produkts mit dem Sync-Befehl
Nehmen wir an, Sie wollen das Produkt mit dem Namen S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224 aus dem EODATA-Repository auf die lokale Festplatte herunterladen und sicherstellen, dass es nicht durch lokale Modifikationen verändert wird.
Erstellen Sie zunächst ein Verzeichnis für dieses Produkt - in diesem Beispiel wird es product-path genannt
mkdir product-path
Um das Produkt dort mit dem Befehl sync herunterzuladen, führen Sie folgendes aus:
s3cmd -c /home/eouser/eodata-access sync s3://eodata/Sentinel-5P/TROPOMI/L1B_RA_BD1/2018/04/30/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224 ./product-path
Erläuterung zu diesem Befehl:
s3cmd ist der Name des Programms, das wir verwenden
-c /home/eouser/eodata-access übergibt die Konfigurationsdatei
sync ist der Name des Befehls, den wir ausführen
s3://eodata/Sentinel-5P/TROPOMI/L1B_RA_BD1/2018/04/30/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224 ist das Remote-Verzeichnis, von dem wir Dateien abrufen, in diesem Fall ist es eines der Produkte
./product-path ist der lokale Pfad und das Verzeichnis, in das die Dateien heruntergeladen werden sollen
Die Ausgabe sollte Informationen über den Fortschritt des Downloads enthalten, etwa so:
download: 's3://eodata/Sentinel-5P/TROPOMI/L1B_RA_BD1/2018/04/30/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224.cdl' -> './product-path/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224.cdl' [1 of 2]
138436 of 138436 100% in 0s 3.09 MB/s done
download: 's3://eodata/Sentinel-5P/TROPOMI/L1B_RA_BD1/2018/04/30/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224.nc' -> './product-path/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224/S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224.nc' [2 of 2]
468728375 of 468728375 100% in 3s 145.92 MB/s done
Done. Downloaded 468866811 bytes in 3.1 seconds, 143.71 MB/s.
Sobald der Vorgang abgeschlossen ist, können Sie zu dem Verzeichnis mit dem Namen product-path navigieren:
cd product-path
Listen Sie den Inhalt mit ls auf, um das heruntergeladene Produktverzeichnis anzuzeigen:
Wechseln Sie in das Verzeichnis:
cd S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224/
Listen Sie den Inhalt mit ls auf:
Fehlende Dateien synchronisieren
Um sync weiter zu testen, können Sie eine der heruntergeladenen Dateien entfernen. Verwenden Sie dafür S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224.cdl
rm -i ./S5P_RPRO_L1B_RA_BD1_20180430T001950_20180430T020120_02818_93_020100_20220417T162224.cdl
Der Parameter -i ist optional. Er fordert lediglich eine Bestätigung an, bevor die Datei entfernt wird.
Bestätigen Sie die Rückfrage zum Löschen mit y und drücken Sie die Eingabetaste.
Wechseln Sie zurück in das Verzeichnis, in dem Sie sync ursprünglich ausgeführt haben:
cd ../..
Führen Sie sync genauso wie zuvor aus. Die fehlende Datei sollte heruntergeladen werden.
Wenn heruntergeladene Dateien lokal geändert wurden, sollte sync ohne weitere Parameter diejenigen Dateien wiederherstellen, die ein Gegenstück im EODATA-Repository haben. Lokal hinzugefügte Dateien, die nicht aus der Cloud stammen, bleiben dagegen unverändert.
Nächste Schritte
Mit s3cmd können Sie auch auf Object Storage von CODE-DE-Lab zugreifen.
Weitere Informationen finden Sie hier: Wie man auf Objektspeicher auf der CODE-DE-Lab Cloud mit s3cmd zugreift
Bei Zugriffsproblemen folgen Sie der Checkliste: Kein Zugriff auf EODATA auf CODE-DE-Lab