上周接到一个文件上传下载的需求,具体如下:
项目说明:
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
---->下载压缩文件到本地指定路径,下载完成