ftp加速传输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

61f7170b1b27eaca5b3137bbc5fde7b4.png

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

afb97f1753307f6f8469f65130f44225.png

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

26af30b84f3da59be2ab5d938a4108ff.png

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

特此记录。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值