1. 程式人生 > >java連線sftp伺服器 (隨筆)

java連線sftp伺服器 (隨筆)

網上有很多成型的例子,在這裡提供幾個不錯的連線

網sftp伺服器上傳檔案 需藉助jsch.jar包  

JSch 實現了三種傳輸模式

1,完全覆蓋模式

2,恢復模式,(類似於斷點上傳)因外部原因導致檔案上傳中斷,下次上傳時會接著上次的繼續上傳

3,追加模式,若發現檔案已經存在,則在目標文化後追加。

ChannelSftp類是JSch實現sftp核心類,實現了很多方法。

put():      檔案上傳

get():      檔案下載

cd():       進入指定目錄

ls():       得到指定目錄下的檔案列表

rename():   重新命名指定檔案或目錄

rm():       刪除指定檔案

mkdir():    建立目錄

rmdir():    刪除目錄

put方法把檔案放在伺服器上,put ,get方法都有多個過載方法。請認真閱讀原始碼。

JSch是Java Secure Channel的縮寫。JSch是一個SSH2的純Java實現。它允許你連線到一個SSH伺服器,並且可以使用埠轉發,X11轉發,檔案傳輸等,當然你也可以整合它的功能到你自己的應用程式


SFTP是Secure File TransferProtocol的縮寫,安全檔案傳送協議。可以為傳輸檔案提供一種安全的加密方法。SFTP 為 SSH的一部份,是一種傳輸檔案到伺服器的安全方式。SFTP是使用加密傳輸認證資訊和傳輸的資料,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網路安全性要求更高時,可以使用SFTP代替FTP。


詳細講解sftp檔案上傳

JAVA實現SFTP的例項

在開發過程中,遇到連線錯誤的異常。

com.jcraft.jsch.JSchException:Session.connect: java.io.IOException:

程式碼執行到     sshSession.connect();程式報錯,在網上搜了大半天未果。後來請教一個朋友,換了一個jar包,問題得到解決。當問題出現的時候,我們總是侷限在一個小小的問題上,而不會跳出這個圈,全域性的考慮,這樣往往浪費很多時間。^_^ 他說了一句話,對我啟發很大,工作開不開心和能力無關。吼吼~~

20170622新增:

這篇blog是13年寫的,目前本人已經不在從事開發工作,

但是依然有很多小夥伴留言和私信諮詢替換哪個jar解決了問題,下面結合@春畫秋事 小夥伴的測試,將jar包以及版本給大家 補充一下,

可以百度搜索jsch-0.1.54.jar,替換該版本的jar包,問題解決。