Mit transferFile führen Sie eine Dateiübertragung aus. transferFile startet die Dateiübertragung und wartet innerhalb von ftscript auf das Ende der Dateiübertragung.
Die Dateiübertragung selbst ist wiederanlauffähig.
Wenn Sie remoteSuccessScript (siehe Abschnitt „remoteSuccessScript") oder remoteFailureScript (siehe Abschnitt „remoteFailureScript") angeben, wird anschließend auf dem fernen Rechner das entsprechende Script ausgeführt.
Für die lokalen Scripts sollten Sie faulthandler (siehe Abschnitt „faulthandler") oder executeScript (siehe Abschnitt „executeScript") verwenden (Beispiel siehe "transferFile").
Arten der Dateiübertragung
Mit transferFile können Sie Dateien folgendermaßen übertragen:
Dateiübertragungen von „remote“ nach „local“ (fromRemoteFile toLocalFile)
Dateiübertragungen von „local“ nach „remote“ (fromLocalFile toRemoteFile)
Dateiübertragungen von „remote“ nach „remote“ sind über zwei aufeinander folgende (sequenzielle) transferFile Aktivitäten zu realisieren, z.B. in einer sequence Aktivität:
Dateiübertragung von „remote“ nach „localTmp“ (fromRemoteFile toLocalTmpFile)
Dateiübertragung von „localTmp“ nach „remote“ (fromLocalTmpFile toRemoteFile)
Einschränkungen
Nach der Dereferenzierung müssen fromRemoteFile und toRemoteFile eine Partnerangabe besitzen.
Die Elemente fromLocalFile und toLocalFile dürfen nach der Dereferenzierung keine Partnerangabe besitzen.
Mit transferFile können Sie keine Dateiübertragungen von „local“ nach „local“ ausführen.
Für Dateiübertragungen von „local“ nach „local“ verwenden Sie ein entsprechendes Script (copy) oder geben Sie eine der beiden Dateien als „remote“ und den lokalen Rechner als Partner an (transferAdmission angeben).
Format
|
Attribute
Name | Wert | Bedeutung |
| | Der Standardwert ist none. Die Datei wird nicht komprimiert. |
| | Der Standardwert ist replace. Eine existierende Datei wird überschrieben. Existiert die Datei nicht, wird sie angelegt. |
| | Der Standardwert ist false. Die Datei wird standardmäßig übertragen. |
| | Der Standardwert ist no. |
Beispiele
1. Dateiübertragung mit remoteSuccessScript / remoteFailureScript
|
Es werden die Datei bin.mp3 vom Partner remote in die lokale Datei bin.mp3 übertragen. Anschließend wird die Datei status.txt mit folgendem Inhalt erzeugt:
bei korrekter Übertragung
everything ok
everything ok
im Fehlerfall
something failed
something failed
Wenn beim Zusammensetzen der Datei status.txt Fehler auftreten, führt dies zum Abbruch des Scripts.
2. Dateiübertragung von „remote“ nach „remote“
|
Im Beispiel wird zuerst die Datei data.txt vom Partner remote1 in eine temporäre Datei kopiert. Die temporäre Datei bekommt einen internen Namen. Die Endung der temporären Datei entspricht der Endung der zugehörigen fromRemoteFile Datei (hier *.txt).
Die Konvertierung erfolgt mit autoDataSpec charPattern für Character-Zeichen, da die Endung der Datei dem Muster .txt entspricht (siehe Abschnitt „autoDataSpec"). Wenn das lokale System ein Windows-System ist, werden die Zeilenenden entsprechend konvertiert.
Bei der Übertragung der temporären Datei in das ferne System remote2 werden die autoDataSpec Einstellungen übernommen, die beim Erzeugen der temporären Datei vorgenommen wurden. Diese werden vererbt, ebenso maxRecSize und Dateneigenschaften des Elements fromRemoteFile. Wenn das lokale System ein Windows-System ist, werden die Daten bei der zweiten Übertragung nicht konvertiert. Bei einem lokalen Unix-System wäre es umgekehrt. Bei der Übertragung in das lokale System werden keine Daten konvertiert, jedoch bei der zweiten Übertragung in das ferne System.
3. Verwendung von faulthandler und executeScript für lokale Scripts
Der faulthandler (siehe Abschnitt „faulthandler") entspricht dem localFailure-Script, das direkt auf transferFile folgende executeScript (siehe Abschnitt „executeScript") entspricht dem localSuccessScript.
Schalten Sie einen transferFile-Auftrag mit local*Script wie im folgenden Beispiel dargestellt:
... <sequence> <context> <faulthandler> <default> <executeScript> .... localFailureScript... </executeScript> </default> </faulthandler> </context> <transferFile> .... </transferFile> <executeScript> ... localSuccessScript... </executeScript> <sequence> ...
Diese sequence kann auch in einer parallel oder foreach - parallel Anweisung stehen.