linux服务器上搭建ftp服务器无法上传文件 - Go语言中文社区

linux服务器上搭建ftp服务器无法上传文件


最近在项目中遇到了一个问题,困扰了我好几天,客户有个需求需要在页面把xml文件上传,然后后台解析文件并入库。由于dubbo框架的dubbo协议有文件大小的限制,不能传输超过8M的文件,所以和组员讨论后决定使用ftp服务器的方案。

实现方案:页面上传文件直接上传到ftp服务器,然后后台执行到解析文件的步骤时直接去ftp服务器的指定路径上下载客户上传的xml文件。

很简单的业务逻辑,在本地(自己的电脑,win10系统)开发、测试都没有任何问题,但是当把应用部署到云服务器(linux系统)的测试环境上时,发现文件一直无法上传,但是文件上传存放的路径却可以生成,导致无法获取文件解析入库。

然后开始排查问题,开始的时候怀疑是ftp服务器搭建过程中缺少了哪些配置,后面否定了,因为在本地测试的时候也是用同一个ftp服务器,最后排查到ftp上传的Java工具类上,发现上传的时候没有抛任何异常storeFile()接口一直返回false;
如下图所示:
在这里插入图片描述
后台日志如下:
在这里插入图片描述
解决方案如下图所示:
在这里插入图片描述
上面那两行的第一行的作用如下:
在项目中使用 commons-net-3.0.1jar实现FTP文件的下载,在 windows xp或win10上运行正常,但是放到linux上,却无法正常使用上传文件接口和获取文件列表接口。所以需要在调用storeFile、IistFiles这两个方法之前,调用FTPClient.enterlocalPassiveMode()这个方法的意思就是每次数据连接之前, ftp clien诉 ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能毎次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。OK,问题解决。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wuzhangweiss/article/details/86648793
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 22:25:21
  • 阅读 ( 714 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢