FtpCopy
Gruppe |
|
Klassenname |
com.ebd.hub.datawizard.util.FtpCopy |
Funktion |
Diese Klasse holt Massendaten per FTP ab und legt diese lokal, oder auf einem anderen FTP-Server ab. Alternativ kann auch von einem Netzlaufwerk, oder einem lokalen Verzeichnis abgeholt werden. |
Konfigurationsdatei |
sample_ftp_copy.xml |
Beschreibung
Diese Klasse holt Massendaten per FTP ab und legt diese lokal, oder auf einem anderen FTP-Server ab. Alternativ kann auch von einem Netzlaufwerk, oder einem lokalen Verzeichnis abgeholt werden (siehe Hinweis zu Parameter channel des Elements account). Alle Einstellungen werden in einer XML-Konfigurationsdatei vorgenommen.
1. Element <account>:
Übergeordnetes Element. Allgemeine Angaben zum Übertragungsvorgang. Attribute des Elements:
host |
Adresse des FTP-Servers. Dieses Attribut entfernen, wenn von einem lokalen Verzeichnis, oder Netzlaufwerk übertragen werden soll. |
port |
Port des FTP-Servers. |
delete_files |
Falls true, werden übertragene Dateien gelöscht. |
source_dir |
Das Quell-Verzeichnis (muss vorhanden sein). Selbst wenn die Option delete_dir=true verwendet wird, wird dieses Verzeichnis nicht gelöscht. |
destination_dir |
Das Ziel-Verzeichnis (muss vorhanden sein). Selbst wenn die Option delete_dir=true verwendet wird, wird dieses Verzeichnis nicht gelöscht. |
mode |
active oder passive. Der FTP-Transfermodus. |
pattern |
Das Datei-Muster der zu übertragenden Dateien. |
force_uppercase |
Falls true, werden die Dateinamen im Zielverzeichnis in Großschrift angegeben. |
force_lowercase |
Falls true, werden die Dateinamen im Zielverzeichnis in Kleinschrift angegeben. |
extract_zip |
Wird hier true gesetzt, dann werden ZIP-Dateien beim Kopiervorgang entpackt. |
destination_host |
Adresse des FTP-Servers, falls das Übertragungsziel ein FTP-Server ist. |
destination_port |
Port des FTP-Servers, falls das Übertragungsziel ein FTP-Server ist. |
verbose |
Achtung: Gilt für FTP und SFTP. Bei true werden Debug-Meldungen auf der Konsole ausgegeben. Wenn der Integration Server unter Windows als Service läuft, werden die Meldungen an die Datei logs/wrapper.log weitergeleitet. Sollte der Integration Server unter Unix/Linux im Hintergrund laufen, dann wird weitergeleitet an die Datei hub.txt. |
delete_dir |
Löscht bei true auch ein übertragenes Verzeichnis. Funktioniert, vor allem bei lokalen Verzeichnissen, nur, wenn das Verzeichnis leer ist. |
delete_target_dir |
Bei true wird versucht das Zielverzeichniss vor dem Einfügen zu löschen, falls es vorhanden ist. Dies ist nur möglich wenn das Zielverzeichnis ein FTP-Verzeichnis ist. Wird nicht beim Root-Verzeichnis angewendet. |
binary |
Falls true, wird der Binärmodus für die Übertragung verwendet. |
sftp |
true, falls der Server von dem abgeholt wird ein SFTP-Server ist. Default: false. |
destination_sftp |
true, falls der Server auf den übertragen wird ein SFTP-Server ist. Default: false. |
channel |
ID des Kanals aus der Partnerverwaltung. Benutzer, Passwort und die Verschlüsselung werden aus dem SSH- oder FTP-Kanal übernommen (Eigene Kennung). Achtung: Der Parameter darf nicht verwendet werden, wenn von einem Netzlaufwerk oder lokalen Verzeichnis abgeholt wird. |
destination_channel |
ID des anderen Kanals aus der Partnerverwaltung. Benutzer, Passwort und die Verschlüsselung werden aus dem SSH- oder FTP-Kanal übernommen (Partner Kennung). |
2. Element <exclude_dir>, oder wahlweise Element <include_dir>:
Mit <exclude_dir> kann man Verzeichnisse angeben, die explizit ausgeschlossen werden beim Kopiervorgang. Alternativ kann man mit <include_dir> Verzeichnisse angeben, die explizit eingeschlossen werden. Attribute der beiden Elemente:
delete |
true oder false. Gibt an, ob gelöscht werden soll. |
3. Element <exclude_file>:
Mit <exclude_file> kann man Dateien angeben, die explizit ausgeschlossen werden beim Kopiervorgang. Attribute des Elements:
delete |
true oder false. Gibt an, ob gelöscht werden soll. |
4. Element <replace>:
Hiermit kann man Ersetzungen in Dateinamen vornehmen. Diese Ersetzungen funktionieren jedoch nicht bei Verzeichnisnamen. Attribute des Elements:
old_value |
Zu ersetzende Zeichen. |
new_value |
Ersetzungszeichen. |
Beispiel
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
config
>
<!-- force_lowercase="true" forces the destination file name to be written in lower case; force_uppercase="true" for upper case -->
<
account
host
=
"localhost"
port
=
"21"
user
=
"ftp"
passwd
=
"ftp"
delete_files
=
"false"
source_dir
=
"/"
destination_dir
=
"archiv"
mode
=
"passive"
pattern
=
"*"
force_uppercase
=
"false"
force_lowercase
=
"true"
extract_zip
=
"true"
destination_host
=
"localhost"
destination_port
=
"21"
destination_user
=
"lobster"
destination_passwd
=
"secret"
verbose
=
"false"
delete_dir
=
"true"
delete_target_dir
=
"true"
binary
=
"true"
>
<!-- do not copy folders with the following names -->
<
exclude_dir
>archiv</
exclude_dir
>
<!-- here are replacements instructions -->
<
replace
old_value
=
"ä"
new_value
=
"ae"
/>
<!-- here is an exclude list of file pattern and whether to delete it or not -->
<
exclude_file
delete
=
"true"
>~*</
exclude_file
> <!-- do not copy ~files and remove them locally -->
<
exclude_file
delete
=
"false"
>*.tmp</
exclude_file
> <!-- do not copy *.tmp files and do not delete them locally -->
<!-- <
include_dir
>invoices</
include_dir
> -->
<!-- <
include_dir
>orders</
include_dir
> -->
</
account
>
</
config
>
Beispiel ab Version 3.5.0 oder bei Verwendung von patch_ftp_copy_with_channel.zip
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
config
>
<!-- force_lowercase="true" forces the destination file name to be written in lower case; force_uppercase="true" for upper case -->
<
account
host
=
"localhost"
port
=
"22"
channel
=
"1443778549792012"
sftp
=
"true"
delete_files
=
"false"
source_dir
=
"/"
destination_dir
=
"archiv"
pattern
=
"*"
force_uppercase
=
"false"
force_lowercase
=
"true"
extract_zip
=
"true"
verbose
=
"false"
delete_dir
=
"true"
binary
=
"true"
>
<!-- do not copy folders with the following names -->
<
exclude_dir
>archiv</
exclude_dir
>
<!-- here are replacements instructions -->
<
replace
old_value
=
"ä"
new_value
=
"ae"
/>
<!-- here is an exclude list of file pattern and whether to delete it or not -->
<
exclude_file
delete
=
"true"
>~*</
exclude_file
>
<!-- do not copy ~files and remove them locally -->
<
exclude_file
delete
=
"false"
>*.tmp</
exclude_file
>
<!-- do not copy *.tmp files and do not delete them locally -->
<!-- <
include_dir
>invoices</
include_dir
> -->
<!-- <
include_dir
>orders</
include_dir
> -->
</
account
>
</
config
>
Ausgabe
Die Ausgabe erfolgt im CSV-Format, in der Kodierung 8859_1. Für jedes <account>-Element wird im Lobster_data ein Datenblatt erzeugt. Im Folgenden ein Beispiel des Ausgabe-Formats.
HOST;localhost;a_user;/
OK;/fäle1.txt;/tmp/ftp/faele1.txt
OK;/dir1/file2.txt;/tmp/ftp/dir1/file2.txt
ERR;/file3.txt;some error messages
OK;/file_4.txt;/tmp/ftp/file_4.txt
Jedes Datenblatt beginnt mit einer HOST-Zeile, die den Hostnamen, den Benutzernamen und das Start-Verzeichnis enthält. Danach folgen n Zeilen, beginnend mit OK, oder ERR, abhängig vom Erfolg, oder Misserfolg des Kopiervorgangs, gefolgt vom Dateinamen. Die OK-Zeile enthält den Quell-Dateinamen und den Ziel-Dateinamen. Die ERR-Zeile enthält den Dateinamen und die Fehler-Meldung.