zoukankan      html  css  js  c++  java
  • Java FTPClient 大量数据传输的问题(未解决)

    业务需要 需要将一个存储的目标文件里的文件全部拷贝到另一个存储里面去,保持文件结构。

    目前采用 org.apache.commons.net.ftp包下相关类来达到ftp连接 获取文件目录信息,拷贝文件等功能

    由于需要拷贝的存储数据很多,会达到100W+的文件数量,在获取文件目录信息是遇到了问题。

    在获取目标文件夹下文件列表是 会遇到返回不到后者返回数据不对的情况,在数据量越大的文件 发生的可能性越高。

    private FTPFile[] getFileListTryTimes(FTPClient ftpClient, String dir) throws Exception {
    ftpClient.enterLocalPassiveMode();
    FTPClientConfig ftpCfg = new FTPClientConfig("com.iflytek.ibk.file.transfer.util.ftp.UnixFTPEntryParser");
    ftpClient.configure(ftpCfg);
    FTPFile[] files = ftpClient.listFiles(dir);
    if (files.length == 0) {
    //重试多次次 偶现读取文件夹读取不到数据问题
    for (int i = 0; i < 10; i++) {
    ftpClient.enterLocalPassiveMode();
    files = ftpClient.listFiles(dir);
    log.error("获取文件列表 目录:{} ,长度为:{} ,重试次数:{}", dir, files.length, i);
    if (files.length > 0) {
    break;
    }
    }
    }
    if (files.length == 0) {
    log.error("========== path:{} scan nothing ==========", dir);
    }
    return files;
    }

    第一次请求  重试6次返回结果 文件列表长度22

    第二次请求  重试2次返回结果文件列表长度2

    第三次请求 重试10次 都获取不到文件列表数据

    存在扫描错误/扫描不到结果的问题 导致对应传输结果少数据。

     特此记录。

  • 相关阅读:
    VM12+CentOS6.8安装VM tools
    PHP关联数组按某一value值排序
    命名规范
    JavaScript中的函数
    JavaScript中的for循环语句
    JavaScript中的判断和循环
    Javascript运算符的分类
    Html中的JavaScript
    【逆战】HTML5新语义化标签 (二)
    【逆战】HTML5新语义化标签 (一)
  • 原文地址:https://www.cnblogs.com/fafa12138/p/12104146.html
Copyright © 2011-2022 走看看