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/SFTP-Servern wird eine INI-Datei mit der Sektion ftp_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.ini
INI-Datei: ftp_in
ini
[ftp_in]
ftp_type = ftp|sftp # Typ der FTP Übertragung ftp (unverschlüsselt) oder sftp (ftp über ssh)
#ftp_method = Net_SSH2 # alternative Methode für ftp_type = sftp (Standardmethode ist plink)
server = # Servername des Zielservers
port = # Port des Serverzugangs (default 21)
user = # Benutzername des Serverzugangs am Zielserver
pass = # Kennwort des Serverzugangs (wird nicht benötigt, falls ftp_type = sftp und key_file gesetzt ist)
key_file = # Datei mit ssh-private key falls die Datei per private key Anmeldung und per ftp_type = sftp übertragen wird
key_type = ssh-rsa|ssh-ecdsa|ssh-ed25519 # Optionale Angabe des SSH-Key-typs
list_method = mlsd|list|nlst # Listing-Methode für FTP, (default: mlsd)
encoding = utf-8 # Encoding für Listing
ftp_encoding = utf-8|ansi # Encoding für die FTP Verbindung (default utf-8)
rename_temp = 0|1 # Upload als .tmp mit darauffolgendem Rename (default)
subdir = # Unterverzeichnis am FTP-Server
to = # Unterverzeichnis lokal
regex = # Regulärer Ausdruck zur Filterung
glob = # Unix-Shell-ähnliche Platzhalter zur Filterung
delete_remote = 0|1 # 0: nicht löschen, 1: löschen nach Übertragung
MaxAgeSeconds = # OPTIONAL: Maximales Alter der Datei in Sekunden
MinAgeSeconds = # OPTIONAL: Mindestalter der Datei (es zählt der Modification Zeitstempel)
# um ein Abschneiden der Datei zu verhindern, die gerade noch am FTP-Server geschrieben wird
MinSize = # Mindestgröße der Datei in Bytes
MaxSize = # Maximalgröße der Datei in Bytes
binary = 0|1 # 1: Datei wird binär übertragen (default)
passive = 0|1 # 1: ftp passive mode verwenden
fw = 0|1 # 1: ein lokaler proxy Server soll verwendet werden
fw_server = # Servername des proxy Servers
fw_user = # Benutzername des proxy Servers
fw_pass = # Kennwort des proxy Servers
fw_quot = # FTP QUOT Command falls der typ des proxy Servers dies verlangt
retry = n # Anzahl der Versuche (nur für sftp)
gunzip = 0|1 # 1: .gz/.zip komprimierte Datei bei Abholung transparent entpacken
host_key = # Angabe eines fingerprint host keys known_hosts (ohne Angabe erfolgt keine Prüfung)
UNQ = 0|1 # 1: die Quelldatei wird eindeutig gemacht (für den Fall, dass der Lieferant immer den selben Dateinamen schickt)
INI-Datei: web_in
ini
[web_in]
# Optionale Angabe von Kommentaren in der Steuerdatei
;
# Optionale Angabe eines http oder https proxy Servers
#fw_server =
# Angabe von mehreren URLS von denen Daten eingesammelt werden sollen
url =
http://www.example1.com/foo.txt
http://www.example2.com/foo.txt
# Angabe von mehreren URLS mit eindeutigem lokalen Dateinamen mittels Variable {now}
url =
16991991_Q_X_{now}.zrx::https://www.daten.bayern.de/webservices/export.php?abfrageX
16991991_Q_Y_{now}.zrx::https://www.daten.bayern.de/webservices/export.php?abfrageY
# Angabe von nur einer URL
url = http://www.example1.com/foo.txt
# Platzhalter, die in URLS ausgewertet werden
# - {time} UNIX Zeitstempel in s
# - {time-10800} UNIX Zeitstempel in s minus Zeitangabe in s
# - {DD} aktueller Tag (00..31) zur Laufzeit des Programms
# Angabe mit URL-Präfix (dieses wird vor jede URL angehängt)
url_prefix = http://www.example1.com
url =
/foo.txt
/bar.txt
# Alternative technische Methode zur Abholung auf basis curl
#method = curl
#insecure = 1 # erlaubt unsichere SSL-Verbindungen zu nutzen
# Zielverzeichnis für die abgeholten Daten
to =
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 = 1
FTP-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 = 1
FTP-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 = list
SFTP-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.com
HTTP-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 = 1
HTTP-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:\tbbm
https 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_hdvvowis
HTTP-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:\tbbm
HTTP-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 = 1
HTTP-Abholung per curl mit Option --header
ini
[web_in]
url = https://httpbin.org/headers
header = Authorization: foobar
to = ...
method = curl
HTTP-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-sha1