宁武皇仁光九年锦文轩刻本《异闻录》载: 扶桑画师浅溪,居泰安,喜绘鲤。院前一方荷塘,锦鲤游曳,溪常与嬉戏。 其时正武德之乱,潘镇割据,战事频仍,魑魅魍魉,肆逆于道。兵戈逼泰安,街邻皆逃亡,独溪不舍锦鲤,未去。 是夜,院室倏火。有人入火护溪,言其本鲤中妖,欲取溪命,却生情愫,遂不忍为之。翌日天明,火势渐歇,人已不见。 溪始觉如梦,奔塘边,但见池水干涸,莲叶皆枯,塘中鲤亦不知所踪。 自始至终,未辨眉目,只记襟上层迭莲华,其色魅惑,似血着泪。 后有青岩居士闻之,叹曰:魑祟动情,必作灰飞。犹蛾之投火耳,非愚,乃命数也。 ————《锦鲤抄》

【sftp 服务器的简单了解】

项目上有服务器文件操作的需求, 遇到的问题和调试过程记录如下:

 

简单了解SFTP:

  在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果对网络安全性要求更高时,可以使用SFTP代替FTP(来源:百度百科)

调试背景:

  Sftp传输协议下的服务器文件接收与处理:(因为linux环境与windows环境的区别,测试存在一定不便,且服务器配置不同,所支持的ssh协议版本也不同);

问题与收获:

  关于对服务器中外围接口推送的压缩文件处理:SFTP协议,接收压缩文件并进行解析: 其中最主要的就是读取文件,解压文件,备份文件,删除文件。

  开发时出现的错误基本上是由于无权限和路径错误导致(ps:路径错误也会显示无权限),另外服务器环境与本地开发环境不同,所以测试很容易出现差异。 根据开发需要,第一步要建立与ftp服务器的连接,这个时候抛出了异常信息:[could not parse reponse code],但是详细信息其实是在debug内的detailMessage内:[Could not parse response code. Server Reply: SSH-2.0-OpenSSH_6.6.1] ,百度可知原因是FTPClient不支持通过协议SSH2进行SFTP连接,只能更换方法实现,可以使用com.jcraft.jsch.JSch提供的SSH解决问题,即用ChannelSftp 代替FTPClient。

   服务器顺利连接后,访问文件出现了问题: Permission denied (没有权限访问),以及备份文件的时候出现 :No such file, 出现这两个问题的原因有二:路径不正确(这点也会导致报错无权限..),以及参数错误(比如备份文件时路径名要具体到/xx/wz.zip,如果只写路径或者文件名前缀是不行的)。

 

 

 

 

   关于linux上的路径分隔符目前有三种说法:\\xxx\\yy\\zz.txt ,或者/xxx/yy/zz.txt,或者使用File.separator作为分隔符,这样会根据环境自动使用/或者\\进行分割。windows本地测试很多方法是没法顺利访问服务器文件的,比如rename方法等(简单说一下这个方法:这个方法如果路径相同则会进行文件重命名,路径不同则会进行文件移动,备份文件可以用这个方法。)

PS:sftp的一些方法在本地运行可能会出现权限问题

 

posted @ 2021-12-13 16:49  哒布溜  阅读(1102)  评论(0编辑  收藏  举报