• ftp上传工具类&FTPClient通过代理连接到FTP服务器


    ftp上传工具类&FTPClient通过代理连接到FTP服务器

    ftp上传工具类,直接封装使用Hutool的ftp

    • pom依赖
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>4.6.8</version>
    </dependency>
    
    • yml配置
    ftp:
      file-path: /ftp/pcloud-adss/
      host: 127.0.0.0.1
      port: 21
      user: root
      password: root
    
    • FtpUtil.java
    package cn.pconline.pcloud.base.util;
    
    import cn.hutool.core.util.CharsetUtil;
    import cn.hutool.extra.ftp.Ftp;
    import cn.hutool.extra.ftp.FtpMode;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    /**
     * @Description Ftp上传下载工具
     * @Author jie.zhao
     * @Date 2020/6/4 10:08
     */
    @Component
    public class FtpUtil {
    
        @Value("${ftp.host}")
        public String host;
    
        @Value("${ftp.port}")
        public int port;
    
        @Value("${ftp.user}")
        public String user;
    
        @Value("${ftp.password}")
        public String password;
    
        @Value("${ftp.file-path}")
        public String filePath;
     
        /**
         * 上传到Ftp
         *
         * @param fileName
         * @param in
         */
        public boolean upload(String fileName, InputStream in) {
    
            Ftp ftp = null;
            try {
                //服务器不需要代理访问
                //ftp = new Ftp(host, port, user, password);
                //服务器需要代理访问,才能对外访问
                ftp = new Ftp(host, port, user, password, CharsetUtil.CHARSET_UTF_8, FtpMode.Passive);
                return ftp.upload(filePath, fileName, in);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (ftp != null) {
                        ftp.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return false;
        }
    }
    
    

    FTPClient通过代理连接到FTP服务器

    问题:线上服务器需要使用代理才能访问外部。

    FTPClient通常处于活动模式(Active),如果您的代理无法启动tcp连接回客户端计算机(出于防火墙/ DMZ原因),则必须切换到被动模式(Passive)。

    ftp = new Ftp(host, port, user, password, CharsetUtil.CHARSET_UTF_8, FtpMode.Passive);
    
  • 相关阅读:
    关于Git的使用方法
    Python读取Excel数据
    用到的Dos命令总结 持续更新
    windows下使用Jenkins+Gitea持续集成
    HDFS概述(2)————Block块大小设置
    分布式文件系统比较出名的有HDFS  和 GFS
    c++里面有没有什么办法做到 判断某个给定的未知数是double类型还是int类型 呢?
    About HDFS blocks
    hadoop深入学习之SequenceFile
    使用RawComparator加速Hadoop程序
  • 原文地址:https://www.cnblogs.com/cnsyear/p/13140463.html
Copyright © 2020-2023  润新知