Filetransfer FTP zu FTP

Darky

Grünschnabel
Hallo,

ich will ein kleines Programm schreiben, dass alle Dateien von FTP1 in ein festgelegtes Verzeichniss von FTP2 kopiert, jedoch bekomm ich es von der logik momentan einfach nicht hin, ich arbeite

mit "appache.commons.net.ftp" wie ich eine Datei speichern und hochladen kann weiß ich:


Java:
  if (storeFile)
            {
                InputStream input;

                input = new FileInputStream(local);

                ftp.storeFile(remote, input);

                input.close();
            }
            else
            {
                OutputStream output;

                output = new FileOutputStream(local);

                ftp.retrieveFile(remote, output);

                output.close();
            }


jedoch bekomm ich es einfach nicht adaptiert, dass ich eine Datei von FTP1 ohne Zwischenspeichern auf FTP2 kopieren kann.


Mfg
 
ich glaube auch nicht das es so einfach möglich sein wird den inputstream des ftp von dem geladen wird mit dem outputstream des ftp auf den geuppt wird zu verbinden ...
zur not könnte man auch versuchen irgendwo zwischen zu greifen und den stream welcher in ein file schreibt in einen bytearray-stream umzuleiten und so die daten erstmal nur im RAM zu cachen ...
behebt das problem zwar immer noch nicht aber vermeidet erstmal das physisch auf die platte geschrieben wird
und wenn man nun den punkt wo die daten im RAM liegen so zuzieht das die daten die vom input gelesen werden gleich in output zu schreiben ...
das das mit einem fertigen framework so nichts wird und du da schon einiges selbst schreiben musst ergibt sich aus der tatsache wesshalb es überhaupt fertige frameworks gibt : um dem user nämlich das low-level programmieren abzunehmen ...
leider bieten die meisten dann keine möglichkeit mehr irgendwo noch zwischen zu greifen so das man meist code-copies machen muss und sich den teil den halt das framework nicht kann selbst zusammen basteln muss ...
klar hilft es wenn man ein framework drumrum hat dem man dann nur noch entsprechende objekte , streams oder sonstwas übergeben muss ...
ich kenne die apache-commons nicht da ich immer alles selbst schreibe ... da weis ich dann wenigstens was passiert ... bei nem framework müsst ich da erstmal reinkuggn wo was abläuft ... aber ohne jetzt was falsches wissen zu wollen : ich wette das es mit den commons so nicht dierekt möglich ist ... du wirst den teil den ich oben beschrieben habe schon selbst basteln müssen ...

mit ein wenig ahnung von streams und dem protocol sollte das nicht schwierig sein ...
 
Hallo,

ein direkter Transfer zwischen zwei FTP-Servern wird über FXP ermöglicht. Soweit ich das sehe unterstützt die Klasse FTPClient von Apache Commons dieses Verfahren nicht direkt. Über die von FTP vererbten Methoden (oder über direkte Verwendung der Überklasse) sollte eine Umsetzung aber kein Problem sein.

Grüße,
Matthias
 
Zurück