CN115994124A - 文件扫描方法、装置、电子设备和计算机可读存储介质 - Google Patents
文件扫描方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115994124A CN115994124A CN202211531108.4A CN202211531108A CN115994124A CN 115994124 A CN115994124 A CN 115994124A CN 202211531108 A CN202211531108 A CN 202211531108A CN 115994124 A CN115994124 A CN 115994124A
- Authority
- CN
- China
- Prior art keywords
- information
- file
- directory
- scanning
- target server
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 149
- 230000008569 process Effects 0.000 claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 38
- 230000011664 signaling Effects 0.000 claims description 71
- 238000012360 testing method Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 21
- 238000012217 deletion Methods 0.000 claims description 18
- 230000037430 deletion Effects 0.000 claims description 18
- 238000001914 filtration Methods 0.000 claims description 18
- 238000012937 correction Methods 0.000 claims description 15
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 1
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 1
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 101150027996 smb1 gene Proteins 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文件扫描方法、装置、电子设备和计算机可读存储介质,其中,该方法包括:通过第一阶段扫描流程,获取目标服务器的当前目录信息;将该当前目录信息与历史目录信息进行对比,以确定出该当前目录信息中的更新信息,其中,该历史目录信息为当前本地存储的所述目标服务器的最新版本的目录信息;将该更新信息传输给第二阶段扫描流程;通过该第二阶段扫描流程,对该更新信息进行处理,以对该历史目录信息进行更新,以得到更新的历史目录信息。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种文件扫描方法、装置、电子设备和计算机可读存储介质。
背景技术
在大数据场景中,需要在网络文件存储服务器中同步大量的文件数据,实现设备在两个网络间进行扫描、拉取、推送文件。随着服务器磁盘阵列越来越大,存储服务器中的数据也越来越大,传统的数据扫描方式不足以支撑大数据量的场景。
发明内容
有鉴于此,本申请实施例的目的在于提供一种文件扫描方法、装置、电子设备和计算机可读存储介质,以改善现有的数据传统的数据扫描方式不足以支撑大数据量的场景的问题。
第一方面,本申请实施例提供了一种文件扫描方法,包括:通过第一阶段扫描流程,获取目标服务器的当前目录信息;将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,其中,所述历史目录信息为当前本地存储的所述目标服务器的最新版本的目录信息;将所述更新信息传输给第二阶段扫描流程;通过所述第二阶段扫描流程,对所述更新信息进行处理,以对所述历史目录信息进行更新,以得到更新的历史目录信息。
在上述实现方式中,可以通过两个阶段的扫描流程,分别执行不同的扫描和数据处理任务,可以分散数据处理的压力,多个扫描阶段分别处理,提高数据扫描的效率,降低大数据量的扫描难度。
在一可选的实施方式中,所述当前目录信息包括:多项文件信息,所述更新信息包括:文件更新信息;所述将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,包括:将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息。
在上述实现方式中,通过确定出文件更新信息,可以通过第二阶段的扫描流程来处理文件更新所导致的后续处理任务,降低第一阶段的扫描流程处理难度,也使用任务能够更好地分散开,提高数据扫描同步效率。
在一可选的实施方式中,所述文件更新信息包括:文件新增信息;所述将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:将各项所述文件信息与所述历史目录信息中记录的内容进行对比,以确定各项所述文件信息对应的文件是否存在于所述历史目录信息中;若第一文件信息对应的文件不存在于所述历史目录信息中,则根据所述第一文件信息确定文件新增信息,其中,所述第一文件信息为所述当前目录信息中所包含的多项文件信息中的任意一项文件信息。
在一可选的实施方式中,所述文件更新信息包括:文件变更信息;所述将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:将各项所述文件信息与所述历史目录信息中记录的内容进行对比,以确定各项所述文件信息对应的文件是否存在于所述历史目录信息中;若第二文件信息对应的文件存在于所述历史目录信息中,且所述第二文件信息与所述历史目录信息对应的文件信息不相同,则根据所述第二文件信息确定文件变更信息,其中,所述第二文件信息为所述当前目录信息中所包含的多项文件信息中的任意一项文件信息。
在上述实现方式中,可以对不同的文件更新分别进行识别,以方便针对不同的文件更新进行不同处理,从而可以使数据的扫描和处理更准确有序。
在一可选的实施方式中,所述历史目录信息可以包括:文件树,所述文件树包括多个节点,每个节点用于表征一个目录或者一个文件;所述将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:将各项所述文件信息中的文件名与所述文件树的各节点进行对比,以确定各项所述文件信息对应的文件是否属于所述文件树中的任意一个节点;若第三文件信息对应的文件不属于所述文件树中的一个节点,根据所述第三文件信息确定文件新增信息,其中,所述第三文件信息为所述当前目录信息中所包含的多项文件信息中的任意一项文件信息;若所述第三文件信息对应的文件属于所述文件树中的一个节点,且所述第三文件信息与所述文件树中对应的节点所属的文件信息不相同,则根据所述第三文件信息确定文件变更信息。
在上述实现方式中,可以将历史目录信息以文件树的形式呈现,可以通过节点的对比确定出文件更新情况,可以相对更快速更直观地实现文件的比对。
在一可选的实施方式中,若任意第三文件信息对应的文件不属于所述文件树中的一个节点,所述方法还包括:在所述文件树中新增所述第三文件信息对应的新增文件节点,并将所述第三文件信息赋值给所述新增文件节点。
在上述实现方式,在确定有文件新增时,还可以先对该文件树的节点进行更新,可以使第二阶段的扫描流程仅需要对节点更详细的进行处理即可,降低第二阶段的扫描流程所需的动作,也能够提高扫描效率。
在一可选的实施方式中,所述获取目标服务器的当前目录信息,包括:根据所述目标服务器的目录树中的节点数量,确定出第一数量的扫描实例,其中,每一个扫描实例用于扫描所述目录树中的至少一个节点,第一数量的扫描实例用于对所述目录树所包含的节点进行扫描;针对第i扫描实例,从所述目标服务器中获取其对应的第i部分节点对应的第i目录信息,其中,所述第i扫描实例为所述第一数量的扫描实例中的任意一个,i的取值为大于或等于1,且小于或等于N的正整数,N为第一数量,其中,基于各个扫描实例扫描得到的目录信息的并集为所述目标服务器的当前目录信息;所述将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,包括:通过所述第i扫描实例,将所述第i目录信息与历史目录信息进行对比,以确定出所述第i目录信息中的第i更新信息,其中,基于各个扫描实例,将当前目录信息与历史目录信息进行对比,可得到所述当前目录信息中的更新信息。
在上述实现方式中,目标服务器的目录树中的节点数量较多的时候,还可以将该目录树划分为多个部分,可以通过不同的扫描实例并行地处理,提高目录扫描的效率。
在一可选的实施方式中,所述获取目标服务器的当前目录信息,包括:从目标服务器中获取初始目录信息,所述初始目录信息包括多项初始字段,每一项初始字段用于表示一个文件的内容或一个目录的内容;提取各项所述初始字段中所包含的属性字段,并将各属性字段记录为目标格式信息,以得到所述目标服务器的当前目录信息。
在一可选的实施方式中,所述属性字段包括时间字段;所述提取各项所述初始字段中所包含的属性字段,并将各属性字段记录为目标格式信息,包括:提取各项所述初始字段中所包含的属性字段;若第一初始字段的属性字段中的时间字段不完整,则将所述第一初始字段的时间字段进行修正,得到修正时间,其中,所述第一初始字段为多项初始字段中的任意一项;将所述修正时间以及所述第一初始字段的属性字段记录为目标格式信息。
在上述实现方式,还可以对提取出的字段的完整性进行识别,如果存在缺失,还可以对其进行修改,从而可以更好地保持目录信息中的各信息的完整性,从而也可以使文件扫描的结果的准确性。
在一可选的实施方式中,所述从目标服务器中获取初始目录信息之前,所述方法还包括:获取所述目标服务器支持的信令类型;若所述目标服务器支持的信令类型包括至少两种,则根据至少两种的信令类型的优先级,确定出目标信令,其中,所述目标信令用于执行所述从目标服务器中获取初始目录信息和所述提取各项所述初始字段中所包含的属性字段的步骤。
在上述实现方式中,还可以适应服务器的需求,选出合适的信令用来处理目录,从而可以使文件扫描方法的适用性更广。
在一可选的实施方式中,所述当前目录信息包括:多项子目录信息,所述更新信息包括:目录更新信息;所述将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,包括:将各项所述子目录信息与所述历史目录信息中记录的内容进行对比,以确定出目录更新信息;所述方法还包括:根据所述目录更新信息,对所述历史目录信息中的目录进行更新。
在上述实现方式中,在确定存在目录更新时,可以直接对历史目录信息中的目录进行更新,也能够降低第二阶段的扫描流程所需处理的内容。
在一可选的实施方式中,所述更新信息包括文件更新信息;所述对所述更新信息进行处理,以对所述历史目录信息进行更新,包括:根据接收到的所述文件更新信息,确定出待处理文件集;根据所述待处理文件集合中的各个待处理文件确定出所属目录,以将各个待处理文件的所属目录确定为待处理目录集,并确定出所述待处理目录集中的每一个待处理目录中所包含的待处理文件数量;针对第一待处理目录,根据所述第一待处理目录所包含的待处理文件数量,确定出文件信息获取方式,其中,第一待处理目录为所述待处理目录集中任意一个待处理目录;若所述待处理文件数量大于指定数量时,使用批量获取方式获取待处理文件的文件信息;若所述待处理文件数量不大于指定数量时,使用单个获取方式获取待处理文件的文件信息;根据所述文件获取方式依次从所述目标服务器中获取各个待处理文件的文件信息;根据各个待处理文件的文件信息,对所述历史目录信息进行更新。
在上述实现方式中,针对不同的数据量采用不同的文件获取方式,可以更好地兼顾文件获取的效率和文件获取的准确性。
在一可选的实施方式中,所述第一阶段扫描流程通过第一进程实现;所述第二阶段扫描流程通过第二进程实现。
在上述实现方式中,可以使用两个相对独立的进程来处理第一阶段的扫描流程和第二阶段的扫描流程,提高文件扫描和同步的效率。
在一可选的实施方式中,所述获取目标服务器的当前目录信息,包括:根据预设过滤策略,从所述目标服务器中获取当前目录信息,其中,所述过滤策略包括:目录过滤策略、文件过滤策略、文件优先策略中的一种或多种。
在上述实现方式中,还可以根据需求设置文件的扫描范围,以适应不同场景下对文件同步的不同要求。
在一可选的实施方式中,在所述获取目标服务器的当前目录信息之前,所述方法还包括:获取所述目标服务器所支持的文件共享协议的目标类型,其中,所述文件共享协议包括:NFS协议、SMB协议、FTP协议、SFTP协议中的至少一种;根据所述目标类型,确定出所述目标类型对应的扫描插件,其中,所述扫描插件用于执行所述第一阶段扫描流程和所述第二阶段扫描流程。
在上述实现方式中,考虑不同的服务器所支持的协议不同,为了适应不同的服务器的需求,还可以预设多种扫描插件,以满足不同服务器的需求。
在一可选的实施方式中,在所述获取目标服务器的当前目录信息之前,所述方法还包括以下至少一项:对与所述目标服务器的连通性进行测试;对所述目标服务器的权限进行测试,其中,所述权限包括目录的创建、目录的删除、文件的创建、文件的删除、文件的读入操作、文件的写入操作中的一种或多种;对所述目标服务器的扩展性进行测试,其中,所述扩展性包括:是否支持修改文件属性;若任意一项测试失败,输出测试失败原因。
在上述实现方式中,可以在进行文件扫描之前,先与服务器进行连接或权限进行测试,以提高后续文件扫描的成功率,以及使用户能够更准确地获知当前服务器的状况。
第二方面,本申请实施例提供了一种文件扫描装置,包括:第一获取模块,用于通过第一阶段扫描流程,获取目标服务器的当前目录信息;对比模块,用于将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,其中,所述历史目录信息为当前本地存储的所述目标服务器的最新版本的目录信息;传输模块,用于将所述更新信息传输给第二阶段扫描流程;第一更新模块,用于通过所述第二阶段扫描流程,对所述更新信息进行处理,以对所述历史目录信息进行更新,以得到更新的历史目录信息。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的方法的步骤。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的文件扫描方法的运行环境示意图;
图2为本申请实施例提供的电子设备的方框示意图;
图3为本申请实施例提供的文件扫描方法的流程图;
图4示出了一个实例中的目标服务器的目录树的示意图;
图5为本申请实施例提供的文件扫描装置的功能模块示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在大数据场景中,需要在网络文件存储服务器中同步大量的文件数据,实现在两个网络中间进行扫描、拉取、推送文件。但是随着网络文件存储服务器的磁盘阵列越来越大,以及万兆网络的普及。传统的单线程扫描方案实现在网络中间进行扫描、拉取、推送文件不足以支撑上述的大数据量的场景。
基于此现状,本申请提供的一种文件扫描方法、装置、电子设备和计算机可读存储介质,能够以多连接多线程结构对远程存储服务器进行扫描,从而可以在大规模目录树中发现文件变化的问题,提高扫描的效率。
为便于对本实施例进行理解,首先对执行本申请实施例所公开的一种文件扫描方法的运行环境进行介绍。
如图1所示,是本申请实施例提供的文件扫描方法的运行环境示意图。网闸设备110通过网络与一个或多个存储服务器进行通信连接,以进行数据通信或交互。图1所示的实施例中,示出了两组存储服务器,第一存储服务器120和第二存储服务器130。
该网闸设备110可以在第一存储服务器120可以通过网闸设备110与对端的第二存储服务器130进行数据同步,从而可以使第一存储服务器120所属网络与第二存储服务器130所属网络之间,可以在保证安全的前提下,通过网闸设备110实现数据同步。
可选地,该第一存储服务器120所属网络中可以包括多个服务器,以形成存储数据的服务器集群,该第二存储服务器130所属网络中可以包括多个服务器,以形成存储数据的服务器集群。
本实施例中,该网闸设备110中包括文件业务模块,该文件业务模块主要用于你对前置的第一存储服务器120中的文件下载、设备内数据摆渡、上传文件到后置的第二存储服务器130的工作。该网闸设备110还可以包括扫描模块,用于实时监控第一存储服务器120上的文件目录,感知出第一存储服务器120上文件的创建删除和修改动作,通知同步模块根据属性的变化,实现读取、写入、删除、重命名等操作。
上述的网闸设备110、第一存储服务器120和第二存储服务器130可以是具有存储和处理功能的电子设备。如图2所示,是电子设备的方框示意图。电子设备200可以包括存储器211、处理器213。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对电子设备200的结构造成限定。例如,电子设备200还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
上述的存储器211、处理器213各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器213用于执行存储器中存储的可执行模块。
其中,存储器211可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器211用于存储程序,所述处理器213在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备200所执行的方法可以应用于处理器213中,或者由处理器213实现。
上述的处理器213可能是一种集成电路芯片,具有信号的处理能力。上述的处理器213可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本实施例中的电子设备200可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述文件扫描方法的实现过程。
本申请实施例提供了一种文件扫描方法。本实施例中的文件扫描方法的步骤可以由图1所示的网闸设备或图2所示的电子设备执行。
为了便于理解方法,先对本申请涉及到的专业名词进行解释:
网络附接存储服务器,(Network Attached Storage,简称:NAS)是一种文件级的计算机数据存储服务器,它连接到计算机网络,并提供对异构网络用户的数据访问,其通常使用网络文件共享协议提供对文件的访问,其中,文件级是与块级存储相对的,网络文件共享协议可以是网络文件***(Network File System,简称:NFS)协议、服务器信息块(Server Message Block简称:SMB)协议、文件传输协议(File Transfer Protocol,简称:FTP)、安全文件传送协议(Secret File Transfer Protocol,简称:SFTP);Ragel技术:是一个状态机编译器,主要是用来处理字符输入,用于语法解析;ZeroMQ(也可以称为0MQ或ZMQ)类似一个可嵌入的网络库,但其行为像并发框架。该ZeroMQ提供了跨进程内、进程间、传输控制协议(Transmission Control Protocol,简称:TCP)和多播等各种传输原子消息的套接字,可以使用推送、发布-订阅、任务分发和请求-应答等模式连接多点对多点套接字;网络文件***开发接口:(Network Files Program Interface,简称:NFPI),专属于隔离网闸、单向光闸的开发套件,用于向下接入各种常见的网络协议、向上提供统一的操作接口错误码管理。
下面结合图3对本申请实施例提供的文件扫描方法阐述。
步骤310,通过第一阶段扫描流程,获取目标服务器的当前目录信息。
第一阶段扫描流程通过第一进程实现。
其中,该目标服务器可以是网络文件存储服务器,该网络文件存储服务器可以用来存储供用户访问的数据。
在执行步骤310之前,可以先建立与目标服务器服务连接后,创建扫描进程:第一阶段扫描流程的第一进程和第二扫描流程的第二进程。
可选地,在第一阶段扫描流程进行之前可以先创建第一定时器,该第一定时器每轮工作递归调用远程扫描接口,获取目标服务器的目录信息。例如,该远程扫描接口可以是nfpi::scandir。
示例性地,该第一阶段扫描流程的扫描结果可以包含文件信息、目录信息等。
该文件信息可以包括:文件名称,文件大小,修改时间等,该目录信息可以包括:目录名称,包含子文件、子目录个数等。
可选地,该第一阶段扫描流程可以目录数据和文件数据。通过目录树结构可以确定出是否存在目录的增加或删除,通过将文件索引结构可以确定是否存在文件的增加或删除。
示例性地,该目录数据可以以目录树结构呈现,该文件数据可以以文件数据索引结构呈现。
步骤320,将该当前目录信息与历史目录信息进行对比,以确定出该当前目录信息中的更新信息。
其中,该历史目录信息为当前本地存储的所述目标服务器的最新版本的目录信息。随着扫描的进行该历史目录信息也可能随之改变。
该历史目录信息可以存储在该网闸设备的本地数据库中。
可选地,该步骤310与步骤320可以并行处理,可以在每获得一项文件信息或目录信息,即可将该文件信息与历史目录信息进行对比,将该目录信息与历史目录信息进行对比,以确定出该当前目录信息中的更新信息。
步骤330,将该更新信息传输给第二阶段扫描流程。
本实施例中,该第二阶段扫描流程可以通过第二进程实现。
可选地,该第一阶段扫描流程的第一进程可以采用ZMQ通讯与第二阶段扫描流程的第二进程实现消息队列通信。
可选地,该第一阶段扫描流程可以使用第一线程实现,该第二阶段扫描流程使用第二线程实现,该第一线程与第二线程也可以采用ZMQ实现消息队列通信。
在上述实现方式中,通过不同线程,也可以是不同进程,使程序部署更加方便灵活。
步骤340,通过该第二阶段扫描流程,对该更新信息进行处理,以对该历史目录信息进行更新,以得到更新的历史目录信息。
示例性地,对该历史目录信息的更新可以包括添加新的目录、更改目录的时间、添加新的文件、删除新的文件、更改文件内容等。
本实施例中,上述的步骤310至步骤330可以由第一阶段扫描流程实现。上述的步骤340可以由第二阶段扫描流程实现。
通过上述的两个阶段的扫描流程,可以在第一阶段扫描流程可以进行初步扫描,确定出数据的变化情况,然后再将更新信息推送给第二阶段扫描流程,从而实现分阶段的处理。进一步地,两个扫描阶段还可以使用不同进程或不同线程实现,可以并行处理可以提高文件扫描的效率。
为了更好地发挥两个阶段的扫描流程的作用,可以将相对复杂的更新流程推送给第二阶段的扫描流程,可以将一些简单的变更直接由第一阶段的扫描流程完成。
当前目录信息包括:多项文件信息。上述的步骤320可以包括:将各项该文件信息分别与该历史目录信息中记录的内容进行对比,以确定出文件更新信息。
其中,文件更新信息可以是文件新增、文件变更、文件删除等。基于此,文件更新信息可以包括文件新增信息、文件变更信息等。
在一种实施方式中,上述的将各项该文件信息分别与该历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:将各项该文件信息与该历史目录信息中记录的内容进行对比,以确定各项该文件信息对应的文件是否存在于该历史目录信息中。
若第一文件信息对应的文件不存在于该历史目录信息中,则根据该第一文件信息确定文件新增信息。
其中,该第一文件信息为该当前目录信息中所包含的多项文件信息中的任意一项文件信息。通过将当前目录信息中的每一项文件信息与历史目录信息进行对比,以确定出当前目录信息中的各项文件信息对应的文件是否为新增的。
示例性地,可以将各项该文件信息中的各项文件名与历史目录信息中各项文件的文件名进行对比,则可以确定出从目标服务器确定出的当前目录信息中的各文件是否为新增的。
在一种实施方式中,上述的将各项该文件信息分别与该历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:将各项该文件信息与该历史目录信息中记录的内容进行对比,以确定各项该文件信息对应的文件是否存在于该历史目录信息中。
若第二文件信息对应的文件存在于该历史目录信息中,且该第二文件信息与该历史目录信息对应的文件信息不相同,则根据该第二文件信息确定文件变更信息。
其中,该第二文件信息为该当前目录信息中所包含的多项文件信息中的任意一项文件信息。
示例性地,可以先通过将第二文件信息的文件名与历史目录信息中的各文件名进行对比,以确定第二文件信息对应的文件是否存在于历史目录信息。
如果确定该第二文件信息对应的文件存在于历史目录信息中,则将该第二文件信息与历史目录信息对应的文件的文件信息进行对比,以确定该第二文件信息与历史目录信息对应的文件的文件信息是否相同。
本实施例中,若更新信息包括文件新增信息和文件变更信息,则步骤330可以将该文件新增信息和/或文件变更信息传输给第二阶段扫描流程,以供第二阶段扫描流程完善文件新增和/或文件变更。
可选地,该历史目录信息可以包括:文件树,该文件树包括多个节点,每个节点用于表征一个目录或者一个文件。该文件树中记录有历史目录信息中所包含的目录、子目录、文件等节点。
上述步骤320可以包括:将各项该文件信息中的文件名与该文件树的各节点进行对比,以确定各项该文件信息对应的文件是否属于该文件树中的任意一个节点。
若第三文件信息对应的文件不属于该文件树中的一个节点,根据该第三文件信息确定文件新增信息。
若该第三文件信息对应的文件属于该文件树中的一个节点,且该第三文件信息与该文件树中对应的节点所属的文件信息不相同,则根据该第三文件信息确定文件变更信息。
本实施例中,若第三文件信息对应的文件属于该文件树中的一个节点,则可以对该第三文件信息对应的文件在文件树中的节点的版本号进行更新。
其中,该第三文件信息为该当前目录信息中所包含的多项文件信息中的任意一项文件信息。通过上述方式将当前目录信息中的每一项文件信息与文件树进行对比,以确定出当前目录信息中的各项文件是否存在新增或更改。
示例性地,若第三文件信息中的文件名与文件树上其中一个节点的名称相同,则可以将第三文件信息与文件树名称相同的节点对应的文件信息进行对比,以确定第三文件信息与该文件树名称相同的节点的文件信息是否相同。
在步骤320之后,文件扫描方法还可以包括:在该文件树中新增该第三文件信息对应的新增文件节点,并将该第三文件信息赋值给该新增文件节点。
可选地,历史目录信息还可以包括上述的文件树,以及存储在本地数据库中的目录数据。
因此,在每次对文件树进行更新后,也同步更新本地数据库的目录数据进行更新。
除了上述的文件更新信息中的文件新增信息和文件变更信息,还可能存在文件删除的情况,还可能包括子目录的更新。其中,文件的删除以及子目录的更新操作相对简单,可以在第一阶段扫描流程实现文件的删除以及子目录的更新。
可选地,该当前目录信息可以包括多项子目录信息,更新信息可以包括目录更新信息。上述的步骤320可以包括:将各项该子目录信息与该历史目录信息中记录的内容进行对比,以确定出目录更新信息。
在步骤320之后,文件扫描方法还可以包括:根据该目录更新信息,对该历史目录信息中的目录进行更新。
可以将从目标服务器中获取的当前目录信息中的各个子目录名与文件树中的各个节点的名称进行对比,以确定当前目录信息中的各个子目录名是否存在于文件树中。
如果任意一个子目录不存在于文件树中,则可以为该文件树分配新节点,并为该新节点赋值该子目录信息,作为该子目录的节点。可选地,该还可以调用目录创建钩子函数,在本地数据库中创造该子目录。
如果一个子目录已经存在于文件树中,则可以在该文件树中更新节点版本号后,然后,比对该子目录的目录信息和文件树中的节点的目录信息,如果存在变化的,则调用目录更新钩子函数,在本地数据库中更新该子目录的相关信息。
通过上述方式,可以对当前目录信息中的每一个子目录与文件树进行对比,以确定子目录的新增和更改情况。
进一步地,在第一阶段扫描流程中,所有对文件树的操作也都进一步地对本地数据库中的目录数据进行相同的修改,始终保持文件树和本地数据库中的目录数据保持一致,而在与当前目录信息进行对比时,也可以仅从文件树的内存中读取文件树的信息。每次在第一阶段扫描流程重启,或者网闸设备在重启后,可以先从本地数据库读取目录数据恢复了上次扫描状态,避免了相同文件事件重复推送,提高数据处理效率。
除了新增和更改文件和目录的情况,还可能存在目标服务器中将部分文件或者目录删除。
因此,在将当前目录信息中的各项内容与文件树比对完成之后,还可以判断是否存在于文件树中,却当前目录信息中不存在的子目录或文件。如果仅存在于文件树中,却不存在于当前目录信息中的文件或子目录,则表示文件或子目录被目标服务器删除。
在一种实现方式,在将子目录或文件与文件树进行对比时,每次与文件树中的节点名称相同,则可以对文件树中的节点的版本号进行更新。因此,可以在每次将当前目录信息与文件树的节点比对完成后,可以通过文件树的节点中的版本号是否存在更新,如果被更新过,则表示节点对应的子目录或文件存在于当前目录信息中,如果未被更新过,则表示节点对应的子目录或文件不存在于当前目录信息中。
如果确定存在文件删除,则可以调用文件删除钩子函数,对本地数据库中的目录数据中的对应文件进行删除操作;如果存在子目录删除,则可以调用目录删除钩子函数,在本地数据库中的目录数据中对应的子目录进行删除操作。
通过对部分相对简单的更新直接在第一阶段扫描流程中处理完成,则可以降低后续第二阶段扫描流程的工作内容,也能够降低第一阶段扫描流程与第二阶段扫描流程数据传输量,在通过并行的两个阶段提高数据处理效率的同时,也能够降低相互之间需要进行传输的数据量,从而提高整体数据的处理效率。
在第一阶段扫描流程中,需要从目标服务器中扫描大量的数据,为了提高扫描效率,也可以根据整体数据量,设置对应的扫描实例,以通过多个扫描实例并行地实现目标服务器中的数据的扫描。
在某些源端目录结构复杂,子目录、子文件数量多的场景下,通过扫描目标服务器上的全盘目录耗时较大。因此,可以提供一种并行扫描的方法:通过开启N个一次扫描实例,那么每个扫描实例负责一部分目录树的扫描工作,例如,全盘目录下扫描一轮耗时TimeAll,开启N个扫描实例并行扫描后,每个扫描实例的扫描时间趋近于从而可以达到使用更短时间完成目标服务器中的文件事件的发现。
基于上述分析,上述的步骤310可以包括步骤311和步骤312。
步骤311,根据该目标服务器的目录树中的节点数量,确定出第一数量的扫描实例。
其中,每一个扫描实例用于扫描该目录树中的至少一个节点,第一数量的扫描实例用于对所述目录树所包含的节点进行扫描。
如图4所示,图4示出了目标服务器的目录树示例。该示例中包括了五层结构,以第三层结构对划分基础,确定出N各扫描实例。
其中,每个扫描实例均对第一层结构和第二层结构的节点进行扫描处理。
示例性地,可以定义目标服务器的目录树的目录层级阈值T,其中,在图4所示的实例中,层级阈值T取值为3。
对T层目录名称PathT进行哈希取模计算,以此确定由哪个扫描实例处理:Scanid=MOD(1,N)(HASH(PathT));其中,Scanid表示扫描识别的ID号。
本实施例中,小于层级阈值T的目录名称,均由所有扫描实例处理。进一步地,其中的文件名称事件Filename{1,T},需要进行哈希取模计算,分配给子扫描实例处理:Scanid=MOD(1,N)(HASH(Filename{1,T}))。
步骤312,针对第i扫描实例,从该目标服务器中获取其对应的第i部分节点对应的第i目录信息。
其中,该第i扫描实例为该第一数量的扫描实例中的任意一个,i的取值为大于或等于1,且小于或等于N的正整数,N为第一数量,基于各个扫描实例扫描得到的目录信息的并集为该目标服务器的当前目录信息。
上述的步骤320可以包括:通过该第i扫描实例,将该第i目录信息与历史目录信息进行对比,以确定出该第i目录信息中的第i更新信息。
其中,基于各个扫描实例,将当前目录信息与历史目录信息进行对比,得到所述当前目录信息中的更新信息。
通过分多个扫描实例来同步处理目标服务器中的数据,则可以提高第一阶段扫描流程的效率,提高对目标服务器的数据的扫描效率。
考虑到不同协议下的获取的数据的格式可能存在不同,因此,为了更准确地实现数据的扫描,还可以将从目标服务器扫描到的内容转换成目标格式,以方便后续与历史目录信息进行对比。基于此,步骤310可以包括:从目标服务器中获取初始目录信息,提取各项该初始字段中所包含的属性字段,并将各属性字段记录为目标格式信息,以得到该目标服务器的当前目录信息。
该初始目录信息包括多项初始字段,每一项初始字段用于表示一个文件的内容或一个目录的内容。
示例性地,该初始字段可以为一个字符串,该字符用来表示一个文件的内容和一个目录的内容。
示例性地,可以使用Ragel对于字符串进行解析,该Ragel可以通过扫描输入的字符串,根据这个字符串的格式,对这个字符串的每个字段采用内置的正则规则匹配,然后再匹配状态机的特定状态进行处理,当扫描结束的时候,也就完成对该字符串中所包含的内容的确认。
其中,是区分不同的平台设计的规则,针对不同的平台,该Ragel正则匹配存在不同的规则。例如,Linux平台与Windows平台上文件的属性字段是不相同,则该Ragel正则匹配的规则也就不同。
例如,Unix下的文件属性字段包括:类型权限、硬链接次数、用户名、用户组、文件大小、时间戳、文件名称。
在一个实例中,Unix下的文件属性字段可以为:-rw-r--r--1root root555Mar 2015:56xxx.txt;在另一个实例中,Unix下的文件属性字段可以为:-rw-r--r--1root root555Dec 20 2020yyy.txt。
示例性地,若文件属于软连接,则额外需要解析获取软连接名称,并将文件类型设置为软连接。
示例性地,MS-DOS下的文件属性字段包括:日期、时间、类型、文件名称。
在一个实例中,MS-DOS下的文件属性字段可以为:2021/09/07 11:15<DIR> .ssh;在另一个实例中,MS-DOS下的文件属性字段可以为:2021/09/07 11:23 8 .bash_history
通过上述解析,可以提取出各属性字段。
可选地,该属性字段包括时间字段,上述的提取各项该初始字段中所包含的属性字段,并将各属性字段记录为目标格式信息可以包括:提取各项该初始字段中所包含的属性字段;若第一初始字段的属性字段中的时间字段不完整,则将该第一初始字段的时间字段进行修正,得到修正时间,将该修正时间以及该第一初始字段的属性字段记录为目标格式信息。
其中,该第一初始字段为多项初始字段中的任意一项。
考虑不同的服务器所支持的信令是不同,导致不同服务器中的文件、目录的属性字段显示方式、显示内容也存在不同。其中,时间戳的差别相对更明显。则会导致使用Ragel解析就会发生扫描文件的时间戳不一致,导致扫描结果异常。
例如,FTP服务器就存在多种,其中包括Windows平台的IIS服务器、Filezillia服务器、ServU服务器,Linux平台的VsFTPd服务器、Proftpd服务器、Pureftpd服务器。
如果当前的目标服务器支持MLSD信令,则可以不需要修复时间戳,如果当前目标服务器支持MDTM信令,则需要修正解析之后文件的时间戳。修正过程如下:循环遍历扫描到的目录的各时间字段,如果循环当前的时间字段是文件的时间字段不要修正时间戳,继续循环下一个初始字段的时间字段的识别。
其中,时间字段缺失的情况主要包括两种:缺失年份和缺失时分。
缺失年份的时间修正:如果循环当前的初始字段是目录的初始字段,则可以设置了一个阈值时间,例如,该阈值时间可以是1971年01月01日。可以判断当前的时间字段与该阈值时间的大小,如果小于该阈值时间,则根据当前时间字段st_mtime信息获取当前该目录的月份,再根据目录当前月份获取当前年份。再判断年份字段值是否为0,若为0,则执行MDTM信令修改该目录的时间戳,并解析执行MDTM命令获取的响应数据中的时间戳,并对年份与月份值进行修正。示例性地,如果当前目标服务器支持的是MLSD命令,则将秒字段置为0,如果当前的服务是IIS服务,则当前时间字段st_mtime,可以使用utc时间修正,否则使用cst时间修正。再使用修正后的时间字段修改表示当前目录的属性的初始字段。
缺失时分的时间修正:如果当前目录的时间字段大于预设的阈值时间,判断当前目录的时间字段st_mtime值与3600取余是否为0,如果为0。其中,该时间字段可以是以阈值时间为0,当前时间距离阈值时间的分钟数作为该时间字段。若与3600取余为0,则表示该时字段和分字段均为零。则执行MDTM信令修改该目录的时间戳,并解析执行MDTM命令获取的响应数据中的时间戳,并对年时分进行修正。示例性地,如果当前目标服务器支持的是MLSD命令,则将秒字段置0,如果当前的服务是IIS服务,则当前时间字段st_mtime,可以使用utc时间修正,否则使用cst时间修正。再使用修正后的时间字段修改表示当前目录的属性的初始字段。
通过上述方式可以使确定出的当前目录信息能够更准确。正如上面描述的目标服务器的类型可能有很多,而不同的服务器所支持的信令不同,不同的信令处理效率也不同,在执行步骤310之前,还可以包括:获取该目标服务器支持的信令类型;若该目标服务器支持的信令类型包括至少两种,则根据至少两种的信令类型的优先级,确定出目标信令。
其中,该目标信令用于执行该从目标服务器中获取初始目录信息和该提取各项该初始字段中所包含的属性字段的步骤。
当然若目标服务器仅支持一种信令,则可以将该目标服务器支持的信令作为目标信令。
示例性地,可以预先设定不同信令的优先级。例如,就单个文件的文件信息的获取,各服务器支持的信令可以包括:MLST信令、SIZE+MDTM信令、LIST信令、MLSD信令。各个信令的优先级从高到低依次为:MLST信令、SIZE+MDTM信令、LIST信令、MLSD信令。
其中,通过MLST获取文件的文件信息,该方式获取效率最高。其中,方式分别包括:执行MLST扩展信令并获取对应响应数据;执行MLSD信令的解析过程,并获取对应文件的文件信息。
通过SIZE+MDTM获取属性,该方式获取效率中等。该方式分别包括:循环执行SIZE扩展信令,若SIZE信令执行失败,判断当前的错误码是ENOENT,则检查当前路径是不是目录,若当前的错误码不是ENOENT,则进行LIST流程Ragel解析过程,获取文件的文件信息;若SIZE扩展信令执行成功,如果出现网络重连,则需要从多行响应中获取最后一行,若获取最后一行的信息中不包含正确的错误码,则继续循环执行SIZE扩展信令获取大小信息。然后,执行MDTM信令,修正时间字段,若执行MDTM失败,***错误码不是ENOENT,则进行LIST流程Ragel解析过程,获取文件的文件信息,拼接修改后的文件信息;若执行MDTM失败,则开始执行STAT命令,进行Ragel解析STAT结果,拼接修改后的文件信息。
其中,上述的LIST信令或MLSD信令获取属性,效率相对最低。如果目标服务器能够支持MLSD扩展信令,则执行MLSD信令,并进行Ragel解析过程;若不支持,则执行LIST标准信令,并进行Ragel解析过程,最后拼接修改后的文件信息。
例如,就批量文件的文件信息的获取,各服务器支持的信令可以包括:LIST信令、MLSD信令。
通过LIST信令实现批量文件的文件信息可以包括:先进行Ragel::LIST解析流程,当状态机收到各个文件或目录的初始字段,根据初始字段的各个属性字段分别进行正则规则匹配,每个字段若匹配上则进行相应的状态机执行,获取对应关键值,最后获取到各个文件列表。
通过MLSD信令实现批量文件的文件信息可以包括:先进行Ragel::MLSD解析流程,当状态机收到各个文件或目录的初始字段时,根据初始字段的各个属性字段分别进行正则规则匹配,每个字段若匹配上则进行相应的状态机执行,获取对应关键值,最后获取到各个文件列表。
通过适应性选择服务器支持的信令来执行上述的步骤310,则可以实现当前目录信息获取的准确性和有效性。
示例性地,上述的信令可以是FTP信令,FTP信令能够适配主流服务器的Windows平台的IIS服务器、Filezillia服务器、ServU服务器,Linux平台的VsFTPd服务器、Proftpd服务器、Pureftpd服务器等。在FTP信令RFC规范中规定了标准信令、扩展信令,在不同的服务器中扩展信令支持程度不一样。本实施例中通过自适应信令技术,可以优选效率高的信令完成需要处理的流程,同时适配了各种主流服务器,在满足数据处理需求的条件下,能够提高处理效率。
在第二阶段扫描流程中,可能存在需要处理的文件相对较多,如果均采用单个文件信息的获取方式,可能会导致获取效率较低。
上述的步骤340可以包括以下步骤341至步骤345。
步骤341,根据接收到的该文件更新信息,确定出待处理文件集。
该待处理文件集中包括待处理文件可以是通过上述步骤320确定出的更新信息中的文件。
步骤342,根据该待处理文件集合中的各个待处理文件确定出所属目录,以将各个待处理文件的所属目录确定为待处理目录集,并确定出所述待处理目录集中的每一个待处理目录中所包含的待处理文件数量。
步骤343,针对第一待处理目录,根据该第一待处理目录所包含的待处理文件数量,确定出文件信息获取方式。
其中,第一待处理目录为该待处理目录集中任意一个待处理目录;若该待处理文件数量大于指定数量时,使用批量获取方式获取待处理文件的文件信息;若该待处理文件数量不大于指定数量时,使用单个获取方式获取待处理文件的文件信息。其中,该指定数量可以是100、150等值。
步骤344,根据该文件获取方式依次从该目标服务器中获取各个待处理文件的文件信息。
步骤345,根据各个待处理文件的文件信息,对该历史目录信息进行更新。
下面通过一个实例来介绍上述的步骤341至步骤345的处理流程:
示例性地,该待处理文件集可以存入待处理文件队列,可以定时更新该待处理文件队列中的文件的最新属性,可以通过nfpi::stat获取目标服务器单个文件信息。当待处理文件集中的待处理文件数量较大时,会产生多次往返请求。
本方案进行以下优化:将待处理文件队列中目录信息进行归并统计,如有M个文件待发,那么有待处理文件集可以表示为:{Reg1、Reg2、Reg3…RegM}。
通过目录信息可以关联出该待处理文件集所属的K个待处理目录集以及每个目录下的子文件数量统计:{Dir1、Dir2、Dir3…DirK}、{Dnum1、Dnum2、Dnum3…DnumK}。
对各个待处理目录进行检查,如果该待处理目录下的子文件数量Dnumi超过设定的指定数量threshold,则调用nfpi::scandir采用批量获取方式获取到文件信息;若待处理目录中的文件数量Dnumj,,则调用nfpi::stat采用单个获取方式获取单个文件信息。
通过上述处理方式可以有效节省了网络开销,提高文件扫描效率。
考虑目标服务器中的内容可能会很多,并非所有的文件都需要被扫描处理,因此,可以设置过滤策略过滤不需要扫描处理的文件或目录。基于此,上述的步骤310可以包括:根据预设过滤策略,从该目标服务器中获取当前目录信息。
其中,该过滤策略包括:目录过滤策略、文件过滤策略、文件优先策略中的一种或多种。
目录过滤策略可以将业务中不需要的目录进行过滤,通过该目录过滤策略的限定可以不进入被过滤的目录的扫描。通过目录过滤策略扫描,可以缩短了整体扫描时间开销。
示例性地,可以采用目录名正则表达式、通配符规则等方式配置目录过滤策略。
文件过滤策略,该文件过滤策略可以限定感兴趣的文件,或者不感兴趣的文件。可以通过文件黑名单、文件白名单多种配置方式。其中,对该文件黑名单、文件白名单的配置可以采用文件名正则表达式、通配符规则、文件大小、文件修改时间、文件类型、文件内容等方式。
文件优先策略可以通过推送器(emiter)实现,可以让感兴趣的文件先扫描出来优先做处理。例如,同一个父目录下的文件集合使用了快速排序,保证了扫描过程中排序;而推送器中待发送文件中使用了归并排序,将一批待发送的文件事件再次排序。示例性地,可以通过文件名、文件大小、文件修改时间等排序方式实现文件优先的设置。
考虑目标服务器的类型的不同,其支持的文件共享协议也可能不同。因此,可以基于目标服务器所支持的文件共享协议的不同,可以在步骤310之前,文件扫描方法还可以包括:获取该目标服务器所支持的文件共享协议的目标类型,根据该目标类型,确定出该目标类型对应的扫描插件。
其中,该文件共享协议包括:NFS协议、SMB协议、FTP协议、SFTP协议中的至少一种。其中,该扫描插件用于执行该第一阶段扫描流程和该第二阶段扫描流程。
示例性地,可以根据目标服务器的服务协议、服务器地址、服务器端口、用户名、密码、工作目录等必要的信息进行统一资源定位***(uniform resource locator,简称:URL)拼接。
然后可以根据该目标服务器的共享文件协议动态加载扫描插件:本方案设计了根据协议类别,加载不同的协议插件。这样在当前连接实例下,仅加载必要的动态库协议接口,可以有效降低实例的运行内存。并且后续可以支持其他协议的扩展,仅需要实现对应的接口插件即可接入现有框架。
其中,NFS协议插件支持NFSv3、NFSv4两个协议版本;SMB插件支持SMB1(LANMAN2、NT1、CIFS)、SMB2、SMB3等协议;FTP插件支持的FTP、FTP显式SSL/TLS、FTP隐式SSL/TLS协议;SFTP插件支持的SFTP、SSH、SCP等协议。
在完成了第一阶段扫描流程和第二阶段扫描流程后,可以卸载扫描插件:关闭连接、释放内存空间。
示例性地,可以提供一套NFPI网络操作接口,能够支持SMB、NFS、SFTP、FTP协议统一信令接入,向上提供了类UNIX接口风格。基于此,上层的扫描组件层可以只需要关注扫描的逻辑组织,而不需要关心NFPI内部具体信令的操作。
在一个实例中,单个协议作为一个单独的插件库,要求协议插件接口实现如下表所示:
为了使扫描文件的成功率,可以在步骤310之前,可以对与目标服务器进行各类测试。
可选地,对与该目标服务器的连通性进行测试。
示例性地,可以测试地址端口:检测能否与目标服务器正常建立连接;然后测试用户名密码:检测登录用户的账号及密码是否正确。
可选地,对该目标服务器的权限进行测试。其中,该权限包括目录的创建、目录的删除、文件的创建、文件的删除、文件的读入操作、文件的写入操作中的一种或多种。
示例性地,可以测试目录创建权限:检测目标服务器是否支持目录创建;可以测试文件创建权限:检测目标服务器是否支持文件创建;可以测试文件写入权限:检测目标服务器是否支持文件写操作;可以测试文件读取权限:检测目标服务器是否支持文件读操作;可以测试文件删除权限:检测目标服务器是否支持删除文件;可以测试目录删除权限:检测目标服务器是否能删除目录。
可选地,对该目标服务器的扩展性进行测试。其中,该扩展性包括:是否支持修改文件属性。
示例性地,可以测试获取文件属性:检测目标服务器能否正常获取到文件的一些基本属性;可以测试时间戳修改权限:检测目标服务器是否支持修改文件的时间戳;可以测试长文件名创建:检测目标服务器是否支持创建长文件名;可以测试文件分片权限:检测目标服务器是否支持文件的偏移操作。
可选地,若任意一项测试失败,输出测试失败原因。可选地,若测试成功,也可以输出测试成功的提示。示例性地,测试结果可以SYSLOG方式,WEBUI回显方式提示。
本申请实施例提供的文件扫描方法通过网络远程连接到目标服务器实现文件扫描。其中,可以支持FTP、SFTP、SMB、NFS标准协议的NFPI开发套件,在NFPI开发套件之上提供逻辑编排实现的扫描组件、扫描服务来实现。
本实施例中,可以通过NFPI统一接口,可以有效隔离协议处理层以及扫描逻辑层的开发工作,并且可以灵活支持协议的扩展。
进一步地,在本申请实施例中采用Ragel解析器,在十万个文件列表的场景下:解析效率提升较多、扫描接口提高;FTP时间戳修正技术方案相比常规修正,在十万个文件列表下,能够减少信令交互,使处理速度得到提高。
基于同一申请构思,本申请实施例中还提供了与文件扫描方法对应的文件扫描装置,由于本申请实施例中的装置解决问题的原理与前述的文件扫描方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图5,是本申请实施例提供的文件扫描装置的功能模块示意图。本实施例中的文件扫描装置中的各个模块用于执行上述方法实施例中的各个步骤。文件扫描装置包括:第一获取模块410、对比模块420、传输模块430和第一更新模块440;其中各个模块的内容如下所示:第一获取模块410,用于通过第一阶段扫描流程,获取目标服务器的当前目录信息;对比模块420,用于将该当前目录信息与历史目录信息进行对比,以确定出该当前目录信息中的更新信息,其中,该历史目录信息为当前本地存储的所述目标服务器的最新版本的目录信息;传输模块430,用于将该更新信息传输给第二阶段扫描流程;第一更新模块440,用于通过该第二阶段扫描流程,对该更新信息进行处理,以对该历史目录信息进行更新,以得到更新的历史目录信息。
一种可能的实施方式中,该当前目录信息包括:多项文件信息,该更新信息包括:文件更新信息;对比模块420,用于将各项该文件信息分别与该历史目录信息中记录的内容进行对比,以确定出文件更新信息。
一种可能的实施方式中,该文件更新信息包括:文件新增信息;对比模块420,用于:将各项该文件信息与该历史目录信息中记录的内容进行对比,以确定各项该文件信息对应的文件是否存在于该历史目录信息中;若第一文件信息对应的文件不存在于该历史目录信息中,则根据该第一文件信息确定文件新增信息,其中,该第一文件信息为该当前目录信息中所包含的多项文件信息中的任意一项文件信息。
一种可能的实施方式中,该文件更新信息包括:文件变更信息;对比模块420,用于将各项该文件信息与该历史目录信息中记录的内容进行对比,以确定各项该文件信息对应的文件是否存在于该历史目录信息中;若第二文件信息对应的文件存在于该历史目录信息中,且该第二文件信息与该历史目录信息对应的文件信息不相同,则根据该第二文件信息确定文件变更信息,其中,该第二文件信息为该当前目录信息中所包含的多项文件信息中的任意一项文件信息。
一种可能的实施方式中,该历史目录信息可以包括:文件树,该文件树包括多个节点,每个节点用于表征一个目录或者一个文件;对比模块420,用于将各项该文件信息中的文件名与该文件树的各节点进行对比,以确定各项该文件信息对应的文件是否属于该文件树中的任意一个节点;若第三文件信息对应的文件不属于该文件树中的一个节点,根据该第三文件信息确定文件新增信息,其中,该第三文件信息为该当前目录信息中所包含的多项文件信息中的任意一项文件信息;若该第三文件信息对应的文件属于该文件树中的一个节点,且该第三文件信息与该文件树中对应的节点所属的文件信息不相同,则根据该第三文件信息确定文件变更信息。
一种可能的实施方式中,若任意第三文件信息对应的文件不属于该文件树中的一个节点,本申请实施例提供的文件扫描装置还可以包括:新增模块,用于在该文件树中新增该第三文件信息对应的新增文件节点,并将该第三文件信息赋值给该新增文件节点。
一种可能的实施方式中,第一获取模块410,用于:根据该目标服务器的目录树中的节点数量,确定出第一数量的扫描实例,其中,每一个扫描实例用于扫描该目录树中的至少一个节点,第一数量的扫描实例用于对所述目录树所包含的节点进行扫描;针对第i扫描实例,从该目标服务器中获取其对应的第i部分节点对应的第i目录信息,其中,该第i扫描实例为该第一数量的扫描实例中的任意一个,i的取值为大于或等于1,且小于或等于N的正整数,N为第一数量,其中,基于各个扫描实例扫描得到的目录信息的并集为所述目标服务器的当前目录信息;上述的对比模块420,用于通过该第i扫描实例,将该第i目录信息与历史目录信息进行对比,以确定出该第i目录信息中的第i更新信息,其中,基于各个扫描实例,将当前目录信息与历史目录信息进行对比,得到所述当前目录信息中的更新信息。
一种可能的实施方式中,第一获取模块410,包括信息获取单元和字段提取单元;信息获取单元,用于从目标服务器中获取初始目录信息,该初始目录信息包括多项初始字段,每一项初始字段用于表示一个文件的内容或一个目录的内容;字段提取单元,用于提取各项该初始字段中所包含的属性字段,并将各属性字段记录为目标格式信息,以得到该目标服务器的当前目录信息。
一种可能的实施方式中,该属性字段包括时间字段;字段提取单元,用于提取各项该初始字段中所包含的属性字段;若第一初始字段的属性字段中的时间字段不完整,则将该第一初始字段的时间字段进行修正,得到修正时间,其中,该第一初始字段为多项初始字段中的任意一项;将该修正时间以及该第一初始字段的属性字段记录为目标格式信息。
一种可能的实施方式中,文件扫描装置还可以包括:第二获取模块,用于获取该目标服务器支持的信令类型;第一确定模块,用于若该目标服务器支持的信令类型包括至少两种,则根据至少两种的信令类型的优先级,确定出目标信令,其中,该目标信令用于执行上述的信息获取单元和字段提取单元。
一种可能的实施方式中,该当前目录信息包括:多项子目录信息,该更新信息包括:目录更新信息;对比模块420,用于将各项该子目录信息与该历史目录信息中记录的内容进行对比,以确定出目录更新信息;文件扫描装置还可以包括:第二更新模块,用于根据该目录更新信息,对该历史目录信息中的目录进行更新。
一种可能的实施方式中,该更新信息包括文件更新信息;
第一更新模块440,用于:根据接收到的该文件更新信息,确定出待处理文件集;根据该待处理文件集合中的各个待处理文件确定出所属目录,以将各个待处理文件的所属目录确定为待处理目录集,并确定出所述待处理目录集中的每一个待处理目录中所包含的待处理文件数量;针对第一待处理目录,根据该第一待处理目录所包含的待处理文件数量,确定出文件信息获取方式,其中,第一待处理目录为该待处理目录集中任意一个待处理目录;若该待处理文件数量大于指定数量时,使用批量获取方式获取待处理文件的文件信息;若该待处理文件数量不大于指定数量时,使用单个获取方式获取待处理文件的文件信息;根据该文件获取方式依次从该目标服务器中获取各个待处理文件的文件信息;根据各个待处理文件的文件信息,对该历史目录信息进行更新。
一种可能的实施方式中,该第一阶段扫描流程通过第一进程实现;该第二阶段扫描流程通过第二进程实现。
一种可能的实施方式中,第一获取模块410,用于根据预设过滤策略,从该目标服务器中获取当前目录信息,其中,该过滤策略包括:目录过滤策略、文件过滤策略、文件优先策略中的一种或多种。
一种可能的实施方式中,文件扫描装置还可以包括:第三获取模块,用于获取该目标服务器所支持的文件共享协议的目标类型,其中,该文件共享协议包括:NFS协议、SMB协议、FTP协议、SFTP协议中的至少一种;第二确定模块,用于根据该目标类型,确定出该目标类型对应的扫描插件,其中,该扫描插件用于执行该第一阶段扫描流程和该第二阶段扫描流程。
一种可能的实施方式中,文件扫描装置还可以包括:第一测试模块,用于对与该目标服务器的连通性进行测试;第二测试模块,用于对该目标服务器的权限进行测试,其中,该权限包括目录的创建、目录的删除、文件的创建、文件的删除、文件的读入操作、文件的写入操作中的一种或多种;第三测试模块,用于对该目标服务器的扩展性进行测试,其中,该扩展性包括:是否支持修改文件属性;输出模块,用于若任意一项测试失败,输出测试失败原因。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的文件扫描方法的步骤。
本申请实施例所提供的文件扫描方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的文件扫描方法的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种文件扫描方法,其特征在于,包括:
通过第一阶段扫描流程,获取目标服务器的当前目录信息;
将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,其中,所述历史目录信息为当前本地存储的所述目标服务器的最新版本的目录信息;
将所述更新信息传输给第二阶段扫描流程;
通过所述第二阶段扫描流程,对所述更新信息进行处理,以对所述历史目录信息进行更新,以得到更新的历史目录信息。
2.根据权利要求1所述的方法,其特征在于,所述当前目录信息包括:多项文件信息,所述更新信息包括:文件更新信息;
所述将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,包括:
将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息。
3.根据权利要求2所述的方法,其特征在于,所述文件更新信息包括:文件新增信息;
所述将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:
将各项所述文件信息与所述历史目录信息中记录的内容进行对比,以确定各项所述文件信息对应的文件是否存在于所述历史目录信息中;
若第一文件信息对应的文件不存在于所述历史目录信息中,则根据所述第一文件信息确定文件新增信息,其中,所述第一文件信息为所述当前目录信息中所包含的多项文件信息中的任意文件信息。
4.根据权利要求2所述的方法,其特征在于,所述文件更新信息包括:文件变更信息;
所述将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:
将各项所述文件信息与所述历史目录信息中记录的内容进行对比,以确定各项所述文件信息对应的文件是否存在于所述历史目录信息中;
若第二文件信息对应的文件存在于所述历史目录信息中,且所述第二文件信息与所述历史目录信息对应的文件信息不相同,则根据所述第二文件信息确定文件变更信息,其中,所述第二文件信息为所述当前目录信息中所包含的多项文件信息中的任意文件信息。
5.根据权利要求2所述的方法,其特征在于,所述历史目录信息包括:文件树,所述文件树包括多个节点,每个节点用于表征一个目录或者一个文件;
所述将各项所述文件信息分别与所述历史目录信息中记录的内容进行对比,以确定出文件更新信息,包括:
将各项所述文件信息中的文件名与所述文件树的各节点进行对比,以确定各项所述文件信息对应的文件是否属于所述文件树中的任意一个节点;
若第三文件信息对应的文件不属于所述文件树中的一个节点,根据所述第三文件信息确定文件新增信息,其中,所述第三文件信息为所述当前目录信息中所包含的多项文件信息中的任意文件信息;
若所述第三文件信息对应的文件属于所述文件树中的一个节点,且所述第三文件信息与所述文件树中对应的节点所属的文件信息不相同,则根据所述第三文件信息确定文件变更信息。
6.根据权利要求5所述的方法,其特征在于,若任意第三文件信息对应的文件不属于所述文件树中的一个节点,所述方法还包括:
在所述文件树中新增所述第三文件信息对应的新增文件节点,并将所述第三文件信息赋值给所述新增文件节点。
7.根据权利要求1所述的方法,其特征在于,所述获取目标服务器的当前目录信息,包括:
根据所述目标服务器的目录树中的节点数量,确定出第一数量的扫描实例,其中,每一个扫描实例用于扫描所述目录树中的至少一个节点,第一数量的扫描实例用于对所述目录树所包含的节点进行扫描;
针对第i扫描实例,从所述目标服务器中获取其对应的第i部分节点对应的第i目录信息,其中,所述第i扫描实例为所述第一数量的扫描实例中的任意一个,i的取值为大于或等于1,且小于或等于N的正整数,N为第一数量,其中,基于各个扫描实例扫描得到的目录信息的并集为所述目标服务器的当前目录信息;
所述将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,包括:
通过所述第i扫描实例,将所述第i目录信息与历史目录信息进行对比,以确定出所述第i目录信息中的第i更新信息,其中,基于各个扫描实例,将当前目录信息与历史目录信息进行对比,得到所述当前目录信息中的更新信息。
8.根据权利要求1所述的方法,其特征在于,所述获取目标服务器的当前目录信息,包括:
从目标服务器中获取初始目录信息,所述初始目录信息包括多项初始字段,每一项初始字段用于表示一个文件的内容或一个目录的内容;
提取各项所述初始字段中所包含的属性字段,并将各属性字段记录为目标格式信息,以得到所述目标服务器的当前目录信息。
9.根据权利要求8所述的方法,其特征在于,所述属性字段包括时间字段;
所述提取各项所述初始字段中所包含的属性字段,并将各属性字段记录为目标格式信息,包括:
提取各项所述初始字段中所包含的属性字段;
若第一初始字段的属性字段中的时间字段不完整,则将所述第一初始字段的时间字段进行修正,得到修正时间,其中,所述第一初始字段为多项初始字段中的任意一项;
将所述修正时间以及所述第一初始字段的属性字段记录为目标格式信息。
10.根据权利要求8所述的方法,其特征在于,所述从目标服务器中获取初始目录信息之前,所述方法还包括:
获取所述目标服务器支持的信令类型;
若所述目标服务器支持的信令类型包括至少两种,则根据至少两种的信令类型的优先级,确定出目标信令,其中,所述目标信令用于执行所述从目标服务器中获取初始目录信息和所述提取各项所述初始字段中所包含的属性字段的步骤。
11.根据权利要求1所述的方法,其特征在于,所述当前目录信息包括:多项子目录信息,所述更新信息包括:目录更新信息;
所述将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,包括:
将各项所述子目录信息与所述历史目录信息中记录的内容进行对比,以确定出目录更新信息;
所述方法还包括:
根据所述目录更新信息,对所述历史目录信息中的目录进行更新。
12.根据权利要求1-11任意一项所述的方法,其特征在于,所述更新信息包括文件更新信息;
所述对所述更新信息进行处理,以对所述历史目录信息进行更新,包括:
根据接收到的所述文件更新信息,确定出待处理文件集;
根据所述待处理文件集中的各个待处理文件确定出所属目录,以将各个待处理文件的所属目录确定为待处理目录集,并确定出所述待处理目录集中的每一个待处理目录中所包含的待处理文件数量;
针对第一待处理目录,根据所述第一待处理目录所包含的待处理文件数量,确定出文件信息获取方式,其中,第一待处理目录为所述待处理目录集中任意一个待处理目录;若所述待处理文件数量大于指定数量时,使用批量获取方式获取待处理文件的文件信息;若所述待处理文件数量不大于指定数量时,使用单个获取方式获取待处理文件的文件信息;
根据所述文件获取方式依次从所述目标服务器中获取各个待处理文件的文件信息;
根据各个待处理文件的文件信息,对所述历史目录信息进行更新。
13.根据权利要求1-11任意一项所述的方法,其特征在于,所述第一阶段扫描流程通过第一进程实现;
所述第二阶段扫描流程通过第二进程实现。
14.根据权利要求1-11任意一项所述的方法,其特征在于,所述获取目标服务器的当前目录信息,包括:
根据预设过滤策略,从所述目标服务器中获取当前目录信息,其中,所述过滤策略包括:目录过滤策略、文件过滤策略、文件优先策略中的一种或多种。
15.根据权利要求1-11任意一项所述的方法,其特征在于,在所述获取目标服务器的当前目录信息之前,所述方法还包括:
获取所述目标服务器所支持的文件共享协议的目标类型,其中,所述文件共享协议包括:NFS协议、SMB协议、FTP协议、SFTP协议中的至少一种;
根据所述目标类型,确定出所述目标类型对应的扫描插件,其中,所述扫描插件用于执行所述第一阶段扫描流程和所述第二阶段扫描流程。
16.根据权利要求1-11任意一项所述的方法,其特征在于,在所述获取目标服务器的当前目录信息之前,所述方法还包括以下至少一项:
对与所述目标服务器的连通性进行测试;
对所述目标服务器的权限进行测试,其中,所述权限包括目录的创建、目录的删除、文件的创建、文件的删除、文件的读入操作、文件的写入操作中的一种或多种;
对所述目标服务器的扩展性进行测试,其中,所述扩展性包括:是否支持修改文件属性;
若任意一项测试失败,输出测试失败原因。
17.一种文件扫描装置,其特征在于,包括:
第一获取模块,用于通过第一阶段扫描流程,获取目标服务器的当前目录信息;
对比模块,用于将所述当前目录信息与历史目录信息进行对比,以确定出所述当前目录信息中的更新信息,其中,所述历史目录信息为当前本地存储的所述目标服务器的最新版本的目录信息;
传输模块,用于将所述更新信息传输给第二阶段扫描流程;
第一更新模块,用于通过所述第二阶段扫描流程,对所述更新信息进行处理,以对所述历史目录信息进行更新,以得到更新的历史目录信息。
18.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至16任意一项所述的方法的步骤。
19.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至16任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211531108.4A CN115994124A (zh) | 2022-12-01 | 2022-12-01 | 文件扫描方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211531108.4A CN115994124A (zh) | 2022-12-01 | 2022-12-01 | 文件扫描方法、装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115994124A true CN115994124A (zh) | 2023-04-21 |
Family
ID=85991426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211531108.4A Pending CN115994124A (zh) | 2022-12-01 | 2022-12-01 | 文件扫描方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115994124A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483423A (zh) * | 2023-06-25 | 2023-07-25 | 杭州谐云科技有限公司 | 一种基于遗传算法的增量代码扫描方法和*** |
-
2022
- 2022-12-01 CN CN202211531108.4A patent/CN115994124A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483423A (zh) * | 2023-06-25 | 2023-07-25 | 杭州谐云科技有限公司 | 一种基于遗传算法的增量代码扫描方法和*** |
CN116483423B (zh) * | 2023-06-25 | 2023-09-05 | 杭州谐云科技有限公司 | 一种基于遗传算法的增量代码扫描方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3714375B1 (en) | Allocation and reassignment of unique identifiers for synchronization of content items | |
US11573938B2 (en) | Systems and methods for indexing source code in a search engine | |
US20170075921A1 (en) | Hosted file sync with direct access to hosted files | |
US7702641B2 (en) | Method and system for comparing and updating file trees | |
US11640374B2 (en) | Shard-level synchronization of cloud-based data store and local file systems | |
US10671358B2 (en) | Systems and methods for indexing source code in a search engine | |
CN110737719A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN115994124A (zh) | 文件扫描方法、装置、电子设备和计算机可读存储介质 | |
CN114356844B (zh) | 一种基于目录树轮询对比文件快照的方法和装置 | |
WO2017223265A1 (en) | Shard-level synchronization of cloud-based data store and local file systems | |
TWI571754B (zh) | 用來進行檔案同步控制之方法與裝置 | |
US20150347402A1 (en) | System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace | |
CN113515303B (zh) | 一种项目转型方法、装置和设备 | |
CN112559546A (zh) | 数据库同步方法、装置、计算机设备及可读存储介质 | |
US20240061891A1 (en) | Synchronizing security groups | |
CN116991815B (zh) | 一种分布式存储***的日志收集方法、装置、设备及介质 | |
CN118277491A (zh) | 基于Canal的元数据同步方法、设备、存储介质及计算机程序产品 | |
CN111079199A (zh) | 基于区块链技术的企业信用数据截图防篡改方法 | |
CN118069612A (zh) | 一种文件同步方法、装置、设备及存储介质 | |
CN113449035A (zh) | 数据同步方法、装置、计算机设备及可读存储介质 | |
CN117193652A (zh) | 冷热数据存储方法、装置、设备及介质 | |
CN117971297A (zh) | 依赖包同步方法、装置、计算机设备和存储介质 | |
CN115858459A (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 |