一种文件完整性检查方法及装置与流程

文档序号:11154701阅读:312来源:国知局
一种文件完整性检查方法及装置与制造工艺

本发明涉及云存储技术领域,特别是涉及一种文件完整性检查方法及装置。



背景技术:

在虚拟化管理平台,会大量地创建虚拟机,在创建完虚拟机后需要为虚拟机安装系统,而安装系统需要不同系统的镜像文件,一般会将镜像文件上传到服务端进行管理。由于镜像文件都比较大,而且存放时间长,在管理中需要周期性的对文件进行完整性检查,以保证为用户提供镜像可用性的信息。

现有技术中,对文件进行完整性检查,是通过计算文件的循环冗余校验码,将当前计算出的校验码与文件原始的校验码比对,判断是否相同,来检查当前文件是否完整。然而,对于容量较大的文件计算校验码耗时长,导致文件的完整性检查非常耗时。



技术实现要素:

本发明的目的是提供一种文件完整性检查方法及装置,可减少文件完整性检查的耗时。

为实现上述目的,本发明提供如下技术方案:

一种文件完整性检查方法,包括:

将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码;

根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。

可选地,将所述文件分成容量相等的多个片段。

可选地,所述以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码包括:

创建分别与各片段文件对应的多个线程,每一所述线程以文件流方式读取对应的片段文件,计算所读取片段文件的循环冗余校验码。

可选地,所述根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整包括:

分别将计算得到的各片段文件的循环冗余校验码,与对应片段文件的原始循环冗余校验码进行比对,检查各片段文件是否完整。

可选地,还包括:检测文件的容量大小;

所述将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码包括:当所述文件的容量大于阈值时,将所述文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码。

一种文件完整性检查装置,包括:

计算模块,用于将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码;

检查模块,用于根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。

可选地,所述计算模块用于将文件分成多个片段包括:

所述计算模块具体用于将所述文件分成容量相等的多个片段。

可选地,所述计算模块用于以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码包括:

所述计算模块具体用于创建分别与各片段文件对应的多个线程,每一所述线程以文件流方式读取对应的片段文件,计算所读取片段文件的循环冗余校验码。

可选地,所述检查模块用于根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整包括:

所述检查模块具体用于分别将计算得到的各片段文件的循环冗余校验码,与对应片段文件的原始循环冗余校验码进行比对,检查各片段文件是否完整。

可选地,还包括检测模块,用于检测文件的容量大小;

所述计算模块用于将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码包括:

所述计算模块具体用于当所述文件的容量大于阈值时,将所述文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码。

由上述技术方案可知,本发明所提供的文件完整性检查方法及装置,将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码,根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。本文件完整性检查方法及装置中,将文件分成多个片段,以并行方式分别读取各片段文件进行校验码计算,与现有计算整个文件的循环冗余校验码方法相比,以并行方式计算片段文件校验码的耗时少,减少了计算时间,可减少文件完整性检查的耗时。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种文件完整性检查方法的流程图;

图2为本发明实施例提供的一种文件完整性检查装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

请参考图1,本发明实施例提供的一种文件完整性检查方法,包括步骤:

S10:将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码。

对文件数据进行逻辑分段,分段是连续的,分成多个片段文件。

以并行方式同时分别读取各片段文件,在读取中计算片段文件的循环冗余校验码,可获得各片段文件的循环冗余校验码。

S11:根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。

可以看出,本实施例文件完整性检查方法,将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码,根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。本实施例文件完整性检查方法中,将文件分成多个片段,以并行方式分别读取各片段文件进行校验码计算,与现有计算整个文件的循环冗余校验码方法相比,以并行方式计算片段文件校验码的耗时少,减少了计算时间,可减少文件完整性检查的耗时。

下面对本实施例文件完整性检查方法作进一步说明。本实施例文件完整性检查方法包括步骤:

S10:将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码。

对文件数据进行逻辑分段,分段是连续的,分成多个片段文件。

分成的各片段文件的容量大小可以相等,也可以不同。优选的,文件分成的各片段文件容量相等,这样有助于计算校验码时计算时间具有一致性。例如,大小为1G的文件可以分为四段,每片段为250M。

具体的,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码的方法包括:创建分别与各片段文件对应的多个线程,每一所述线程以文件流方式读取对应的片段文件,计算所读取片段文件的循环冗余校验码。

创建多个线程,各线程分别对应各片段文件,每一线程读取对应的片段文件,各线程同时进行读取。具体的,每一线程创建一个文件流,以文件流方式读取片段文件,在读取中计算片段文件的循环冗余校验码。

S11:根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。

由于文件的循环冗余校验码是分段计算的,每一片段文件对应一个循环冗余校验码,因此在检查文件完整性时相应需要分别对每片段文件进行完整性检查,从而检查整个文件是否完整。

具体方法为:分别将计算得到的各片段文件的循环冗余校验码,与对应片段文件的原始循环冗余校验码进行比对,检查各片段文件是否完整。若计算得到的片段文件的校验码与该片段文件的原始校验码一致,则表明该片段文件当前完整,若不一致则表明该片段文件当前不完整。若各个片段文件均完整,则表明整个文件完整。

进一步的,本实施例文件完整性检查方法还包括:检测文件的容量大小。

所述步骤S10将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码包括:当所述文件的容量大于阈值时,将所述文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码。

因此,本实施例文件完整性检查方法,将文件分成多个片段,以并行方式分别读取各片段文件进行校验码计算,与现有计算整个文件的循环冗余校验码方法相比,以并行方式计算片段文件校验码的耗时少,减少了计算时间,提高了计算效率,可减少文件完整性检查的耗时。

相应的,请参考图2,本发明实施例还提供一种文件完整性检查装置,包括:

计算模块20,用于将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码;

检查模块21,用于根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。

可以看出,本实施例文件完整性检查装置包括计算模块和检查模块,计算模块将文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码,检查模块根据计算得到的各片段文件的循环冗余校验码,检查文件是否完整。本实施例文件完整性检查装置中,将文件分成多个片段,以并行方式分别读取各片段文件进行校验码计算,与现有计算整个文件的循环冗余校验码方法相比,以并行方式计算片段文件校验码的耗时少,减少了计算时间,可减少文件完整性检查的耗时。

本实施例中,计算模块20将文件分成多个片段,分成的各片段文件的容量大小可以相等,也可以不同。优选的,所述计算模块20具体用于将所述文件分成容量相等的多个片段,这样有助于计算校验码时计算时间具有一致性。

所述计算模块20以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码,具体为:所述计算模块20具体用于创建分别与各片段文件对应的多个线程,每一所述线程以文件流方式读取对应的片段文件,计算所读取片段文件的循环冗余校验码。

计算模块创建多个线程,各线程分别对应各片段文件,每一线程读取对应的片段文件,各线程同时进行读取。具体的,每一线程创建一个文件流,以文件流方式读取片段文件,在读取中计算片段文件的循环冗余校验码。

由于文件的循环冗余校验码是分段计算的,每一片段文件对应一个循环冗余校验码,因此在检查文件完整性时相应需要分别对每片段文件进行完整性检查,从而检查整个文件是否完整。具体的,所述检查模块21具体用于分别将计算得到的各片段文件的循环冗余校验码,与对应片段文件的原始循环冗余校验码进行比对,检查各片段文件是否完整。若计算得到的片段文件的校验码与该片段文件的原始校验码一致,则表明该片段文件当前完整,若不一致则表明该片段文件当前不完整。若各个片段文件均完整,则表明整个文件完整。

进一步的,本实施例文件完整性检查装置还包括检测模块,用于检测文件的容量大小;所述计算模块20具体用于当所述文件的容量大于阈值时,将所述文件分成多个片段,以并行方式分别读取各片段文件,计算所读取片段文件的循环冗余校验码。

以上对本发明所提供的一种文件完整性检查方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1