CN106993026B - 一种ftp服务器新增文件检测下载方法及装置 - Google Patents

一种ftp服务器新增文件检测下载方法及装置 Download PDF

Info

Publication number
CN106993026B
CN106993026B CN201710144262.9A CN201710144262A CN106993026B CN 106993026 B CN106993026 B CN 106993026B CN 201710144262 A CN201710144262 A CN 201710144262A CN 106993026 B CN106993026 B CN 106993026B
Authority
CN
China
Prior art keywords
file
directory
time
downloading
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710144262.9A
Other languages
English (en)
Other versions
CN106993026A (zh
Inventor
孙永亮
赵平东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taiji Computer Corp Ltd
Original Assignee
Taiji Computer Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taiji Computer Corp Ltd filed Critical Taiji Computer Corp Ltd
Priority to CN201710144262.9A priority Critical patent/CN106993026B/zh
Publication of CN106993026A publication Critical patent/CN106993026A/zh
Application granted granted Critical
Publication of CN106993026B publication Critical patent/CN106993026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

本发明公开了一种FTP服务器新增文件检测下载方法及装置。该方法包括:扫描指定目录,得到指定目录下的FTP对象列表;当FTP对象列表中的FTP对象为文件时,判断文件是否满足预设的第一条件,其中,第一条件包括以下条件中的一个或多个:文件大小符合策略设置、文件名称符合正则过滤、文件的修改时间不超期;当文件满足第一条件时,判断文件的修改时间是否晚于文件所在目录的最新下载时间,当文件的修改时间晚于文件所在目录的最新下载时间时,下载文件。借助于本发明的技术方案,有助于减少判断次数,提升整体判断速度。

Description

一种FTP服务器新增文件检测下载方法及装置
技术领域
本发明涉及移动通讯领域,特别涉及一种FTP服务器新增文件检测下载方法及装置。
背景技术
FTP是File Transfer Protocol(文件传输协议)的英文简称,FTP服务器则是通过FTP提供文件存储和访问服务的计算机,访问者可使用FTP客户端通过网络远程访问FTP服务器,读取FTP服务器存储的文件。FTP服务器文件可删除的场景下载逻辑较为简洁,存在就下载、下载成功就删除FTP服务器文件即可;而FTP服务器无法删除的场景中就会有历史文件堆积,需要有一种新增文件的检测方法才能快速下载有效的新增文件。为让众多访问者共享使用FTP服务器提供的文件,且避免互相之间的影响,通常做法是为访问者提供只读权限的FTP用户账号,这样访问者可正常读取且无法删除FTP文件。比如气象领域的气象资料就采用了上述共享方式,FTP服务器一般会存储一段时间的文件,一周、一个月、一年甚至更长时间,访问者为了能够及时、高效的从FTP服务器众多目录、文件中得到新增文件就要建立一种新增文件下载的策略方法。
2015年03月25日申请公布的中国专利申请“CN104461563一种在Linux下远程定时检测FTP服务器新增文件的方法”提供了一种新增文件的检测方法;此专利申请在访问者客户端机器中将已下载文件最新的修改时间记录在本地配置文件中。通过获取服务器指定目录中各个文件的修改时间,将各个文件的修改时间与本地配置文件中存储的时间进行比对,同时在该时间之后的文件视为新增文件,将这些新增文件写到一个新增文件列表中,最后通知数据文件下载模块对文件列表中的文件进行下载同时将文件列表中各个文件最新的修改时间更新到本地配置文件中。
上述方法存在以下缺陷:第一:适用场景局限。此专利申请针对的是指定FTP目录下的文件,未考虑指定FTP目录下包含子目录的场景,而这种场景尤为普遍,在包含子目录场景下就会存在文件名重复的情况,此专利申请只记录文件名及修改时间的检测方法无法适用。第二:可能漏检文件。客户端通过FTP命令“dir”取得FTP文件修改时间只能精确到分钟,即使逐个文件再次通过FTP命令“quote mdtm指定FTP文件名称”取得指定FTP文件的修改时间也只能精确到秒,且精确到秒方式需要逐个交互消耗较大;若文件在1秒内有新修改取得的修改时间是不变的,则不会被当做新增文件,在此场景下就会出现漏检文件,文件有修改确未能下载。第三:检测的效率低。按照此专利申请提供的检测方式,服务器端任何一个文件都需与记录下载成功的本地配置文件进行全记录比对,在FTP服务器文件量较多、本地配置文件记录条数较多的情况下检测效率低,低到一定程度就会导致不可用。第四。无法持续运行:配置文件中存储了所有下载成功文件的修改时间,且没给出配置文件的清理机制,随着下载文件数量的增多,配置文件将无限扩大,对新记录写入配置文件带来性能影响,也会给客户端机器带来存储压力,导致无法持续运行。
2016年9月在成都大学学报(自然科学版)第35卷第3期234至239页刊出张志强、郑加林、王伟钧、苏长明和黎忠文发表的“一种自适应FTP服务器的增量文件下载算法”,此算法在文件下载正常结束后,会将该文件在FTP中的路径地址、文件名、文件修改时间和文件大小等属性值写入日志文件保存(日志文件既可以存储在FTP上,也可以存储在客户端)当搜索FTP增量文件时,算法会将文件在FTP中的属性信息与日志文件中的属性信息进行匹配检查.当匹配成功,表示该文件已经下载完成,不是增量文件,不再重复下载;否则表示为新的增量文件,如果是增量文件,则下载该文件。
上述算法存在效率低和无法持续运行的两个主要缺陷:第一:检测的效率低。检测时会将FTP服务器的所有文件属性与日志文件所有记录的属性进行比对,在FTP服务器文件量较多、本地配置文件记录条数较多的情况下检测效率低,低到一定程度就会导致不可用。第二:无法持续运行:算法实现方式是在文件下载成功后将FTP中的路径地址、文件名、文件修改时间和文件大小等属性值写入日志文件保存,未提出此日志文件的清理策略,随着运行时间推移,此日志文件将无限扩大,对新记录写入日志文件带来性能影响,也会给客户端机器带来存储压力,最终导致无法持续运行。
发明内容
鉴于上述问题,提供一种克服上述问题或者至少部分地解决上述问题的FTP服务器新增文件检测下载方法及装置。
本发明提供的一种FTP服务器新增文件检测下载方法,包括以下步骤:
扫描指定目录,得到所述指定目录下的FTP对象列表;
当所述FTP对象列表中的FTP对象为文件时,判断所述文件是否满足预设的第一条件,其中,所述第一条件包括以下条件中的一个或多个:文件大小符合策略设置、文件名称符合正则过滤、文件的修改时间不超期;
当所述文件满足所述第一条件时,判断所述文件的修改时间是否晚于所述文件所在目录的最新下载时间,当所述文件的修改时间晚于所述文件所在目录的最新下载时间时,下载所述文件。
本发明还提供了一种FTP服务器新增文件检测下载装置,包括:扫描模块、文件处理模块;
所述扫描模块,用于扫描指定目录,得到所述指定目录下的FTP对象列表;
所述文件处理模块,用于当所述FTP对象列表中的FTP对象为文件时,判断所述文件是否满足预设的第一条件;当所述文件满足所述第一条件时,判断所述文件的修改时间是否晚于所述文件所在目录的最新下载时间,当所述文件的修改时间晚于所述文件所在目录的最新下载时间时,下载所述文件,其中,所述第一条件包括以下条件中的一个或多个:文件大小符合策略设置、文件名称符合正则过滤、文件的修改时间不超期。
本发明有益效果如下:
本发明通过设置第一预设条件,使得有效新增文件的判断不再像通常使用的与所有已下载列表每条记录进行比对的方式,而是通过文件过期判断、目录最新下载时间、比对时长内的“目录文件列表”里与待判断文件修改时间一致的列表比对等递减判断方式减少了判断次数,提升了整体判断速度。
附图说明
图1是本发明方法实施例的FTP服务器新增文件检测下载方法的流程图;
图2是本发明方法实施例实例1的FTP服务器新增文件检测下载方法的流程图;
图3是本发明装置实施例的FTP服务器新增文件检测下载装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术中检测的效率低、可能漏检文件、无法持续运行的问题,本发明提供了一种FTP服务器新增文件检测下载方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
根据本发明的方法实施例,提供了一种FTP服务器新增文件检测下载方法,图1是本发明方法实施例的FTP服务器新增文件检测下载方法的流程图,如图1所示,根据本发明方法实施例的FTP服务器新增文件检测下载方法包括如下处理:
S101:扫描指定目录,得到所述指定目录下的FTP对象列表。
S102:当所述FTP对象列表中的FTP对象为文件时,判断所述文件是否满足预设的第一条件,其中,所述第一条件包括以下条件中的一个或多个:文件大小符合策略设置、文件名称符合正则过滤、文件的修改时间不超期。
S103:当所述文件满足所述第一条件时,判断所述文件的修改时间是否晚于所述文件所在目录的最新下载时间,当所述文件的修改时间晚于所述文件所在目录的最新下载时间时,下载所述文件。
进一步的,当所述文件不满足所述第一条件时,不进行下载。
其中,所述文件所在目录的最新下载时间在预设的各目录最新下载时间列表中查找得到。
进一步的,本发明的方法实施例还包括以下步骤:
当所述FTP对象列表中的FTP对象为子目录时,判断所述子目录是否满足预设的第二条件,其中,所述第二条件包括以下条件中的一个或两个:子目录名称符合正则过滤、子目录的修改时间不超期;
当所述子目录满足所述第二条件时,将所述子目录作为所述指定目录,扫描指定目录得到所述子目录下的FTP对象列表,判断所述子目录下的FTP列表对象,并按照判断结果进行下载。
当所述子目录不满足所述第二条件时,则继续判断所述FTP对象列表中的下一个FTP对象。
具体的,判断文件或子目录的修改时间是否超期包括以下步骤:
利用当前时间减去预设时长得到超期时间;
若所述文件或子目录的修改时间早于所述超期时间,则所述文件或子目录的修改时间超期。
进一步的,本发明方法实施例所述的FTP服务器新增文件检测下载方法,还包括以下步骤:
当所述文件的修改时间早于所述文件所在目录的最新下载时间时,判断所述文件的修改时间是否早于所述文件所在目录的最早比对时间,当所述文件的修改时间早于所述文件所在目录的最早比对时间时,不进行下载,其中,所述文件所在目录的最早比对时间由所述文件所在目录的最新下载时间减去预设比对时长得到;
当所述文件的修改时间晚于所述文件所在目录的最早比对时间时,在预设的各目录已下载文件属性信息列表中找到与所述文件的修改时间一致的列表子集,如果所述文件的属性信息与所述列表子集有匹配项时,不进行下载;如果所述文件的属性信息与所述列表子集没有匹配,下载所述文件。
进一步的,本发明方法实施例所述的FTP服务器新增文件检测下载方法,还包括以下步骤:
将下载成功的文件属性记录到所述各目录已下载文件属性信息列表中;
当所述下载成功的文件的修改时间晚于所述文件所在目录的最新下载时间时,利用所述下载成功的文件的修改时间更新所述各目录最新下载时间列表。
进一步的,本发明方法实施例所述的FTP服务器新增文件检测下载方法,还包括以下步骤:
清理所述各目录最新下载时间列表及所述各目录已下载文件属性信息列表中按照策略判断不再使用的信息。
本发明方法实施例通过超期时长、最早比对时间、子目录超时判断的配置,结合各目录的最新下载时间及各目录比对时长内最新下载的文件属性信息列表的记录信息,使得有效新增文件的判断不再像通常使用的与所有已下载列表每条记录进行比对的方式,而是通过文件过期判断、目录最新下载时间、比对时长内的“目录文件列表”里与待判断文件修改时间一致的列表比对等递减判断方式减少了判断次数,提升了整体判断速度。同时提出了记录信息内存对象及文件相结合的方式,并给出了持久化、初始化和清理机制,提升了运行速度和可靠性,保证了应用本发明方式的应用系统可持续运行。另外通过分目录方式记录各目录下FTP文件对象文件名、文件修改时间和文件大小的全属性信息,杜绝了FTP新增文件部分属性变化而判断疏漏的情况,提高了通用性,能适应只读方式下载FTP文件的所有场景。
为了更加详细的说明本发明的方法实施例,给出实例1,图2是本发明方法实施例实例1的FTP服务器新增文件检测下载方法的流程图,如图2所示,FTP服务器新增文件检测下载方法包括以下步骤:
(1)初次启动时从持久化目录读取获取策略对应的各目录最新下载时间列表及各目录已下载文件属性信息列表并初始化到内存对象,设定任务运行状态标识的初始状态,将获取策略中配置的cron表达式在作业调度系统注册,进入第(2)步的扫描任务作业调度。
在本发明中,创建了以下数据结构:
各目录最新下载时间列表:用于记载所有目录最新一次文件下载的时间,分为内存对象和磁盘持久化文件两种形态,内存对象做新增文件检测判断,持久化文件则是为了提升系统的稳固性,在内存信息丢失后可通过持久化文件进行初始化。此文件记录条数与获取规则对应的目录个数对应,总量很少,因此每个获取规则对应一个文件,新增、修改或删除导致记录有变化时时做全覆盖写入,为了避免写入过程中的可能故障导致问题,此配置文件同时写入一主、一备两份。
各目录已下载文件属性信息列表:用于记载目录比对时间内的已下载文件名称、文件大小、修改时间等属性信息的记录列表,每个目录对应一个已下载文件属性列表,分为内存对象和磁盘持久化文件两种形态,两者作用与分工与“各目录最新下载时间列表”一致,考虑记录数量较多且更改频繁,每个目录对应一个文件,以追加方式记录最新内容,并按照设定时长(比如十分钟)做文件分割,做清理时以文件为单位进行删除,规避了读、写冲突,减少了IO操作。
FTP服务器信息:记录FTP服务器的IP、用户、密码(DES可逆加密)、编码、时区等属性信息。
FTP文件下载策略配置信息:记录与新增文件检测、下载相关的配置信息,主要配置项如下:
√任务调度配置:配置任务调度策略,采用了通用的cron表达式方式。
√FTP服务器信息配置:选用某个已配置的FTP服务器信息,主要是考虑一个FTP服务器多个无关路径需要配置文件获取策略时,通过选用某个已配置的FTP服务器信息的方式可复用FTP服务器信息。
√FTP服务器路径:配置本获取规则指定的FTP服务器路径。
√超期时长:设定修改时间超期的时长,当前时间减去此设定时长得到超期时间,文件修改时间早于上述计算的超期时间认为此文件已超期,不予下载。在气象领域文件资料一般会有时限要求,过期的文件对于后续业务应用已失去作用,还可能引起混淆和带来负面影响,下载本身也是一种消耗,因此需规避过期文件的下载,比如通常数值预报中的背景场资料不超12小时,预报报文资料不超3小时,实况报不超1小时,自动观测资料不超5分钟,此参数可结合业务需要设定恰当的超期时长,建议尽量小,但又不至于缺失有效文件。
√文件名称过滤配置:配置符合下载要求的文件名,采用正则表达式方式,文件名不符合正则表达式规则的,认为是不需要的文件不予下载;正则表达式配置信息为空时不做此项判断。
√文件大小质量控制范围:设定文件大小的控制范围,不在范围内的文件不予下载,比如气象数值预报背景场资料单个文件大小约在45M至55M之间,就可以设定一个合理的控制范围,避免将正在生成过程中的文件下载下来浪费带宽资源;不设定文件大小范围时不做此项判断。
√子目录是否包含:设定是否处理FTP服务器路径下的子目录:若包含,则会递归处理子目录;不包含,则会忽略子目录。
√子目录是否判断修改时间超时:针对子目录自身的修改时间是否要判断修改时间超时的设定,若设定了需要判断,子目录修改时间早于“文件修改时间超期时长”参数设定值计算得到的超期时间那就认为此子目录已超期,不会再递归进去此子目录进行判断,比如针对气象数值预报GFS背景场资料下载目录,每天会先后生成包含年月日时次的4个目录yyyymmdd00、yyyymmdd06、yyyymmdd12、yyyymmdd18,FTP服务器一般会存放一个月的文件,进行上述设定后,就可以在子目录一级判断进入需要下载的最新日前时次的目录,可大量减少需要判断的文件;若设定了“子目录是否判断修改时间超时”不判断,则不会考虑子目录自身修改时间是否过期,不判断的设定一般针对目录建立后修改时间很久未更新,但目录中的文件却有变化且需要下载的场景,此场景若属于固定的接口目录,通常建议针对此接口目录再细分设定下载策略,避免和其他目录混杂在一个下载策略中性能受影响。
√子目录名称过滤:设定子目录名称的正则表达式过滤规则,不符合表达式规则子目录不进行判断、下载处理;不设定时不做此项判断。
√已下载文件属性信息列表比对时限:表示的含义是某目录最新下载时间减去此时限得到的比对开始时间,文件修改时间在比对开始时间之前的文件认为已确定下载过,不再进行比对和下载,否则与已下载文件属性信息列表记录进行比对,比对有完全匹配项的,认为已下载且无变化,不再进行下载,其他情况认为未下载或者有更新,将进行下载。此时限默认时长是0,只有在特定FTP服务器后放置的文件修改时间比先放置文件修改时间更早的情况下才会配置合适的数值,比如在Linux系列服务器中,程序从生成目录mv移动到FTP下载目录时,文件修改时间不会变化,就可能发生上述情况,此情景下若不设定比对时限就会由于后放置的文件修改时间早于目录的最新下载时间而导致后放置的文件漏下载。
√本地文件下载存储路径:设定下载文件存储的本地路径。
(2)按照cron表达式配置的调度策略启动FTP扫描任务,进入第(3)步具体任务处理操作。
(3)通过“任务运行状态标识”进行本项任务的互斥运行检测,判断此任务上次调用是否还再运行中:有任务运行就结束本次扫描任务,等待扫描任务的下次调度运行;没有任务运行将“任务运行状态标识”设置为运行中,继续第(4)步登录、指定目录扫描调用操作。
(4)按照策略配置的FTP服务器IP、用户、密码信息,登录FTP服务器,按照策略配置指定的获取目录调用第(5)步的指定目录扫描操作。
(5)扫描指定目录,得到此目录下的子目录及文件FTP对象列表,此FTP对象列表按照修改时间从先到后正序排列,针对得到FTP对象列表进行第(6)步的列表遍历操作。
(6)循环遍历此FTP对象列表,逐一进行判断,首先判断是文件还是子目录,若是子目录,子目录修改时间不超期,且名称符合子目录正则过滤,就将指定目录设定为此子目录,递归调用第(5)步;否则进入第(7)步的文件判断操作。
(7)若是文件,判断此文件大小是否符合策略配置,名称是否符合文件名正则过滤,通过修改时间判断文件是否过期:当前时间减去此设定时长得到超期时间,文件修改时间早于此时间的属于过期文件,三个条件若有不符合项认为此文件不符合下载策略要求,不进行下载,继续第(6)步的列表循环操作;完全满足初步判断的三个条件后再继续第(8)步与所在目录最新下载时间的比较判断。
(8)根据内存中的“各目录最新下载时间列表”对象找出此文件所在目录的最新下载时间,判断文件修改时间若晚于所在目录的最新下载时间,这里未找到所在目录的最新下载时间的情况也判定为晚于(比如首次进行下载时就无时间记录),就进行第(11)步下载操作;否则进行第(9)步的根据目录最新下载时间及“比对时长”的向前比对的判断。
(9)使用“各目录最新下载时间列表”对象记录的文件所在目录最新修改时间减去策略配置中设置的“比对时长”得到此目录的“最早比对时间”:如果此文件修改时间早于此“最早比对时间”认为已下载过,不再进行下载,继续第(6)步的列表循环操作;否则继续进行第(10)步的“目录已下载文件属性信息列表”比对判断。
(10)从“所有目录已下载文件属性信息列表”Map对象中找出本文件所在目录作为key键对应的“目录已下载文件属性信息列表”中与待检测文件修改时间一致的列表子集,此文件属性信息与此列表子集进行比对,若有匹配项,认为此文件已有过下载,且无变化,不再进行下载,继续第(6)步的列表循环操作;否则认为此文件未经下载或有新的变化,需要进行下载,进行第(11)步下载操作。
(11)进行文件的下载操作,若下载失败,此文件会在下次调度时再做判断、下载,继续第(6)步的列表循环操作;成功下载后进行第(12)步记录“目录已下载文件属性信息列表”。
(12)将下载成功的文件属性记录到内存记录的“目录已下载文件属性信息列表”中,并持久化追加记录到磁盘记载的“目录已下载文件属性信息列表”,继续第(13)步“各目录最新下载时间列表”更新操作。
(13)如果文件修改时间晚于“各目录最新下载时间列表”记录的所在目录最新下载时间,则使用文件修改时间更新此目录的最新下载时间,并持久化到磁盘文件“各目录最新下载时间列表”;否则无需更新和持久化。完成更新操作后继续第(6)步的列表循环操作。
(14)第(6)步的列表循环操作完成后,执行“各目录最新下载时间列表”和“各目录已下载文件属性信息列表”对应的持久化文件、内存对象的清理工作,清理原则是按照策略判断不再使用的信息即可清理,清理结束后本次调度任务完结,设定此任务对应的“运行状态”标识为“未运行”,进入第(2)步等待任务的下一次调度。
为了验证使用本发明提出的新增文件检测下载的方法效果,进行了如下模拟生成、检测获取和统计清理的测试验证。
1、模拟FTP服务器数据生成:使用模拟程序在FTP服务器上持续放置文件,文件生成规则如下:
每1分钟生成一次,300份自动观测文本文件修改时间一致,根据生成时间放置到如下按照时间“年月日时”定义的目录:
/getLatest/aws/yyyymmddhh
每5分钟生成一次,500张雷达资料二进制图像文件修改时间一致,根据生成时间放置到如下按照时间“年月日时”定义的目录:
/getLatest/rad/yyyymmddhh
2、获取规则配置:使用通过FTP只读用户配置两个获取规则针对上述两个目录/getLatest/aws/和/getLatest/rad/分别进行FTP文件资料获取:自动观测文件获取策略设定超时时间5分钟,雷达图文件获取策略设定超时时间15分钟,比对时长均为0分钟,均包含子目录且针对子目录设置判断修改时间超时。
3、下载结果统计及文件清理:针对下载下来的文件与FTP存储的文件对应的Md5摘要信息进行比对,比对发现不一致进行问题记录,比对一致时进行日志记录,并删除已下载文件;及时进行清理已子过期目录下的FTP服务器文件避免磁盘爆满(此清理不会对按照本发明进行判断的计算产生偏差)。
按照上述方式,连续运行30天,共生成自动观测文本文件1296万个,雷达图文件432万张;模拟的所有文件均成功下载,每个文件摘要信息均比对一致,运行过程中前后性能比较平稳,各对象更新、清理有序,无垃圾数据残留。当FTP服务器存储历史资料达一个月时,雷达图存量432万,自动观测文本文件1296万,按照以往传统的新增文件完全比对的方式,服务器每一个文件与本地记录的每一个文件完全比对一次,那么雷达图新增判断计算量将达到432万*432万=18.6624亿万次,自动观测文件的判断计算量更是高达1296万*1296万=167.9616亿万次,一轮判断的计算量如此大均会导致无法正常检测、难以持续运行的后果;同样场景按照本发明检测下载方式,考虑一轮检测判断计算最大值,子文件夹超期判断次数是720次,然后进入子文件夹对文件进行判断,除了最新生成的一批文件,其他更早生成的文件按照时间超时时长或目录最新下载时间就可以做出无需下载的判断,这样自动观测文件判断次数最多为17700次,最后生成的300个文件与内存对象记录的同时间下载文件属性记录集进行最多比对次数是(1+299)*300/2=45000次,合计63420次;雷达图文件通过超时时长或目录最新下载时间判断不需下载文件的次数是5900,最后通过与内存对象记录的同时间下载文件属性记录集比对方式判断次数是(1+99)*100/2=5000次,合计11620次。可以明显看出计算量与传统方式相比差距非常巨大;本地磁盘IO只有在持久化下载成功文件属性信息记录时才会产生,新增文件的检测判断完全在内存中即可完成,运算速度非常快。
单就此场景下的新增文件检测逻辑运算而言,上述不足10万量级的判断计算,普通PC就可在毫秒级完成;而以往传统完全比对方式导致的18.6624亿万次计算量在同样PC测算耗费的时间将达到82天,167.9616亿万次计算时间更是高达745天。
本发明提出的方法对FTP服务器不需做任何侵入部署,下载后的文件可自由处理(常规同步软件同步过来的文件不能再做修改、转移等操作处理,否则会引发再次同步),理论计算及实际验证的结果均表明本发明提出的新增文件检测下载方式,效率非常高、下载结果完整,可持续运行,稳定性较好,整体应用效果非常突出,较好满足了只读FTP服务器文件共享下载新增文件检测、下载的要求。本发明较为通用,实现简单,检测高效,下载准确,达到了应用的要求。
本发明的装置实施例与方法实施例相对应,根据本发明的装置实施例,提供了一种FTP服务器新增文件检测下载装置,图3是本发明装置实施例的FTP服务器新增文件检测下载装置的结构示意图,如图3所示,根据本发明装置实施例的FTP服务器新增文件检测下载装置包括:扫描模块30、文件处理模块32,以下对本发明实施例的各个模块进行详细的说明。
所述扫描模块30,用于扫描指定目录,得到所述指定目录下的FTP对象列表;
所述文件处理模块32,用于当所述FTP对象列表中的FTP对象为文件时,判断所述文件是否满足预设的第一条件;当所述文件满足所述第一条件时,判断所述文件的修改时间是否晚于所述文件所在目录的最新下载时间,当所述文件的修改时间晚于所述文件所在目录的最新下载时间时,下载所述文件,其中,所述第一条件包括以下条件中的一个或多个:文件大小符合策略设置、文件名称符合正则过滤、文件的修改时间不超期。
进一步的,本发明装置实施例的FTP服务器新增文件检测下载装置,还包括子目录处理模块:
所述子目录处理模块,用于当所述FTP对象列表中的FTP对象为子目录时,判断所述子目录是否满足预设的第二条件;当所述子目录满足所述第二条件时,将所述子目录作为所述指定目录,扫描指定目录得到所述子目录下的FTP对象列表,进行所述子目录下的FTP对象的判断和操作;其中,所述第二条件包括以下条件中的一个或两个:子目录名称符合正则过滤、子目录的修改时间不超期。
在本发明装置实施例中所述指定目录为按照预设的策略配置指定的获取目录、及当所述子目录满足所述两个条件时得到的子目录。
所述文件处理模块32,还用于:
当所述文件的修改时间早于所述文件所在目录的最新下载时间时,判断所述文件的修改时间是否早于所述文件所在目录的最早比对时间,当所述文件的修改时间早于所述文件所在目录的最早比对时间时,不进行下载,其中,所述文件所在目录的最早比对时间由所述文件所在目录的最新下载时间减去预设比对时长得到;
当所述文件的修改时间晚于所述文件所在目录的最早比对时间时,在预设的各目录已下载文件属性信息列表中找到与所述文件的修改时间一致的列表子集,如果所述文件的属性信息与所述列表子集有匹配项时,不进行下载;如果所述文件的属性信息与所述列表子集没有匹配,下载所述文件。
进一步的,本发明装置实施例的FTP服务器新增文件检测下载装置,还包括更新模块、及清理模块:
所述更新模块,用于将下载成功的文件属性记录到所述各目录已下载文件属性信息列表中;当所述下载成功的文件的修改时间晚于所述文件所在目录的最新下载时间时,利用所述下载成功的文件的修改时间更新所述各目录最新下载时间列表;
所述清理模块,用于清理所述各目录最新下载时间列表及所述各目录已下载文件属性信息列表中按照策略判断不再使用的信息。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (6)

1.一种FTP服务器新增文件检测下载方法,其特征在于,包括以下步骤:
扫描指定目录,得到所述指定目录下的FTP对象列表;
当所述FTP对象列表中的FTP对象为文件时,判断所述文件是否满足预设的第一条件,其中,所述第一条件包括以下条件中的一个或多个:文件大小符合策略设置、文件名称符合正则过滤、文件的修改时间不超期;
当所述文件满足所述第一条件时,判断所述文件的修改时间是否晚于所述文件所在目录的最新下载时间,当所述文件的修改时间晚于所述文件所在目录的最新下载时间时,下载所述文件;
还包括以下步骤:
清理所述各目录最新下载时间列表及所述各目录已下载文件属性信息列表中按照策略判断不再使用的信息;
还包括以下步骤:
当所述文件的修改时间早于所述文件所在目录的最新下载时间时,判断所述文件的修改时间是否早于所述文件所在目录的最早比对时间,当所述文件的修改时间早于所述文件所在目录的最早比对时间时,不进行下载,其中,所述文件所在目录的最早比对时间由所述文件所在目录的最新下载时间减去预设比对时长得到;
当所述文件的修改时间晚于所述文件所在目录的最早比对时间时,在预设的各目录已下载文件属性信息列表中找到与所述文件的修改时间一致的列表子集,如果所述文件的属性信息与所述列表子集有匹配项时,不进行下载;如果所述文件的属性信息与所述列表子集没有匹配,下载所述文件。
2.如权利要求1所述的FTP服务器新增文件检测下载方法,其特征在于,还包括以下步骤:
当所述FTP对象列表中的FTP对象为子目录时,判断所述子目录是否满足预设的第二条件,其中,所述第二条件包括以下条件中的一个或两个:子目录名称符合正则过滤、子目录的修改时间不超期;
当所述子目录满足所述第二条件时,将所述子目录作为所述指定目录,扫描指定目录得到所述子目录下的FTP对象列表,判断所述子目录下的FTP列表对象,并按照判断结果进行下载。
3.如权利要求1或2所述的FTP服务器新增文件检测下载方法,其特征在于,判断文件或子目录的修改时间是否超期包括以下步骤:
利用当前时间减去预设时长得到超期时间;
若所述文件或子目录的修改时间早于所述超期时间,则所述文件或子目录的修改时间超期。
4.如权利要求1所述的FTP服务器新增文件检测下载方法,其特征在于,还包括以下步骤:
将下载成功的文件属性记录到所述各目录已下载文件属性信息列表中;
当所述下载成功的文件的修改时间晚于所述文件所在目录的最新下载时间时,利用所述下载成功的文件的修改时间更新所述各目录最新下载时间列表。
5.一种FTP服务器新增文件检测下载装置,其特征在于,包括扫描模块、文件处理模块:
所述扫描模块,用于扫描指定目录,得到所述指定目录下的FTP对象列表;
所述文件处理模块,用于当所述FTP对象列表中的FTP对象为文件时,判断所述文件是否满足预设的第一条件;当所述文件满足所述第一条件时,判断所述文件的修改时间是否晚于所述文件所在目录的最新下载时间,当所述文件的修改时间晚于所述文件所在目录的最新下载时间时,下载所述文件,其中,所述第一条件包括以下条件中的一个或多个:文件大小符合策略设置、文件名称符合正则过滤、文件的修改时间不超期;
还包括更新模块、及清理模块:
所述更新模块,用于将下载成功的文件属性记录到所述各目录已下载文件属性信息列表中;当所述下载成功的文件的修改时间晚于所述文件所在目录的最新下载时间时,利用所述下载成功的文件的修改时间更新所述各目录最新下载时间列表;
所述清理模块,用于清理所述各目录最新下载时间列表及所述各目录已下载文件属性信息列表中按照策略判断不再使用的信息;
所述文件处理模块,还用于:
当所述文件的修改时间早于所述文件所在目录的最新下载时间时,判断所述文件的修改时间是否早于所述文件所在目录的最早比对时间,当所述文件的修改时间早于所述文件所在目录的最早比对时间时,不进行下载,其中,所述文件所在目录的最早比对时间由所述文件所在目录的最新下载时间减去预设比对时长得到;
当所述文件的修改时间晚于所述文件所在目录的最早比对时间时,在预设的各目录已下载文件属性信息列表中找到与所述文件的修改时间一致的列表子集,如果所述文件的属性信息与所述列表子集有匹配项时,不进行下载;如果所述文件的属性信息与所述列表子集没有匹配,下载所述文件。
6.如权利要求5所述的FTP服务器新增文件检测下载装置,其特征在于,还包括子目录处理模块:
所述子目录处理模块,用于当所述FTP对象列表中的FTP对象为子目录时,判断所述子目录是否满足预设的第二条件;当所述子目录满足所述第二条件时,将所述子目录作为所述指定目录,扫描指定目录得到所述子目录下的FTP对象列表,进行所述子目录下的FTP对象的判断和操作;其中,所述第二条件包括以下条件中的一个或两个:子目录名称符合正则过滤、子目录的修改时间不超期。
CN201710144262.9A 2017-03-10 2017-03-10 一种ftp服务器新增文件检测下载方法及装置 Active CN106993026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710144262.9A CN106993026B (zh) 2017-03-10 2017-03-10 一种ftp服务器新增文件检测下载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710144262.9A CN106993026B (zh) 2017-03-10 2017-03-10 一种ftp服务器新增文件检测下载方法及装置

Publications (2)

Publication Number Publication Date
CN106993026A CN106993026A (zh) 2017-07-28
CN106993026B true CN106993026B (zh) 2020-06-16

Family

ID=59412010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710144262.9A Active CN106993026B (zh) 2017-03-10 2017-03-10 一种ftp服务器新增文件检测下载方法及装置

Country Status (1)

Country Link
CN (1) CN106993026B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108205732A (zh) * 2017-12-26 2018-06-26 云南电网有限责任公司 一种基于文件的新能源预测数据接入的校验方法
CN109922142B (zh) * 2019-02-21 2022-04-19 创新先进技术有限公司 一种文件下载方法、装置及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2967451C (en) * 2014-12-05 2020-07-07 Somos, Inc. Toll-free telecommunications management platform
CN104768174A (zh) * 2015-03-30 2015-07-08 浪潮通信信息系统有限公司 一种基于文件列表比对机制的移动网管数据文件采集方法
US11057446B2 (en) * 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers

Also Published As

Publication number Publication date
CN106993026A (zh) 2017-07-28

Similar Documents

Publication Publication Date Title
US9792340B2 (en) Identifying data items
EP2474911B1 (en) Data synchronization system and data synchronization method
US20060288056A1 (en) File version management device, method, and program
CN109284073B (zh) 数据存储方法、装置、系统、服务器、控制节点及介质
CN108881477B (zh) 一种基于分布式的文件采集监控的方法
CN110895484A (zh) 任务调度方法及装置
CN103067479A (zh) 一种基于文件冷热的网盘同步方法及系统
CN106021566A (zh) 一种提高单台数据库并发处理能力的方法、装置及系统
JPH1021061A (ja) クライアントソフトウェア自動バージョンアップシステム
CN106993026B (zh) 一种ftp服务器新增文件检测下载方法及装置
CN105824902A (zh) 一种数据缓存方法及装置
CN110008197A (zh) 一种数据处理方法、系统及电子设备和存储介质
CN115629784A (zh) 更新机台文件的方法、系统、设备及计算机可读存储介质
CN111147226A (zh) 数据存储方法、装置及存储介质
CN115499514A (zh) 数据存储服务的访问方法、计算设备及计算机存储介质
CN108960378A (zh) 一种数据下载方法、系统、装置和存储介质
CN116991815B (zh) 一种分布式存储系统的日志收集方法、装置、设备及介质
CN111966533A (zh) 电子文件管理方法、装置、计算机设备和存储介质
CN115987759B (zh) 数据处理方法、装置、电子设备及存储介质
CN111435342A (zh) 海报的更新方法、更新系统以及管理系统
WO2023236746A1 (zh) 一种数据文件缓存处理方法、装置、存储介质及电子装置
CN115348185B (zh) 一种分布式查询引擎的控制方法及其控制装置
CN116991541B (zh) 一种镜像访问请求处理方法、装置、设备及存储介质
CN107864096B (zh) 路径调整方法及装置
CN109684158A (zh) 分布式协调系统的状态监控方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant