Appearance
Datenabholung von FTP/FTPS/SFTP/HTTP/HTTPS
Die Datenabholung erlaubt das Herunterladen von Dateien von FTP/FTPS/SFTP/HTTP/HTTPS-Servern.
Zur Übertragung von FTP/FTPS-Servern wird eine INI-Datei mit der Sektion ftp_in verwendet.
Zur Übertragung von SFTP-Servern wird eine INI-Datei mit der Sektion sftp_in verwendet.
Zur Übertragung von HTTP/HTTPS-Servern (Webservern) wird eine INI-Datei mit der Sektion web_in verwendet. Dabei werden verschiedene Webseiten mit der INI-Sektion url angegeben.
powershell
python prozessing.pyz ftp_in_xxxx.ini
python prozessing.pyz web_in_xxxx.iniINI-Datei: ftp_in
ini
[ftp_in]
ftp_type =
server =
user =
pass =
subdir =
to =
regex =
delete_remote =Folgende Keys werden für die INI-Sektion [ftp_in] unterstützt. Pflichteinträge sind mit * markiert.
| Key | Beispiel | Beschreibung |
|---|---|---|
ftp_type | ftp oder sftp oder sftp_rclone | Typ der Übertragung (default ftp) |
ftp_encoding | utf-8 oder ansi | Encoding für die FTP-Verbindung (default utf-8) |
server * | ftp.example.com | Servername des Zielservers |
port | 21 | Port des Serverzugangs (default 21 bei FTP bzw. 22 bei SFTP) |
user | benutzername | Benutzername des Serverzugangs am Zielserver |
pass | geheim | Kennwort des Serverzugangs (wird nicht benötigt, falls ftp_type = sftp und key_file gesetzt ist) |
list_method | auto oder mlsd oder list oder nlst | Listing-Methode für FTP (default auto: MLSD mit Fallback auf LIST) |
subdir | /Daten/Seen | Unterverzeichnis am FTP-Server |
to * | D:/Datenmanagement/spool/daten | Unterverzeichnis lokal |
regex | .csv | Regulärer Ausdruck zur Filterung |
glob | *.csv | Unix-Shell-ähnliche Platzhalter zur Filterung |
delete_remote | False oder True | False: nicht löschen, True: löschen nach Übertragung |
MaxAgeSeconds | 86400 | OPTIONAL: Maximales Alter der Datei in Sekunden |
MinAgeSeconds | 60 | OPTIONAL: Mindestalter der Datei (es zählt der Modification-Zeitstempel), um ein Abschneiden der gerade noch am FTP-Server geschriebenen Datei zu verhindern |
min_size | 64 | Mindestgröße der Datei in Bytes |
max_size | 1024 | Maximalgröße der Datei in Bytes |
passive | False oder True | True: FTP passive mode verwenden (default True) |
fw_server | proxy.example.com | Servername des Proxy-Servers |
fw_user | proxyuser | Benutzername des Proxy-Servers |
fw_pass | geheim | Kennwort des Proxy-Servers |
UNQ | False oder True | 1: die Quelldatei wird eindeutig gemacht (für den Fall, dass der Lieferant immer den selben Dateinamen schickt) |
prefix | corrected_ | Präfix für lokale Dateinamen |
INI-Datei: sftp_in
ini
[sftp_in]
ftp_type = sftp
server =
user =
key_file =
subdir =
to =
regex =
delete_remote =Die Sektion [sftp_in] unterstützt dieselben Keys wie [ftp_in] (mit ftp_type = sftp). Zusätzlich werden folgende nur für SFTP relevante Keys unterstützt:
| Key | Beispiel | Beschreibung |
|---|---|---|
key_file | id_ed25519 | Datei mit ssh-private key für die private-key-Anmeldung (statt Kennwort per pass) |
key_type | ssh-rsa oder ssh-ecdsa oder ssh-ed25519 | Optionale Angabe des SSH-Key-Typs |
host_key | known_hosts.example.com | Angabe eines Host-Keys known_hosts (ohne Angabe erfolgt keine Prüfung) |
no_update_dir_modtime | False oder True | True: --no-update-dir-modtime an rclone übergeben (nur ftp_type = sftp_rclone) |
INI-Datei: web_in
ini
[web_in]
url =
url_prefix =
method =
to =Folgende Keys werden für die INI-Sektion [web_in] unterstützt. Pflichteinträge sind mit * markiert.
| Key | Beispiel | Beschreibung |
|---|---|---|
url * | http://www.example1.com/foo.txt | Eine oder mehrere URLs, von denen Daten abgeholt werden. Mit der Syntax dateiname::url kann ein eindeutiger lokaler Dateiname vergeben werden (Platzhalter siehe unten) |
url_prefix | http://www.example1.com | Präfix, das vor jede url angehängt wird |
to * | C:\tbbm | Zielverzeichnis für die abgeholten Daten |
fw_server | http://proxy.example.com:8080/ | Optionaler http- oder https-Proxy-Server |
method | curl | Alternative technische Methode zur Abholung auf Basis curl |
insecure | False oder True | True: erlaubt unsichere SSL-Verbindungen zu nutzen (nur bei method = curl) |
user | benutzername | Benutzername für die HTTP-Authentifizierung (nur bei method = curl) |
pass | geheim | Kennwort für die HTTP-Authentifizierung (nur bei method = curl) |
header | Authorization: foobar | Zusätzlicher HTTP-Header (nur bei method = curl) |
oauth_token_url | https://api.example.com/oauth/token | URL für die OAuth2-Token-Abfrage (nur bei method = curl) |
oauth_token_data | grant_type=password … | POST-Daten für die OAuth2-Token-Abfrage (je Zeile ein Feld) |
ZRXP | False oder True | True: die abgeholten Daten liegen im ZRXP-Format vor |
Kommentare können in der Steuerdatei mit # oder ; am Zeilenanfang angegeben werden.
Folgende Platzhalter werden für subdir, to, url unterstützt:
| Platzhalter | Beschreibung |
|---|---|
{date} | Datum als YYYY-MM-DD |
{now} | Datum als YYYYMMDDhhmmss |
{DD} | Datum als DD |
{yyyy} | Datum als YYYY |
{yyyy/mm±offset} | Datum als YYYY/MM mit Offset in Tagen |
{yyyy-mm±offset} | Datum als YYYY-MM mit Offset in Tagen |
{iso8601±offset} | Datum als YYYY-MM-DDThh:mm:ss mit Offset in Sekunden |
{zrxptime±offset} | Datum als YYYYMMDDhhmmss mit Offset in Sekunden |
{time±offset} | Datum als UNIX-Zeitstempel mit Offset in Sekunden |
INI-Beispiele
einfache FTP-Abholung von csv Dateien
ini
[ftp_in]
server = ftp.example.com
user = yyyyyy
pass = XXXXXXXXXXXX
subdir = .
to = D:/Datenmanagement/spool/irr_hach
regex = csv
delete_remote = 1FTP-Abholung von zrxp Dateien aus mehreren FTP Ordnern
ini
[ftp_in]
server = ftp.example.at
user = yyyyyy
pass = XXXXXXXXXXXX
subdir =
/Daten/Seen
/Daten/Pegel
to = D:/DatenKaprun/spool/ftp_zrxp
regex = zrxp
delete_remote = 1FTP-Abholung von zrxp Dateien aus mehreren FTP Ordnern mit einer Verbindung. Die Sektion [ftp] bzw. [sftp] öffnet die Verbindung für alle nachfolgenden Sektionen; sie muss daher vor diesen stehen. Eine Sektion mit eigenem server verwendet weiterhin eine eigene Verbindung.
ini
[ftp]
server = ftp.example.at
user = yyyyyy
pass = XXXXXXXXXXXX
[ftp_in.Seen]
subdir = /Daten/Seen
to = D:/Daten/spool/Seen
regex = zrxp
delete_remote = 1
[ftp_in.Pegel]
subdir = /Daten/Pegel
to = D:/Daten/spool/Pegel
regex = zrxp
delete_remote = 1FTP-Abholung via proxy und user-syntax: user@ziel.server.com
ini
[ftp_in]
server = proxy.example.com
user = user_abc@www.winter.at
pass = YYYYYYYYYYYYYYY
subdir = .
to = D:/IMPORT/spool/daten
regex = .csv
delete_remote = 1
fw =
list_method = listSFTP-Abholung von Dateien
ini
[ftp_in]
ftp_type = sftp
server = ftp.example.com
user = yyyyyy
pass = DDDDDDDDDDDDDD
subdir = /www/htdocs/YYYYYY/spool
to = D:/Datenmanagement/spool
regex = 00005707
host_key = known_hosts.example.comHTTP-Abholung via ZRXP (Zieldateiname wird vor URL angegeben)
ini
[web_in]
url =
TIROL_299251_W.zrxp::https://apps.tirol.gv.at/hydro/datenaustausch/xchange.pl?pgnr=299251&user=YYYYYY&pass=XXXXXXXXXXX&werte=W&diskr=15&modus=zrx
TIROL_299036_W.zrxp::https://apps.tirol.gv.at/hydro/datenaustausch/xchange.pl?pgnr=299036&user=YYYYYY&pass=XXXXXXXXXXX&werte=W&diskr=15&modus=zrx
to = C:\tbbm
ZRXP = 1HTTP-Abholung Webseite des BAFU, direkte Datei
ini
[web_in]
url =
http://www.hydrodaten.admin.ch/graphs/2139/temperature_2139.csv
http://www.hydrodaten.admin.ch/graphs/2139/discharge_2139.csv
to = C:\tbbmhttps Schnittstelle Land Vorarlberg, start und end muss in Millisekunden seit 1970-01-01 angegeben werden
ini
[web_in]
url =
BANGS_WASSERSTAND.csv::https://vowis.vorarlberg.at/DownloadTool/dlt_DownloadWasserstand.php?start={time-10800}&end={time}&id0=V334714
BANGS_ABFLUSS.csv::https://vowis.vorarlberg.at/DownloadTool/dlt_DownloadAbfluss.php?start={time-10800}&end={time}&id0=V334714
LUSTENAU_WASSERSTAND.csv::https://vowis.vorarlberg.at/DownloadTool/dlt_DownloadWasserstand.php?start={time-10800}&end={time}&id0=V334711
LUSTENAU_ABFLUSS.csv::https://vowis.vorarlberg.at/DownloadTool/dlt_DownloadAbfluss.php?start={time-10800}&end={time}&id0=V334711
to = F:/Datenmanagement/spool/irr_hdvvowisHTTP-Abholung Alpenwetterbericht von DWD, direkte Datei
ini
[web_in]
fw_server = http://proxy.tirol.gv.at:8080/
method = curl
url = https://data.dwd.de/data/Alpenwetterbericht.txt
user = yyyyyy
pass = DDDDDDDDDDDDDD
to = C:\tbbmHTTP-Abholung per curl mit Option --insecure
ini
[web_in]
url = 16991991_Q_{now}.zrx::https://www.daten.bayern.de/webservices/export.php
to = D:/Daten/spool
fw_server = http://proxy.server.at:8080
method = curl
insecure = 1HTTP-Abholung per curl mit Option --header
ini
[web_in]
url = https://httpbin.org/headers
header = Authorization: foobar
to = ...
method = curlHTTP-Abholung per curl mit OAuth2 password grant: HTTP POST https://api.example.com/oauth/token liefert {"access_token":"xyz"}. Dieses wird dann als Authorization: Bearer xyz in HTTP GET https://example.com/protected verwendet.
ini
[web_in]
url = https://example.com/protected
to = ...
method = curl
oauth_token_url = https://api.example.com/oauth/token
oauth_token_data =
grant_type=password
client_id=...
client_secret=...
username=...
password=...disabled_algorithms
ini
[ftp_in]
ftp_type = sftp
# ...
[disabled_algorithms]
pubkeys =
rsa-sha2-256
rsa-sha2-512
# oder
[disabled_algorithms]
ciphers =
aes128-ctr
aes192-ctr
aes256-ctr
aes128-cbc
aes192-cbc
aes256-cbc
3des-cbc
macs =
hmac-sha2-256
hmac-sha2-512
hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
hmac-sha1
hmac-md5
hmac-sha1-96
hmac-md5-96
keys =
ssh-ed25519
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-512
rsa-sha2-256
ssh-rsa
ssh-dss
pubkeys =
ssh-ed25519
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
rsa-sha2-512
rsa-sha2-256
ssh-rsa
kex =
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-group16-sha512
diffie-hellman-group-exchange-sha256
diffie-hellman-group14-sha256
diffie-hellman-group-exchange-sha1
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1Beispiel für die SFTP-Abholung mit rclone sync
ini
[sftp_in]
ftp_type = sftp_rclone
...