FtpCopy
Gruppe |
|
Konfiguration |
Pfad zu Properties-Datei in Feld Konfigurationsdatei, siehe auch ./conf/samples/FtpCopy_howto.txt. |
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. Hinweis: Für die Werte der Parameter host, port, user, passwd, domain, channel, source_dir, pattern, destination_host, destination_port, destination_dir, destination_user, destination_passwd, destination_domain, destination_channel können in der Konfigurationsdatei System-Konstanten verwendet werden. Beispiel: host="%MY_CONSTANT%"
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. |
user |
User für FTP-Server. |
passwd |
Passwort für FTP-User. |
domain |
Domain des FTP-Users. |
ctrl_file |
Wenn die Option angegeben ist, dann wird ein Verzeichnis nur verarbeitet, wenn die spezifizierte Kontrolldatei vorhanden ist. Die Kontrolldatei wird auf Quellseite gelöscht und nicht übertragen. Siehe Beispiel. |
smb |
Support für Samba-Verzeichnisse. Benutzen Sie UNC-Notation (source_dir="\\myServer\share\copy). Parameter channel und destination_channel für SMB-Kanäle. Siehe Beispiele. |
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. |
destination_user |
Ziel-User. |
destination_passwd |
Passwort für Ziel-User. |
destination_domain |
Domain für Ziel-User. |
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. |
destination_sftp |
true, falls der Server auf den übertragen wird ein SFTP-Server ist. Default: false. |
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). |
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. |
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. |
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. |
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. |
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. |
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
<
config
>
<!-- force_lowercase="true" forces the destination file name to be written in lower case; force_uppercase="true" for upper case -->
<
account
enter_empty_dir
=
"false"
host
=
"localhost"
port
=
"21"
user
=
"ftp"
passwd
=
"ftp"
delete_files
=
"true"
source_dir
=
"/"
destination_dir
=
"/tmp/ftp"
mode
=
"passive"
pattern
=
"*"
force_uppercase
=
"false"
force_lowercase
=
"false"
binary
=
"true"
>
<!-- do not copy folders with the following names... -->
<
exclude_dir
>test</
exclude_dir
>
<
exclude_dir
>invoices</
exclude_dir
>
<!-- here are replacements instructions -->
<
replace
old_value
=
" "
new_value
=
"_"
/>
<
replace
old_value
=
"ä"
new_value
=
"ae"
/>
<
replace
old_value
=
"hello"
new_value
=
"world"
/>
<!-- here is an exclude list of file pattern and wether to delete it or not -->
<
exclude_file
delete
=
"true"
>~*</
exclude_file
> <!-- do not copy ~files and remove it locally -->
<
exclude_file
delete
=
"false"
>*.tmp</
exclude_file
> <!-- do not copy *.tmp files and do not delete it locally -->
</
account
>
</
config
>
Ausgabe
Die Ausgabe erfolgt im CSV-Format, in der Kodierung 8859_1. Für jedes <account>-Element wird 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.