最近公司的vsftpd文件服务由之前的FTP传输改成了FTPS的,虽然代码做了相应的调整,但是始终有个问题,就是在服务器上文件创建成功了,名称也是正确的,可是一看大小确是0,于是查看日志
用项目上传的始终是失败,改成用filezilla上传,就成功了。很奇怪。在网上找了各种资料,也试了用其他项目的代码来上传,都是同样的问题。
解决方法:
后来在
FtpsClient执行完storeFile()方法上传之后,再通过getReplyString()方法打印了上传结果,发现有个错误提示
522 SSL connection failed; session reuse required: see require_ssl_reuse
于是顺着这个错误去找,找到了这条博客,里面说是vsftp的配置问题:
require_ssl_reuse设置为YES
时,所有SSL数据连接都需要显示SSL会话重用,需要将require_ssl_reuse设置为NO
真是山穷水尽疑无路,柳暗花明又一春,于是赶紧在服务器上的vsftp的配置文件里加了这个配置(不加的话默认是YES),再次上传,终于成功了。
总结:
当花了大量的时间和精力去试错依然解决不了的时候,就需要换个方向去解决问题了,这时候可能就不是代码的问题了,如果一直死磕在这里,头发掉光光了也解决不掉