Java使用FTP时碰到的坑--服务部署到linux时storeFile返回false

背景

正常情况下,我们都是把上传的文件保存到Java服务运行的服务器上。前段时间根据公司正式环境上的情况,必须要把文件做成跨服务器存储,经过考虑,最终采用FTP工具存储文件。
因为保存的文件并不是客户使用的文件,而是给运维人员使用的,所以这里并不需要考虑太多,直接写个简单的功能实现就好了。

正文

FTP服务站点怎么建,网上很多教程,不做赘述。本文只记录碰到的坑。
我是在window下开发,FTP服务端是window操作系统,开发阶段测试也在window下debug进行,正式环境下Java服务运行在linux上,采用docker部署。
在开发时一切正常,可是部署到服务器上,没有报出任何异常,但是ftp.storeFile()返回false。

依赖

查阅不少资料,很多人找不到jar包,甚至到网上求博主私信jar包,我不太理解为什么找不到,这里直接maven引入依赖就行了。

        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.6</version>
        </dependency>

实现代码

    /**
     * @param url       服务器IP地址
     * @param port      服务器端口
     * @param userName  用户登录名
     * @param password  用户登录密码
     * @param storePath 服务器文件存储路径
     * @param fileName  服务器文件存储名称
     * @param is        文件输入流
     * @return 			true上传成功    false上传失败
     */
    public static boolean storeFile(String url,
                                    int port,
                                    String userName,
                                    String password,
                                    String storePath,
                                    String fileName,
                                    InputStream is) {
   
        boolean result = false;
        FTPClient ftp = new FTPClient();
        try {
   
            ftp.connect(url, port);// 连接至服务器,端口默认为21时,可直接通过URL连接
          
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值