2011-09-22 213 views
0

我正在編寫一個JAVA程序,用於在某些時候需要將文件從正在運行的計算機上的文件傳輸到另一臺計算機上的工作。要求是這樣的,它可以配置爲通過FTP,SFTP進行傳輸,或者在身份驗證安全但數據未加密傳輸的情況下進行傳輸。試圖通過SSH做FTP隧道

使用第三方JAVA庫實現前兩個不應該太糟糕。我遇到的問題是第三種選擇。似乎唯一的方法就是通過SSH隧道傳輸FTP。

由於我在這件事上相當缺乏經驗,想知道是否有人有任何有用的建議。這可以通過使用可靠的JAVA庫(首選)或我剛剛在程序內調用的一個單獨進程來完成。

感謝

回答

1

您可以使用Apache Commons VFS文件上傳和下載。有FTPFTPS。唯一的先決條件是您的遠程系統必須運行FTP服務器。你不必調用一些外部過程。只要讓你自己的應用程序做這項工作。請記住要小心防火牆。

對於FTPS,只有控制會話保證被加密。數據通過常規FTP傳輸。它是否加密取決於您。您可以使用PROT和CDC命令來控制加密。

+0

感謝您的回覆。我已經看過Apache Commons,你可能是對的,它可以做我想做的事情。但是,它似乎只支持您提到的FTP和FTPS。 FTP是完全未加密的,而FTPS已加密認證和數據傳輸。我需要的是一箇中間解決方案,其中身份驗證是加密的,但在那之後,實際的數據傳輸對於這一個會話都是未加密的。我想知道Apache Commons本身是否提供這種功能,或者如果我必須做些額外的或其他的事情來實現這一點。 – Anonymous

+0

我剛剛更新了答案。 –