需求:按照上传策略的要求,上传指定文件夹,指定范围的文件,到指定磁盘
核心:
范围:理解上传策略,识别出应该上传的文件夹及文件列表;
动作:依据文件夹、文件清单,逐个上传,上传接口已有,直接调用即可。
需实现的逻辑及目标:
1、完成文件夹、文件的上传任务;2、效验每个任务是否已完成,如存在未完成,有接口可重传;3、有分析接口,可查询每个任务的完成情况,可分析漏传哪些文件夹,哪些文件;4、需支持超大文件夹(一个文件夹下存在2000左右文件夹,8-10T,800-900W文件)5、可识别出某个文件夹,当前已上传多少,未上传多少,可只上传增量文件(之前未上传过的文件)
上传策略
文件夹路径:*****,上传类型:当前文件夹还是逐层递进
1.文件夹层级:一级、二级、三级(可以配置多级的文件夹)
1.1 文件匹配类型:固定值 还是 正则表达式
1.2 文件夹规则:具体值
1.3 文件匹配类型:固定值 还是 正则表达式
1.4 文件规则:具体值
2.文件夹层级:....
参考思路:
1、创建本地的任务记录.xlsx或者SQLite,把需上传的文件都落入到这个记录表
2、生成任务记录表,补充一个任务状态:加载中;任务点击执行后,先进入到加载中,等任务记录表生成完成后,进入“执行中”
3、每次从.xlsx/SQLite文件加载1W条数据,进入内存,执行任务,每10条回写.xlsx或SQlite,更新上传状态
4、校验逻辑,做整体校验,文件数,文件夹数,文件大小,这三个指标,不一致说明任务异常,需重新上传
5、重新上传、异常的逻辑:存在未上传完的任务,把.xlsx里面未上传的,加载到内存,继续上传,直至任务完成。