码迷,mamicode.com
首页 > 编程语言 > 详细

Java FTPClient 大量数据传输的问题(未解决)

时间:2019-12-26 21:17:27      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:长度   comm   ftpfile   font   读取文件   数据传输   get   mamicode   存储   

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

目前采用 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次 都获取不到文件列表数据

技术图片

 

 

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

 特此记录。

Java FTPClient 大量数据传输的问题(未解决)

标签:长度   comm   ftpfile   font   读取文件   数据传输   get   mamicode   存储   

原文地址:https://www.cnblogs.com/fafa12138/p/12104146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!