Java通过SSH实现文件上传下载功能
上周接到一個文件上傳下載的需求,具體如下:
項目說明:
? ?1.本項目采用ssh方式,實現文件的上傳與下載功能;
? ? ?windows連接遠程服務有多種方式,網上有通過socket實現的;也有ftp方式連接和ssh方式。調研后,我采用的是SSH方式連接遠程服務,因為我要遠程操作服務器上的文件和文件夾,對文件夾進行解壓和壓縮功能。
? ??實現難點:
? ? ? ?1.java 實現對文件(夾)的壓縮和解壓;(java的工具類即可以實現)
? ? ? ?2.java通過SSH方式連接遠程服務,并遠程執行cmd命令;(引用的jar包ganymed-ssh2-build210.jar)
? ? ? ?3.在本地通過java調用Windows命令Runtime.getRuntime();runtime.exec(cmd).waitFor()
? ?2.上傳下載流程:
?? ??? ?1.上傳
?? ??? ? ?壓縮對應的文件夾,生成臨時文件.zip?
?? ??? ? ---->上傳臨時文件.zip,上傳成功,刪除本地臨時文件 ?
?? ??? ? ----> 遠程服務上解壓到服務器指定路徑,并刪除服務器上臨時zip文件?
?? ??? ?2.下載
?? ??? ? 壓縮服務器指定文件夾,生成臨時文件.zip
?? ??? ? ---->下載壓縮文件到本地指定路徑,下載完成,刪除服務器上的 zip文件
?? ??? ? ---->解壓本地壓縮包,解壓完成,刪除 zip包
?? ?3.代碼說明:
?? ??? ?com.remote.bean ? ??? ?實體類
?? ??? ?com.remote.utils ? ?? ?工具類
?? ??? ?com.route ? ? ? ? ??? ?上傳/下載文件的入口類
?? ??? ?com.test ? ? ? ? ? ?? ?測試類
?? ??? ?項目根目錄libs目錄?? ? ? ? ? ? ?所依賴的jar包
?? ??? ?項目根目錄command目錄 ? ? ?配置信息
?? ?4.配置文件內容說明:
? ? ? ?
?? ??? ?down;132.232.143.221;21;Administrator;test;C:\ftp\服務器測試\;E:\wangzgCode\sshLocal\;測試
?? ??? ?#down;服務IP地址;端口;服務器用戶名;服務器密碼;服務器文件夾的路徑;本地保存地址;本地保存文件名
?? ??? ?up;132.232.143.221;21;Administrator;tess;E:\wangzgCode\sshLocal;C:\ftp;服務器測試
?? ??? ?#up;服務器IP地址;端口;服務器用戶名;服務器密碼;本地文件夾的路徑;服務器保存地址;服務器保存文件名
?? ??? ?
運行程序:
?? ?1.windows服務器需要安裝
?? ??? ?1.winrar.exe解壓軟件
?? ??? ?需要將winrar.exe到環境變量
?? ??? ?參考:https://jingyan.baidu.com/article/db55b6099d1e0d4ba30a2fc0.html
?? ??? ?
?? ??? ?2.ssh服務BvSshServer-Inst.exe軟件
?? ??? ?下載鏈接:https://download.csdn.net/download/huaairen/10977766?
? ? ? ? ?配置參考:https://blog.csdn.net/u012145252/article/details/80739056
?
下一遍上具體的實現代碼,請持續關注哦!
?
歡迎關注我的公眾號"不安分的猿人",也可掃描二維碼:
??
推薦閱讀:
? ? ? ? ? ? 一位朋友的人工智能教程。零基礎,通俗易懂!
? ? ? ? ? ??手工制作SpringMVC框架
?
?? ?
?
?
總結
以上是生活随笔為你收集整理的Java通过SSH实现文件上传下载功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派换源、vim更新:树莓派更换国内可
- 下一篇: Java 集合系列14之 Map总结(H