发明内容
基于此,有必要针对上述技术问题,提供一种能够提高文件检测准确性的文件检测方法、装置、计算机设备和存储介质。
一种文件检测方法,所述方法包括:
获取待检测文件;
识别所述待检测文件对应的更新状态;
当所述待检测文件处于已更新状态时,获取所述待检测文件对应的文件标识,以及历史更新信息;
获取所述文件标识对应的文件更新信息,根据所述文件更新信息对所述历史更新信息进行检测;
当所述文件更新信息不包括所述历史更新信息时,确定所述待检测文件为目标更新文件,根据所述历史更新信息对所述文件更新信息进行更新。
在其中一个实施例中,所述获取待检测文件包括:
获取预设配置信息,所述预设配置信息包括至少一个文件地址;
根据所述文件地址获取对应的当前文件;
检测所述当前文件对应的文件状态,当所述文件状态为写入完成状态时,确定所述当前文件作为待检测文件。
在其中一个实施例中,所述检测所述当前文件对应的文件状态包括:
获取与所述当前文件对应的预设时间段后的文件;
将所述预设时间段后的文件与所述当前文件进行比对;
当所述当前文件与所述预设时间段后的文件一致时,确定所述当前文件所对应的所述文件状态为写入完成状态。
在其中一个实施例中,所述识别所述待检测文件对应的更新状态包括:
获取所述待检测文件对应的当前更新标记码;
获取所述待检测文件所对应的上一个文件的文件更新标记码;
将所述当前更新标记码与所述文件更新标记码进行比对,根据比对结果确定所述待检测文件对应的更新状态。
在其中一个实施例中,在所述获取所述待检测文件对应的文件标识,以及历史更新信息之后,所述方法还包括:
根据所述文件标识和所述历史更新信息生成待检测文件信息;
确定文件检测节点所属的节点集群;
将所述待检测文件信息在所述节点集群中进行广播,使得所述节点集群中的文件检测节点根据所述历史更新信息,对所述文件标识对应的所述文件更新信息进行更新。
在其中一个实施例中,所述方法还包括:
接收所述节点集群中广播的待更新文件信息;
获取所述待更新文件信息中包括的待更新文件标识以及参考更新信息;
获取与所述待更新文件标识对应的待更新信息,根据所述参考更新信息对所述待更新信息进行更新。
一种文件检测装置,所述装置包括:
文件获取模块,用于获取待检测文件;
信息获取模块,用于识别所述待检测文件对应的更新状态;当所述待检测文件处于已更新状态时,获取所述待检测文件对应的文件标识,以及历史更新信息;
文件检测模块,用于获取所述文件标识对应的文件更新信息,根据所述文件更新信息对所述历史更新信息进行检测;
信息更新模块,用于当所述文件更新信息不包括所述历史更新信息时,确定所述待检测文件为目标更新文件,根据所述历史更新信息对所述文件更新信息进行更新。
在其中一个实施例中,所述文件获取模块还用于获取预设配置信息,所述预设配置信息包括至少一个文件地址;根据所述文件地址获取对应的当前文件;检测所述当前文件对应的文件状态,当所述文件状态为写入完成状态时,确定所述当前文件作为待检测文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述文件检测方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述文件检测方法的步骤。
上述文件检测方法、装置、计算机设备和存储介质,通过识别获取到的待检测文件对应的更新状态,判断待检测文件是否发生了更新。当待检测文件处于已更新状态时,获取待检测文件对应的文件标识以及历史更新信息,通过获取与文件标识对应的文件更新信息,根据文件更新信息对历史更新信息进行检测,以此检测待检测文件是否为多路文件中已获取到过的重复文件。当文件更新信息不包括历史更新信息时,确定待检测文件为目标更新文件,根据历史更新信息对文件更新信息进行更新,通过文件更新信息可以准确的检测待检测文件的历史更新信息,有效的提高了文件检测的准确性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的文件检测方法,可以应用于如图1所示的应用环境中。其中,检测服务器104可以通过网络与发送端102和接收端106进行通信。发送端102可以通过多路网关对相同的文件进行传输,以此保证在出现单点网关故障时,对更新的文件进行有效传输。检测服务器104可以从发送端102获取待检测文件。检测服务器104识别待检测文件对应的更新状态,当待检测文件处于已更新状态时,获取待检测文件对应的文件标识和历史更新信息。检测服务器104获取文件标识对应的文件更新信息,根据文件更新信息对历史更新信息进行检测。当文件更新信息中不包括历史更新信息时,检测服务器104可以确定待检测文件为目标更新文件,根据历史更新信息对文件更新信息进行更新。检测服务器104可以将目标更新文件发送至接收端106,使得接收端106可以不重复的接收更新的文件。发送端102和接收端106可以分别是终端或者服务器。检测服务器104可以是多种服务器中的一种。终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种文件检测方法,以该方法应用于图1中的检测服务器104为例进行说明,包括以下步骤:
步骤202,获取待检测文件。
在文件传输的过程中,为了避免单路网关故障对文件传输效率产生的影响,提高文件传输的鲁棒性和效率,特别是在文件更新频率较高的应用场景中,通常会设置多路网关对相同更新的文件并行传输。即使其中任意一路网关出现单点故障,也能通过其他网关传输更新的文件,保证了文件传输的效率。但是,由于多路网关传输的文件是相同的,接收端不需要重复接收相同的文件,避免文件传输的数据冗余。因此,检测服务器需要检测获取到的待检测文件是否为最新更新的非重复文件。
检测服务器(以下简称为“服务器”)可以获取待传输的文件,将获取到的文件记作待检测文件。待检测文件可以是服务器获取到的需要检测是否重复的待传输文件,待检测文件可以是同一个文件在更新过程中的不同版本文件。例如,待检测文件可以是根据实际应用需求对文件内容进行修改、更新后的文件。服务器可以获取待检测文件,检测获取到的待检测文件是否为最新更新版本的文件,以此避免因为多路网关之间传输速度不完全一致,导致重复传输相同版本的文件至接收端,避免造成文件传输资源的浪费和数据冗余。
服务器可以通过多种方式获取待检测文件。具体的,发送端在文件进行更新之后,可以通过多路网关将文件发送至服务器,服务器将接收到发送端发送的文件记作待检测文件。服务器还可以生成文件获取请求,将文件获取请求发送至发送端,接收发送端响应文件获取请求所返回的待检测文件。
发送端还可以通过多路网关将同一个文件写入磁盘中,不同网关写入的文件可以分别存储在磁盘的不同目录下。服务器可以根据预设频率扫描该磁盘,从磁盘中获取发送端写入的待检测文件。其中,预设频率可以是根据实际应用需求预先设置的文件获取频率,对于不同的文件可以分别设置有不同的文件获取频率。磁盘具体可以是发送端对应的磁盘,也可以是服务器所对应的磁盘,还可以是除了发送端与服务器之外的第三方磁盘。
步骤204,识别待检测文件对应的更新状态。
服务器在获取到待检测文件之后,可以识别待检测文件所对应的更新状态。更新状态可以用于表示当前获取到的待检测文件相较于上一个文件的更新情况,待检测文件所对应的更新状态具体可以包括未更新状态或者已更新状态。服务器可以通过识别待检测文件对应的更新状态,判断待检测文件是否发生了变更。具体的,服务器可以获取待检测文件所对应的上一个文件,服务器可以将待检测文件与上一个文件进行比对。当待检测文件的内容与上一个文件的内容完全一致时,确定待检测文件对应的更新状态为未更新状态。当待检测文件的内容与上一个文件的内容不一致时,确定待检测文件对应的更新状态为已更新状态。其中,待检测文件所对应的上一个文件是由与待检测文件相同的网关发送或者写入的文件。
在其中一个实施例中,服务器还可以获取待检测文件对应的更新标记码,更新标记码可以用于标记待检测文件的更新情况。当待检测文件的内容发生修改或者变动时,待检测文件对应的更新标记码也会发生变化。服务器可以通过待检测文件对应的更新标记码确定待检测文件是否发生变动或更新,从而识别待检测文件对应的更新状态,不需要比对待检测文件包括的所有内容,有效的提高了识别待检测文件对应更新状态的效率。
在其中一个实施例中,当待检测文件不存在对应的上一个文件时,表示待检测文件为对应路网关所发送的第一个版本的文件,服务器可以确定待检测文件的更新状态为已更新状态。
步骤206,当待检测文件处于已更新状态时,获取待检测文件对应的文件标识,以及历史更新信息。
当确定待检测文件对应的更新状态为已更新状态时,表示待检测文件相较于上一个文件已经发生了修改或变更,待检测文件可能是多路网关传输的文件中最新更新的文件。服务器可以获取待检测文件对应的文件标识,以及待检测文件对应的历史更新信息,通过文件标识和历史更新信息进一步对待检测文件进行检测。
文件标识是指用于对待检测文件进行标记的标识信息,文件标识可以是多种类型的标识信息中的一种或者多种的组合。例如,文件标识具体可以包括文件名称、文件编号、存储目录等中的一种或者多种的组合。发送端可以对文件内容进行修改或者更新,服务器可以获取文件内容发生更新,但文件标识一致的待检测文件。
历史更新信息可以包括对应网关传输待检测文件所对应的历史更新记录,历史更新信息记载了待检测文件的更新过程。多路网关都会传输待检测文件,但由于各路网关的实际传输情况可能存在不同,各路网关所对应待检测文件的历史更新信息也可以是不同的。具体的,服务器可以通过待检测文件对应的更新标记码表示待检测文件的更新情况,历史更新信息可以包括待检测文件在历史更新过程中的所有更新标记码,以及更新标记码之间的顺序。
例如,更新标记码具体可以是待检测文件所对应的MD5(Message DigestAlgorithm,信息摘要算法)码,MD5码为待检测文件对应的一串散列值。当待检测文件的内容发生变化时,待检测文件对应的MD5码也会发生改变。服务器可以记录待检测文件对应的MD5码变化过程,得到待检测文件对应的历史更新信息。
在其中一个实施例中,当待检测文件对应的更新状态为未更新状态时,表示待检测文件与上一个文件相同,待检测文件相较于上一个文件没有发生修改或变更,待检测文件属于未发生更新的重复文件。服务器可以删除更新状态为未更新状态的待检测文件,避免将重复文件发送至接收端,通过识别待检测文件对应的更新状态提高了文件检测的准确性和效率。
步骤208,获取文件标识对应的文件更新信息,根据文件更新信息对历史更新信息进行检测。
服务器可以根据文件标识获取与文件标识对应的文件更新信息,文件更新信息包括文件标识所对应的文件在多路网关汇总的更新信息。服务器在获取到各路网关传输的待检测文件之后,可以获取待检测文件对应的历史更新信息,根据历史更新信息统计得到文件标识所对应的文件更新信息。发送端可以对相同文件标识的文件进行多次修改或变更,通过多路网关并行传输内容更新后的文件。服务器可以统计多路网关所传输文件的历史更新信息,得到对应文件标识的文件更新信息。每个文件标识可以对应存在一个文件更新信息,文件标识在各路网关所对应的历史更新信息可以是完全相同的,也可以不完全相同。
可以理解的,由于多路网关所传输的文件是一致的,因此,多路网关所对应待检测文件的历史更新信息应当也是一致的。但是,在实际应用过程中,由于各路网关的传输速度或者传输频率不同,以及网关出现单点故障等情况,在某一个时刻,服务器所获取到的待检测文件所对应的历史更新信息可能是不同的,服务器可以根据多个待检测文件各自对应的历史更新信息统计得到文件标识对应的文件更新信息。
服务器可以根据文件标识所对应的文件更新信息对历史更新信息进行检测,以此检测历史更新信息所对应的待检测文件是否为当前最新更新的文件。具体的,服务器可以将历史更新信息与文件更新信息进行比对,检测历史更新信息是否为文件更新信息的子集,即判断历史更新信息是否属于文件更新信息。其中,历史更新信息与文件更新信息之间的比对包括比对各自包括的内容以及更新顺序。
以文件更新信息包括更新标记码为例进行说明,为了便于说明,本实施例中以大写字母表示文件对应的更新标记码。可以理解的,在实际应用过程中,更新标记码具体可以是待检测文件对应的MD5码等。例如,发送端对初始文件进行了两次修改,三个版本的文件各自对应的更新标记码分别为A、B和C。多路网关顺序传输文件,服务器获取到最后一个待检测文件所对应的历史更新信息应当为“A-B-C”。
在其中一个实施例中,在实际应用过程中,当服务器获取到待检测文件时,由于部分网关的传输速度较慢,还在传输第二个文件。因此,该部分网关所对应待检测文件的历史更新信息为“A-B”。服务器可以获取文件标识对应的文件更新信息“A-B-C”,将待检测文件对应的历史更新信息“A-B”与文件更新信息“A-B-C”进行比对,确定文件更新信息包括历史更新信息。
在其中一个实施例中,由于网关出现单点故障,丢失了第二个文件。因此,该网关所对应待检测文件的历史更新信息为“A-C”。服务器可以将历史更新信息“A-C”与文件更新信息“A-B-C”进行比对,确定文件更新信息包括历史更新信息。
在其中一个实施例中,当发送端已经对文件标识所对应的文件进行第三次修改,得到更新标记码为“D”的文件。当服务器获取该待检测文件,获取到待检测文件对应的历史更新信息为“A-B-C-D”。服务器可以将历史更新信息“A-B-C-D”与文件更新信息“A-B-C”进行比对,确定文件更新信息不包括历史更新信息。
步骤210,当文件更新信息不包括历史更新信息时,确定待检测文件为目标更新文件,根据历史更新信息对文件更新信息进行更新。
服务器根据文件标识对应的文件更新信息对历史更新信息进行检测,当文件更新信息不包括历史更新信息时,表示待检测文件为服务器未获取到过的非重复文件,服务器可以确定待检测文件为目标更新文件。服务器可以将目标更新文件发送至接收端,从而避免重复发送多路传输的文件。并且,当文件更新信息不包括历史更新信息时,服务器可以根据该历史更新信息对文件更新信息进行更新。例如,根据历史更新信息“A-B-C-D”将文件更新信息“A-B-C”更新为“A-B-C-D”。服务器可以根据更新后的文件更新信息对后续文件所对应的历史更新信息进行检测,以此判断后续文件是否为该待检测文件的重复文件,有效的提高了文件检测的准确性。
在其中一个实施例中,当文件更新信息包括历史更新信息时,表示服务器已经获取到过与该待检测文件相同的文件,该待检测文件属于重复文件。服务器可以删除该历史更新信息所对应的待检测文件,不需要将重复的文件发送至接收端,有效的节省了文件传输所需消耗的通信资源。
在本实施例中,通过识别获取到的待检测文件对应的更新状态,判断待检测文件是否发生了更新。当待检测文件处于已更新状态时,获取待检测文件对应的文件标识以及历史更新信息,通过获取与文件标识对应的文件更新信息,根据文件更新信息对历史更新信息进行检测,以此检测待检测文件是否为多路网关所传输文件中已获取过的重复文件。当文件更新信息不包括历史更新信息时,确定待检测文件为目标更新文件,根据历史更新信息对文件更新信息进行更新,通过文件更新信息可以准确的检测待检测文件的历史更新信息,有效的提高了文件检测的准确性。
在一个实施例中,如图3所示,上述获取待检测文件的步骤包括:
步骤302,获取预设配置信息,预设配置信息包括至少一个文件地址。
步骤304,根据文件地址获取对应的当前文件。
步骤306,检测当前文件对应的文件状态,当文件状态为写入完成状态时,确定当前文件作为待检测文件。
服务器可以获取预设配置信息,预设配置信息是指根据实际应用需求预先配置的用于获取和检测文件的信息。预设配置信息是与需要检测的文件相对应的,需要进行检测的文件标识可以对应有预设配置信息。预设配置信息中包括至少一个文件地址。文件地址具体可以是文件的存储地址,终端可以通过多路网关分别将文件写入各自对应的文件地址。例如,发送端可以通过多路网关将文件并行写入磁盘中,文件地址具体可以是被写入文件在磁盘中的地址。
服务器可以根据文件地址获取位于文件地址的当前文件。例如,服务器可以扫描磁盘,根据文件地址从磁盘中读取对应的当前文件。在其中一个实施例中,预设配置文件还可以包括文件获取频率。服务器可以按照配置的文件获取频率,根据文件地址获取对应的当前文件。当前文件是指服务器在获取文件时,文件地址所对应的文件数据。当前文件具体可以是完整的文件数据,也可以是不完整的文件数据。例如,服务器可能在发送端将文件写入磁盘的过程中从磁盘读取文件,由于文件并没完全写入磁盘中,因此,服务器获取到的当前文件可以是不完整的文件数据。
服务器可以检测当前文件所对应的文件状态,通过当前文件所对应的文件状态判断当前文件是否包括完整的文件数据。文件状态具体可以包括写入完成状态和写入过程中状态。当当前文件所对应的文件状态为写入过程中状态时,表示发送端还在写入文件数据,服务器获取到的当前文件不是完整的文件数据,服务器可以删除获取到的当前文件,等待下一次获取文件时重新获取文件。当当前文件所对应的文件状态为写入完成状态时,服务器可以确定获取到的当前文件包括完整的文件数据,服务器可以确定获取到的当前文件作为待检测文件。
在本实施例中,服务器通过获取预设配置信息,根据预设配置信息中包括的文件地址获取对应的当前文件,通过检测当前文件对应的文件状态,当文件状态为写入完成状态时,确定当前文件作为待检测文件,保证获取到的待检测文件包括完整的文件数据,从而有效的提高了文件检测的准确性。
在一个实施例中,上述检测当前文件对应的文件状态的步骤包括:获取与当前文件对应的预设时间段后的文件;将预设时间段后的文件与当前文件进行比对;当当前文件与预设时间段后的文件一致时,确定当前文件所对应的文件状态为写入完成状态。
服务器可以从预设配置信息中获取文件状态检测策略,文件状态检测策略中可以包括获取文件间隔的预设时间段。预设时间段可以是根据实际应用需求预先设置的一个时间长度。例如,预设时间段具体可以设置为1秒。预设时间段可以大于或等于单路网关写入文件所需的时间。服务器可以获取与当前文件对应的预设时间段后的文件。即服务器可以在获取到当前文件之后,经过预设时间段后再次根据文件地址获取文件,得到当前文件所对应的预设时间段后的文件。
服务器可以将预设时间段后的文件与获取到的当前文件进行比对,比对当前文件的内容与预设时间段后的文件的内容是否一致,以此判断当前文件在经过预设时间段后是否会发生改变。当当前文件与预设时间段后的文件一致时,表示当前文件在经过预设时间段之后未发生改变,当前文件已经完成文件写入,服务器可以确定当前文件所对应的文件状态为写入完成状态。否则,服务器可以确定当前文件所对应的文件状态为写入过程中状态。
在本实施例中,服务器通过获取与当前文件对应的预设时间段后的文件,将预设时间段后的文件与当前文件进行比对,当当前文件与预设时间段后的文件一致时,确定当前文件所对应的文件状态为写入完成状态,从而根据文件对应的文件状态确定写入完成的待检测文件,避免将不包括完整文件数据的当前文件记作待检测文件,有效的提高了获取待检测文件的准确性。
在一个实施例中,服务器还可以获取文件生成策略,根据文件生成策略检测当前文件所对应的文件状态。具体的,文件生成策略可以是预先设置的生成文件的策略,文件生成策略包括文件格式信息。发送端可以根据文件生成策略生成文件,服务器可以根据文件生成策略对获取到的当前文件进行解析。文件生成策略可以设置在预设配置信息中,不同文件所对应的文件生成策略之间可以是不一样的。服务器可以获取文件生成策略,根据文件生成策略确定当前文件所对应的标准文件尾。标准文件尾是指按照文件格式信息所确定的文件应当包括的文件尾信息。服务器可以从当前文件中检测是否包括标准文件尾。当当前文件包括标准文件尾时,表示当前文件已经完成文件写入,服务器可以确定当前文件所对应的文件状态为写入完成状态。否则,服务器可以确定当前文件所对应的文件状态为写入过程中状态。
在本实施例中,服务器通过获取文件生成策略,检测获取到的当前文件是否包括标准文件尾,当当前文件包括标准文件尾时,确定当前文件所对应的文件状态为写入完成状态,从而根据文件对应的文件状态确定写入完成的待检测文件,避免将不包括完整文件数据的当前文件记作待检测文件,有效的提高了获取待检测文件的准确性。
在一个实施例中,如图4所示,上述识别待检测文件对应的更新状态的步骤包括:
步骤402,获取待检测文件对应的当前更新标记码。
步骤404,获取待检测文件所对应的上一个文件的文件更新标记码。
步骤406,将当前更新标记码与文件更新标记码进行比对,根据比对结果确定待检测文件对应的更新状态。
服务器获取到待检测文件之后,可以通过待检测文件对应的更新标记码检测待检测文件对应的更新状态。更新标记码可以是用于标记待检测文件更新情况的信息。例如,更新标记码具体可以是待检测文件对应的MD5码。当待检测文件的内容发送变动时,待检测文件所对应的MD5码也会发生改变。服务器可以根据MD5码所对应的信息摘要算法对待检测文件进行处理,生成待检测文件所对应的MD5码。服务器可以将待检测文件所对应的MD5码记作当前更新标记码。
服务器可以在获取到待检测文件之后,将待检测文件进行缓存,以便从缓存数据中再次读取文件数据。服务器可以从缓存数据中获取待检测文件所对应的上一个文件。上一个文件与待检测文件所对应的传输网关是一致的,上一个文件可以是该网关在待检测文件之前传输的不同版本的文件,上一个文件与待检测文件的文件标识是一致的。可以理解的,上一个文件与待检测文件是相对的。服务器可以将当前获取并且检测的文件记作待检测文件。当服务器对待检测文件检测结束,开始获取下一个文件进行检测时,待检测文件可以是下一个文件所对应的上一个文件。服务器可以获取上一个文件所对应的更新标记码,将上一个文件所对应的更新标记码记作文件更新标记码。
服务器可以将当前更新标记码与文件更新标记码进行比对,判断当前更新标记码与文件更新标记码是否相同,得到当前更新标记码与文件更新标记码之间的比对结果。服务器可以根据比对结果确定待检测文件对应的更新状态。具体的,当当前更新标记码与文件更新标记码不相同时,确定待检测文件相较于上一个文件已经发生了变更或更新,服务器可以确定待检测文件所对应的更新状态为已更新状态。否则,表示待检测文件与上一个文件相同,服务器可以确定待检测文件所对应的更新状态为未更新状态。
在其中一个实施例中,当服务器确定待检测文件所对应的更新状态为未更新状态时,服务器可以确定待检测文件为已获取过的重复文件,服务器可以删除待检测文件,不需要将重复的文件发送至接收端,继续对下一个待检测文件进行检测,有效的节省了文件传输所需消耗的通信资源。
在本实施例中,通过获取待检测文件对应的当前更新标记码,以及上一个文件对应的文件更新标记码。将当前更新标记码与文件更新标记码进行比对,根据比对结果确定待检测文件对应的更新状态,服务器通过待检测文件对应的更新标记码确定待检测文件是否发生变动或更新,从而识别待检测文件对应的更新状态,不需要比对待检测文件包括的所有内容,有效的提高了识别待检测文件对应更新状态的效率。
在一个实施例中,如图5所示,在获取待检测文件对应的文件标识,以及历史更新信息之后,上述方法还包括:
步骤502,根据文件标识和历史更新信息生成待检测文件信息。
步骤504,确定文件检测节点所属的节点集群。
步骤506,将待检测文件信息在节点集群中进行广播,使得节点集群中的文件检测节点根据历史更新信息,对文件标识对应的文件更新信息进行更新。
与发送端通过多路网关传输文件相对应的,为了避免单点故障对文件传输效率的影响,服务器也可以通过节点集群获取并且检测待检测文件。节点集群中可以包括两个或者两个以上的文件检测节点,文件检测节点具体可以是服务器中的文件检测组件,服务器可以通过文件检测节点对文件进行检测。具体的,节点集群包括的文件检测节点可以分别配置用于获取不同路网关传输的文件进行检测。用户可以根据实际应用需求配置文件检测节点与文件传输网关之间的映射关系,文件检测节点与网关之间的映射关系具体可以是一对一的关系,也可以是一对多的关系,还可以是多对一或者多对多的关系。文件检测节点可以执行上述文件检测方法实施例中的步骤,对获取的待检测文件进行检测。
文件检测节点可以根据预先配置的映射关系,通过目录、文件地址或者文件获取请求等方式获取对应网关传输的待检测文件。在确定待检测文件处于已更新状态,获取待检测文件对应的文件标识和历史更新信息之后,可以根据文件标识和历史更新信息生成待检测文件对应的待检测文件信息。服务器可以确定文件检测节点所属的节点集群,将待检测文件信息在节点集群中进行广播。
服务器可以通过广播,将待检测文件所对应的待检测文件信息广播至节点集群中的所有文件检测节点,使得节点集群中的文件检测节点根据历史更新信息对文件标识对应的文件更新信息进行更新。其中,节点集群中的文件检测节点可以将历史更新信息与文件更新信息进行比对,根据比对结果对文件更新信息进行更新。可以理解的,文件检测节点对文件更新信息进行更新的方式与上述实施例中根据历史更新信息对文件更新信息进行更新的方式相类似,故在此不再赘述。
在其中一个实施例中,文件检测节点也可以接收节点集群中广播的待更新文件信息,获取待更新文件信息中包括的待更新文件标识以及参考更新信息,获取与待更新文件标识对应的待更新信息,根据参考更新信息对待更新信息进行更新。待更新文件信息是接收到节点集群中广播的文件信息,可以是其他文件检测节点所生成并且广播的待检测文件信息。当待更新文件标识所对应的待更新信息包括参考更新信息时,文件检测节点可以忽略该待更新文件信息,继续对各自对应的待检测文件进行检测或者接收广播的下一个待更新文件信息。当待更新文件标识所对应的待更新信息不包括参考更新信息时,文件检测节点可以根据参考更新信息对待更新信息进行更新,以此保证待更新信息的准确性。
在本实施例中,服务器可以通过节点集群中的文件检测节点获取待检测文件,以及对待检测文件进行检测。当文件检测节点各自获取到待检测文件对应的文件标识以及历史更新信息之后,根据文件标识和历史更新信息生成待检测文件信息,并且将待检测文件信息在文件检测节点所属的节点集群中进行广播,使得节点集群中的所有文件检测节点根据历史更新信息对文件更新信息进行更新。服务器可以通过节点集群对外统一输出最新更新的非重复文件,即使在其中一个文件检测节点出现单点故障时,也能保持对文件进行检测,有效的提高了文件检测的效率和鲁棒性。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种文件检测装置,包括:文件获取模块602、信息获取模块604、文件检测模块606和信息更新模块608,其中:
文件获取模块602,用于获取待检测文件。
信息获取模块604,用于识别待检测文件对应的更新状态;当待检测文件处于已更新状态时,获取待检测文件对应的文件标识,以及历史更新信息。
文件检测模块606,用于获取文件标识对应的文件更新信息,根据文件更新信息对历史更新信息进行检测。
信息更新模块608,用于当文件更新信息不包括历史更新信息时,确定待检测文件为目标更新文件,根据历史更新信息对文件更新信息进行更新。
在一个实施例中,上述文件获取模块602还用于获取预设配置信息,预设配置信息包括至少一个文件地址;根据文件地址获取对应的当前文件;检测当前文件对应的文件状态,当文件状态为写入完成状态时,确定当前文件作为待检测文件。
在一个实施例中,上述文件获取模块602还用于获取与当前文件对应的预设时间段后的文件;将预设时间段后的文件与当前文件进行比对;当当前文件与预设时间段后的文件一致时,确定当前文件所对应的文件状态为写入完成状态。
在一个实施例中,上述信息获取模块604还用于获取待检测文件对应的当前更新标记码;获取待检测文件所对应的上一个文件的文件更新标记码;将当前更新标记码与文件更新标记码进行比对,根据比对结果确定待检测文件对应的更新状态。
在一个实施例中,上述文件检测装置还包括集群广播模块,用于根据文件标识和历史更新信息生成待检测文件信息;确定文件检测节点所属的节点集群;将待检测文件信息在节点集群中进行广播,使得节点集群中的文件检测节点根据历史更新信息,对文件标识对应的文件更新信息进行更新。
在一个实施例中,集群广播模块还用于接收节点集群中广播的待更新文件信息;获取待更新文件信息中包括的待更新文件标识以及参考更新信息;获取与待更新文件标识对应的待更新信息,根据参考更新信息对待更新信息进行更新。
关于文件检测装置的具体限定可以参见上文中对于文件检测方法的限定,在此不再赘述。上述文件检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储文件检测数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件检测方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述文件检测方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述文件检测方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。