FtpCopy

Gruppe

Zeitgesteuerte eigene Klassen

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

sample_ftp_copy.xml
<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.