文件的压缩、解压缩方法及设备与流程

文档序号:17320167发布日期:2019-04-05 21:30阅读:326来源:国知局
文件的压缩、解压缩方法及设备与流程
本发明涉及计算机领域,尤其涉及一种文件的压缩、解压缩方法及设备。
背景技术
:随着互联网的迅速发展,大数据文件的存储也逐渐成为一个值得研究的问题,因为大数据文件占用内存较大,因此常采用将大数据文件压缩的方式来进行存储。现有技术中对大数据文件(源文件)进行压缩存储时,通常将源文件划分为固定大小的原始分块,进一步对固定大小的原始分块进行压缩,得到压缩分块,然后按照原始分块在源文件中的顺序将所有的压缩分块拼接为待存储的文件,再根据该待存储的文件以及压缩后文件的索引得到压缩后文件。同时,为了实现数据读取,还需要另外建立并存储一套源文件索引。其中,源文件的索引用于指示目标数据在原始分块中的位置,压缩后文件索引用于指示目标数据所属的压缩分块在压缩后文件中的位置。然而,现有的数据文件压缩方式需要建立两套压缩系统,浪费了系统开销和存储空间。技术实现要素:本发明实施例提供一种文件的压缩、解压缩方法及设备,以实现提高数据访问效率,减少系统开销和存储空间。第一方面,本发明实施例提供一种文件的压缩方法,包括:根据不固定长度的分块方式对源文件进行分块,得到多个原始分块;根据所述多个原始分块,得到各所述原始分块对应的压缩分块;对多个所述压缩分块进行存储,根据各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量,得到压缩文件。在一种可能的设计中,所述压缩文件包括数据区以及尾部,其中,所述数据区包括多个压缩分块,所述尾部包括各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量在一种可能的设计中,所述根据不固定长度的分块方式对源文件进行分块,得到多个原始分块,包括:根据所述源文件中各数据元的长度对所述源文件进行分块,得到多个原始分块,其中,所述原始分块中包含的数据为一个或多个完整的数据元。在一种可能的设计中,所述根据所述多个原始分块,得到各所述原始分块对应的压缩分块,包括:针对每一原始分块,对所述原始分块进行压缩处理,得到压缩数据;判断所述对所述原始分块进行压缩处理的过程中是否存在额外数据;若是,则获取所述额外数据;其中,所述额外数据至少包括纠错码信息、加解密信息或解压信息中的至少一种;根据所述压缩数据和所述额外数据,得到所述压缩分块。在一种可能的设计中,所述根据所述压缩数据和所述额外数据,得到所述压缩分块之前,所述方法还包括:根据所述原始分块的大小、所述压缩数据的大小、所述压缩数据以及所述额外数据在内的参数,通过预设算法得到用于校验所述压缩分块完整性的校验码;所述根据所述压缩分块数据和所述额外数据,得到所述压缩分块,包括:根据所述原始分块的大小、所述压缩数据的大小、所述校验码、所述压缩数据以及所述额外数据,得到所述压缩分块。在一种可能的设计中,所述方法还包括:判断所述压缩文件是否存在扩展数据,若是,则获取所述扩展数据;所述数据区还包括所述扩展数据,所述扩展数据至少包括所述源文件的大小、已删除的压缩分块的标识或新增压缩分块的插入位置。在一种可能的设计中,所述原始分块的偏移量为所述原始分块在所述源文件中的偏移量;所述压缩分块的偏移量为所述压缩分块在所述压缩文件中的偏移量。在一种可能的设计中,各所述压缩分块顺序存储,第n块原始分块的偏移量为根据第n块原始分块的起始位置和第n-1块原始分块的起始位置确定的增量偏移;第n块压缩分块的偏移量为根据第n块压缩分块的起始位置和第n-1块压缩分块的起始位置确定的增量偏移。第二方面,本发明实施例提供一种文件的解压缩方法,包括:在收到读取压缩文件的读取指令后,获取所述压缩文件中的各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量;所述读取指令包括目标数据在源文件中的偏移量以及目标数据的长度;根据所述目标数据在源文件中的偏移量、各所述压缩分块的偏移量、对应的原始分块的偏移量以及目标数据的长度,从所述压缩文件中获取所述目标数据对应的目标压缩分块;对所述目标压缩分块进行解压缩,得到所述目标数据。在一种可能的设计中,所述获取所述压缩文件中的各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量,包括:读取所述压缩文件的尾部,从所述压缩文件的尾部获取所述压缩文件中的各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量;其中,所述压缩文件包括数据区以及尾部,其中,所述数据区包括多个压缩分块,所述尾部包括各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量。在一种可能的设计中,所述原始分块的偏移量为所述原始分块在所述源文件中的偏移量;所述压缩分块的偏移量为所述压缩分块在所述压缩文件中的偏移量。在一种可能的设计中,各所述压缩分块顺序存储,第n块原始分块的偏移量为根据第n块原始分块的起始位置和第n-1块原始分块的起始位置确定的增量偏移;第n块压缩分块的偏移量为根据第n块压缩分块的起始位置和第n-1块压缩分块的起始位置确定的增量偏移。在一种可能的设计中,根据所述目标数据在源文件中的偏移量、各所述压缩分块的偏移量、对应的原始分块的偏移量以及所述目标数据的长度,从所述压缩文件中获取所述目标数据对应的目标压缩分块,包括:根据各所述原始分块的增量偏移,确定各所述原始分块的绝对偏移;根据各所述原始分块的绝对偏移和所述目标数据在源文件中的绝对偏移以及目标数据的长度,得到目标数据对应的目标原始分块的标识;根据所述目标原始分块的标识,获取目标压缩分块的标识;根据所述目标压缩分块的标识与各所述所述压缩分块的增量偏移,从所述压缩文件中获取目标数据对应的目标压缩分块。在一种可能的设计中,所述根据所述目标压缩分块的标识与各所述所述压缩分块的增量偏移,获取目标数据对应的目标压缩分块,包括:根据所述目标压缩压缩分块的标识和各所述压缩分块的增量偏移,得到所述目标压缩分块的绝对偏移;根据所述目标压缩分块的绝对偏移,从所述压缩文件中获取所述目标压缩分块。在一种可能的设计中,所述根据所述目标压缩分块的绝对偏移,从所述压缩文件中获取所述目标压缩分块之前,还包括:根据各所述原始分块的绝对偏移和所述目标数据在源文件中的绝对偏移,得到目标数据在所述目标原始分块中的相对偏移;所述对所述目标压缩分块进行解压缩,得到所述目标数据,包括:对所述目标压缩分块进行解压缩,得到解压后分块;根据所述目标数据在所述目标原始分块中的相对偏移以及目标数据的长度,在所述解压后分块中读取所述目标数据。第三方面,本发明实施例提供一种文件的压缩装置,包括:分块模块,根据不固定长度的分块方式对源文件进行分块,得到多个原始分块;压缩模块,用于根据所述多个原始分块,得到各所述原始分块对应的压缩分块;存储模块,对多个所述压缩分块进行存储,根据各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量,得到压缩文件;在一种可能的设计中,所述压缩文件包括数据区以及尾部,其中,所述数据区包括多个压缩分块,所述尾部包括各所述压缩分块的偏移量以及各所述压缩分块关联的原始分块的偏移量。在一种可能的设计中,所述分块模块具体用于:根据所述源文件中各数据元的长度对所述源文件进行分块,得到多个原始分块,其中,所述原始分块中包含的数据为一个或多个完整的数据元。在一种可能的设计中,所述压缩模块具体用于:针对每一原始分块,对所述原始分块进行压缩处理,得到压缩数据;判断对所述原始分块进行压缩处理的过程中是否存在额外数据;若是,则获取所述额外数据;其中,所述额外数据至少包括纠错码信息、加解密信息或解压信息中的至少一种;根据所述压缩数据和所述额外数据,得到所述压缩分块。在一种可能的设计中,还包括:校验模块;所述校验模块,用于根据所述原始分块的大小、所述压缩数据的大小、所述压缩数据以及所述额外数据在内的参数,通过预设算法得到用于校验所述压缩分块完整性的校验码;所述压缩模块还用于:根据所述原始分块的大小、所述压缩数据的大小、所述校验码、所述压缩数据以及所述额外数据,得到所述压缩分块。在一种可能的设计中,还包括:扩展模块;所述扩展模块,用于判断所述压缩文件是否存在扩展数据,若是,则获取所述扩展数据;所述数据区还包括所述扩展数据,所述扩展数据至少包括所述源文件的大小、已删除的压缩分块的标识或新增压缩分块的插入位置。在一种可能的设计中,所述原始分块的偏移量为所述原始分块在所述源文件中的偏移量;所述压缩分块的偏移量为所述压缩分块在所述压缩文件中的偏移量。在一种可能的设计中,各所述压缩分块顺序存储,第n块原始分块的偏移量为根据第n块原始分块的起始位置和第n-1块原始分块的起始位置确定的增量偏移;第n块压缩分块的偏移量为根据第n块压缩分块的起始位置和第n-1块压缩分块的起始位置确定的增量偏移。第四方面,本发明实施例提供一种文件的解压缩装置,包括:读取模块,在收到读取压缩文件的读取指令后,获取所述压缩文件中的各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量;所述读取指令包括目标数据在源文件中的偏移量以及目标数据的长度;获取模块,用于根据所述目标数据在源文件中的偏移量、各所述压缩分块的偏移量、对应的原始分块的偏移量以及目标数据的长度,从所述压缩文件中获取所述目标数据对应的目标压缩分块;解压缩模块,用于对所述目标压缩分块进行解压缩,得到所述目标数据。在一种可能的设计中,所述读取模块具体用于:读取所述压缩文件的尾部,从所述压缩文件的尾部获取所述压缩文件中的各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量;其中,所述压缩文件包括数据区以及尾部,其中,所述数据区包括多个压缩分块,所述尾部包括各所述压缩分块的偏移量以及各所述压缩分块对应的原始分块的偏移量。在一种可能的设计中,所述原始分块的偏移量为所述原始分块在所述源文件中的偏移量;所述压缩分块的偏移量为所述压缩分块在所述压缩文件中的偏移量。在一种可能的设计中,各所述压缩分块顺序存储,第n块原始分块的偏移量为根据第n块原始分块的起始位置和第n-1块原始分块的起始位置确定的增量偏移;第n块压缩分块的偏移量为根据第n块压缩分块的起始位置和第n-1块压缩分块的起始位置确定的增量偏移。在一种可能的设计中,所述获取模块具体用于:根据各所述原始分块的增量偏移,确定各所述原始分块的绝对偏移;根据各所述原始分块的绝对偏移和所述目标数据在源文件中的绝对偏移以及目标数据的长度,得到目标数据对应的目标原始分块的标识;根据所述目标原始分块的标识,获取目标压缩分块的标识;根据所述目标压缩分块的标识与各所述所述压缩分块的增量偏移,从所述压缩文件中获取目标数据对应的目标压缩分块。在一种可能的设计中,所述获取模块还具体用于:根据所述目标压缩压缩分块的标识和各所述压缩分块的增量偏移,得到所述目标压缩分块的绝对偏移;根据所述目标压缩分块的绝对偏移,从所述压缩文件中获取所述目标压缩分块。在一种可能的设计中,所述获取模块还具体用于:所述根据所述目标压缩分块的绝对偏移,从所述压缩文件中获取所述目标压缩分块之前,根据各所述原始分块的绝对偏移和所述目标数据在源文件中的绝对偏移,得到目标数据在所述目标原始分块中的相对偏移;所述解压缩分块具体用于:对所述目标压缩分块进行解压缩,得到解压后分块;根据所述目标数据在所述目标原始分块中的相对偏移,在所述解压后分块中读取所述目标数据。第五方面,本发明实施例提供一种文件压缩及解压缩设备,包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面、第二方面以及第一方面、第二方面各种可能的设计所述的文件的压缩及解压缩方法。第六方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面、第二方面以及第一方面、第二方面各种可能的设计所述的文件的压缩及解压缩方法。本发明实施例提供的文件的压缩方法及设备,该压缩方法包括:根据不固定长度的分块方式对源文件进行分块,得到多个原始分块。根据多个原始分块,得到各原始分块对应的压缩分块。对多个压缩分块进行存储,根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,得到压缩文件。可以避免将大数据文件划分为固定大小的分块造成时需要解压至少两个压缩分块,从而提高数据访问效率,并且通过根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,得到压缩文件,使得压缩文件同时具备压缩分块的偏移量和原始分块的偏移量,避免建立两套索引系统,从而减少了系统开销和存储空间。本发明实施例提供的文件的解压缩方法及设备,该解压缩方法包括:在收到读取压缩文件的读取指令后,获取压缩文件中的各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量;读取指令包括目标数据在源文件中的偏移量以及目标数据的长度。根据目标数据在源文件中的偏移量、各压缩分块的偏移量、对应的原始分块的偏移量以及目标数据的长度,从压缩文件中获取目标数据对应的目标压缩分块。对目标压缩分块进行解压缩,得到目标数据。仅通过一套索引系统就可以完成对目标数据的查找,避免了需要单独建立两套索引系统带来的系统开销和存储空间的浪费,提高了文件查找的效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的文件的压缩、解压缩设备的结构示意图;图2为本发明实施例提供的文件的压缩方法的流程图一;图3为本发明实施例提供的文件的压缩方法的流程图二;图4为本发明实施例提供的文件的解压缩方法的流程图一;图5为本发明实施例提供的文件的解压缩方法的流程图二;图6为本发明实施例提供的源文件原始分块的结构示意图一;图7为本发明实施例提供的源文件原始分块的结构示意图二;图8为本发明实施例提供的文件的压缩装置的结构示意图一;图9为本发明实施例提供的文件的压缩装置的结构示意图二;图10为本发明实施例提供的文件的解压缩装置的结构示意图;图11为本发明实施例提供的文件压缩及解压缩设备的硬件结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例提供的文件的压缩、解压缩设备的结构示意图。本实施例提供的文件的压缩、解压缩设备可以为计算机、平板电脑、服务器、终端等设备,本实施例对该设备的实现方式不做特别限制。本实施例提供的文件的压缩、解压缩设备还可以为存储设备,该存储设备为独立与上述计算机等设备的设备,该存储设备具有自己的接口和协议,通过同轴电缆、网线、光纤等方式与计算机连接,该存储设备可以对计算机提供存储空间。图1示出了本实施例提供的压缩、解压缩设备为存储设备时的一种可能的实现方式,本实施例的文件的压缩、解压缩设备包括软件和硬件。其中软件包含操作系统和软件模块。其中,操作系统提供软件运行的基本操作系统。软件模块可以实现数据的读取以及修复等功能。硬件包括多个固态硬盘、接口卡、中央处理器(centralprocessingunit,cpu)以及内存。其中,多个固态硬盘可以提供存储空间。接口卡,用于连接计算机主机或者其它存储设备,其它存储设备上存储有远程复制等冗余数据。cpu和内存可以提供操作系统和软件模块所需的基本硬件平台。图1示出了本发明实施例的文件的压缩、解压缩设备一种可能的结构,对于其它的文件的压缩、解压缩设备设备,只要具备硬盘、cpu等部件,都属于本申请的保护范畴。对于其它的结构,本实施例此处不再赘述。基于现有技术在进行文件的解压缩时需要依靠两套索引系统,对应地,在压缩时需要建立两套索引系统,导致系统开销和存储空间的浪费,本发明实施例提供的文件压缩方法只需要建立一套索引系统即可完成文件的存储,即在压缩文件的尾部设置压缩分块的增量偏移以及各压缩分块关联的原始分块的增量偏移,即可实现解压缩,减少了系统开销和存储空间。基于现有技术中在对源文件进行压缩存储时,通常将源文件划分为固定大小的原始分块,进一步对固定大小的原始分块进行压缩,得到压缩分块,再按照原始分块在源文件中的顺序将所有的压缩分块拼接为待存储的文件,固定大小的原始分块会造成若待读取数据恰好横跨两个不同原始分块,那么在提取该数据时则需要解压至少两个压缩分块才能够完整的提取该数据,本发明实施例提供了一种文件的压缩方法,根据数据的完整性,即连续性调整原始分块的大小,使得在读取数据时,不需要解压至少两个压缩分块,提高了解压缩效率。同时,在解压过程中,对于目标数据存在于多个分块中的情况只能以顺序的方式对压缩分块进行解压,本发明实施例提供一种文件解压缩方法,当目标数据存储在多个压缩分块时,能够首先根据目标数据的长度确定目标数据所在的所有压缩分块,从而实现对压缩分块的并行解压。首先,下面结合图2对本发明实施例提供的文件的压缩方法进行详细介绍,图2为本发明实施例提供的文件的压缩方法的流程图一。如图2所示,该方法包括:s201、根据不固定长度的分块方式对源文件进行分块,得到多个原始分块。其中源文件是指当前需要进行压缩存储的文件,首先根据不固定长度的分块方式对源文件进行分块,得到多个原始分块,具体的,本发明实施例允许根据目标数据的连续性与完整性自行调整原始分块的大小,因此采用不固定长度的分块方式对源文件进行分块,假设在对文件进行压缩之前已知某个目标数据为一个完整的数据元,则可以将该目标数据放在一个原始分块中,其中每一个完整的数据元对应的长度不固定。在一些极端情况下,若目标数据过大,导致将该目标数据放在一个原始分块中,原始分块过大的情况,本发明实施例可以将该目标数据进行分块存储至不同的原始分块中。进一步地,因为原始分块的长度不固定,并且每个原始分块中的数据均保持完整性,从而能够尽可能的保证目标数据仅存在于一个原始分块中,尽量避免一个完整的数据存在于两个原始分块中的情况。s202、根据多个原始分块,得到各原始分块对应的压缩分块。在根据数据完整性得到多个原始分块之后,对原始分块进行压缩处理,例如可以采用lz4算法对多个原始分块进行压缩处理,还例如可以采用deflate算法对多个原始分块进行压缩处理,本发明实施例对进行压缩处理的压缩算法不做特别限制,凡是能实现压缩功能的算法均属于本发明实施例的保护范围。在对各原始分块进行压缩处理之后,得到各原始分块对应的压缩数据,其中各原始分块对应的压缩数据是指对原始分块中的数据进行压缩处理之后得到的数据,进一步再将各原始分块对应的压缩数据以及各自对应的相关数据一并存储,得到各原始分块对应的压缩分块。s203、对多个压缩分块进行存储,根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,得到压缩文件。其中,原始分块的偏移量为原始分块在源文件中的偏移量;压缩分块的偏移量为压缩分块在压缩文件中的偏移量。其中,本实施例中的偏移量可以为绝对偏移和增量偏移。绝对偏移为相对于第一个分块的起始位置的偏移,增量偏移为相对于前一个分块的起始位置的偏移。本领域技术人员可以理解,根据绝对偏移可以获取增量偏移,根据增量偏移可以获取绝对偏移。本实施例对偏移量的实现方式不做具体限制。为了便于说明,本实施例以增量偏移为例进行说明。压缩分块的增量偏移是指当前压缩分块的起始位置相对于前一个压缩分块的起始位置的偏移量,例如可以在对压缩分块进行存储之后,根据各压缩分块的存储位置得到压缩分块的增量偏移,还例如可以在对压缩分块存储之前首先对存储区域进行划分,从而得到压缩分块的增量偏移,本发明实施例对此不做特别限制。压缩分块对应的原始分块的增量偏移是指当前原始分块的起始位置相对于前一个原始分块的起始位置的偏移量,根据各压缩分块的增量偏移以及各压缩分块对应的原始分块的增量偏移,对多个压缩分块进行存储,得到压缩文件。其中,原始分块的增量偏移的获取方式与压缩分块的增量偏移的获取方式类似,本实施例此处不再赘述。可选地,该各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量可以存储在压缩文件的头部,也可以存储在压缩文件的尾部,本实施例对存储位置不做特别限制。本发明实施例提供的文件的压缩方法,包括:根据不固定长度的分块方式对源文件进行分块,得到多个原始分块。根据多个原始分块,得到各原始分块对应的压缩分块。对多个压缩分块进行存储,根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,得到压缩文件。可以避免将大数据文件划分为固定大小的分块造成时需要解压至少两个压缩分块,从而提高数据访问效率,并且通过根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,得到压缩文件,使得压缩文件同时具备压缩分块的偏移量和原始分块的偏移量,避免建立两套索引系统,从而减少了系统开销和存储空间。在上述实施例的基础上,本发明实施例提供的文件的压缩方法还可以包括头部,其中头部中的信息可以对文件的压缩方法提供验证和解释,下面结合图3对本发明实施例提供的文件的压缩方法进行进一步地详细介绍。图3为本发明实施例提供的文件的压缩方法的流程图二,如图3所示,该方法包括:s301、根据源文件中各数据元的长度对源文件进行分块,得到多个原始分块,其中,原始分块中包含的数据为一个或多个完整的数据元。具体的,本发明实施例可以根据目标数据的连续性与完整性自行调整原始分块的大小,为了尽可能的保证目标数据在一个原始分块中,因此根据各数据元的长度对源文件进行分块,从而得到原始分块,其中原始分块中包含的数据为一个或多个完整的数据元。s302、针对每一原始分块,对原始分块进行压缩处理,得到压缩数据。对得到的多个原始分块中的每一个原始分块分别进行压缩处理,例如可以采用lz4算法进行压缩处理,本发明实施例对压缩处理的具体方式不做特别限制,在进行压缩处理之后得到个原始分块对应的压缩数据。s303、判断对原始分块进行压缩处理的过程中是否存在额外数据;若是,则执行s304,若否,则执行s305。其中,额外数据至少包括纠错码信息、加解密信息或解压信息中的至少一种。具体地,额外数据是指针对原始分块需要存放的额外信息,其具体的数据与大小由根据不同的场景进行定义,内容不固定,例如源文件在网络传输场景下时,额外数据可以包括压缩分块的纠错码信息,还例如当前文件在安全领域的场景下时,额外数据可以包括该压缩分块的加密信息或者解密信息等,还例如该原始分块采用和其他原始分块不同的压缩算法时,该额外数据包括用于指示该该压缩算法的解压信息。s304、获取额外数据。若确定对原始分块进行压缩处理的过程中存在额外数据,则获取该额外数据。s305、根据原始分块的大小、压缩数据的大小、压缩数据以及额外数据在内的参数,通过预设算法得到用于校验压缩分块完整性的校验码。其中,校验码用于校验压缩分块的完整性,具体的,根据各原始分块可以得到各原始分块的大小,根据各压缩数据可以得到各压缩数据的大小,采用预设算法对原始分块的大小,对应的压缩数据的大小以及对应的压缩数据额外数据在内的参数进行处理,得到校验码,其中预设算法例如可以为xxhash32算法,本发明实施例对预设算法不做特别限制。进一步地,若存在额外数据,则在计算校验码是采用的参数包括额外数据,若判断不存在额外数据,仅根据原始分块的大小,压缩数据的大小以及压缩数据进行处理,得到校验码即可。s306、根据原始分块的大小、压缩数据的大小、校验码、压缩数据以及额外数据,得到压缩分块。在得到额外数据以及校验码之后,根据原始分块的大小、压缩数据的大小、校验码、压缩数据以及额外数据,得到压缩分块。在本发明实施例中,优选地按照原始分块的大小、对应的压缩数据的大小、对应的校验码、对应的压缩数据以及对应的额外数据的顺序进行存储,但是本发明实施例并不仅仅限定这一种存储方式,例如先存储额外数据或者先存储校验码等一系列存储方式,均属于本发明实施例的保护范围。s307、对多个压缩分块进行存储,根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,得到压缩文件。其中,压缩文件包括数据区以及尾部,其中,数据区包括多个压缩分块,尾部包括各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量。具体的,尾部包括各压缩分块的偏移量以及各压缩分块关联的原始分块的偏移量,根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,对多个压缩分块进行存储,得到压缩文件,其中压缩文件包括数据区以及尾部。进一步地,压缩文件的尾部还包括尾部大小、版本号、魔术数字以及尾部校验码,其中尾部大小用于指示整个尾部信息的数据大小,在本发明实施例中设置有两个完全相同的尾部大小数据,设置两个尾部大小数据便于对压缩文件进行顺序读取或者逆序读取。其中版本号表示当前存储方案的数据解释规则的版本,即可以制定不同的解释规则以满足不同扩展的解释需要,其中魔术数字是指程式设计中所谓的直接写在程式码里的具体数值,在本发明实施例中,魔术数字例如可以为“4ic\0”,还例如可以为“4iz\0”,当魔术数字为“4ic\0”时,例如可以表示所有原始分块的默认压缩算法为lz4算法,当魔术数字为“4iz\0”时,例如可以表示所有原始分块的默认压缩算法为deflate算法,本发明实施例对魔术数字的具体数值以及数值所对应的具体含义不做特别限定。其中尾部校验码用于校验尾部信息的完整性,优选地由两个尾部大小、版本号、各压缩分块的增量偏移、各压缩分块对应的原始分块的增量偏移、魔术数字等数据域的数据通过预设算法求得,本发明实施例对预设算法不做特别限制。在本实施例中,压缩文件还包括头部,其中头部包括魔术数字、版本号、头部校验码,头部中的魔术数字、版本号与尾部中的魔术数字、版本号完全相同,此处不再赘述。其中头部校验码用于校验头部信息的完整性,优选地,根据预设算法对魔术数字以及版本号两个数据域的数据进行处理得到头部校验码,本发明实施例对预设算法不做特别限制,在本发明实施例中,校验压缩分块完整性的校验码采用的预设算法、获取头部校验码采用的预设算法与获取尾部校验码采用的预设算法可以相同也可以不同,本发明实施例对此不做限制。本发明实施例提供的文件的压缩方法,包括:根据不固定长度的分块方式对源文件进行分块,得到多个原始分块,针对每一原始分块,对原始分块进行压缩处理,得到压缩数据。判断原始分块是否存在额外数据;若是,则获取额外数据。根据原始分块的大小、压缩数据的大小、压缩数据以及额外数据在内的参数,得到用于校验压缩分块完整性的校验码。根据原始分块的大小、压缩数据的大小、校验码、压缩数据以及额外数据,得到压缩分块。根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,对多个压缩分块进行存储,得到压缩文件,实现了对文件的压缩存储,通过设置为每个原始分块添加额外数据,能够实现针对该分块的数据扩展,从而提高对数据压缩存储的灵活性,并且通过存储各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,只需要建立一套索引系统,减少了系统开销和存储空间。在上述实施例的基础上,本发明实施例提供的文件的压缩方法还包括,判断压缩文件是否存在扩展数据,若存在扩展数据,则获取扩展数据;对应地,数据区还包括扩展数据,其中,扩展数据至少包括源文件的大小、已删除的压缩分块的标识或新增压缩分块的插入位置。具体的,扩展数据可以根据具体的场景和需求自行定义,扩展数据也可以不存在。例如扩展数据可以包括源文件的总大小,还例如可以包括多个分块的特殊解压信息或加解密信息,还例如可以包括原始分块的删除标识和新增分块的插入位置等信息,通过设置扩展数据,可以减少总存储空间,并且扩展信息的数据变化不会影响到压缩分块中的数据提取,因此设置扩展数据可以在不影响根据源文件的索引信息提取目标数据的前提下,对存储文件进行扩展,通过添加扩展信息还可以提高利用索引提取数据的工作效率。下面结合表1对本发明实施例提供的文件的压缩方法进行进一步地详细介绍。在表1所示的实施例中,偏移量以增量偏移,偏移量存储在尾部为例进行说明。可选地,当采用增量偏移时,该压缩分块的存储顺序可以为顺序存储,从而保证可以高效的查找到压缩分块对应的原始分块。同时,对增量偏移进行存储能够节约存储空间,从而更加有效的实现对文件的压缩存储。具体地,压缩文件包括数据区以及尾部,其中,数据区包括多个压缩分块,尾部包括各压缩分块的增量偏移以及各压缩分块对应的原始分块的增量偏移。表1具体的,首先对源文件进行分块,假设得到了原始分块1、原始分块2…原始分块n,其中n表示对源文件进行分块得到的原始分块的数量,之后对原始分块1、原始分块2…原始分块n分别进行压缩处理,得到压缩数据1、压缩数据2…压缩数据n。其次判断各个原始分块是否存在额外数据,若存在,则获取各自对应的额外数据,得到额外数据1、额外数据2…额外数据n,当判断某个原始分块不存在额外数据时,则该原始数据对应的额外数据为空。进一步地,根据各原始分块得到各原始分块的大小,根据各压缩数据得到各压缩数据的大小,利用预设算法对原始分块的大小、压缩数据的大小、压缩数据以及额外数据进行处理得到校验码,例如利用预设算法对原始分块1的大小、压缩数据1的大小、压缩数据1以及额外数据1进行处理得到校验码1,得到校验码2、校验码3…校验码n的方式类似,此处不再赘述。再根据原始分块的大小、压缩数据的大小、校验码、压缩数据以及额外数据,得到压缩分块,在得到的压缩分块的过程中,要按照各自的对应关系来组成压缩分块,例如根据原始分块1的大小、压缩数据1的大小、校验码1、压缩数据1以及额外数据1,得到压缩分块1,得到压缩分块2、压缩分块3…压缩分块n的方式类似,此处不再赘述。进一步地,判断压缩文件是否存在扩展数据,当确定压缩文件存在扩展数据时,获取扩展数据,将扩展数据存储至扩展区,同时将多个压缩分块顺序存储,多个压缩分块和扩展区共同构成数据区,本发明实施例对多个压缩分块和扩展区的存储顺序不做限制。在各个压缩分块存储之后,可以得到各压缩分块存储的位置,之后获取原始分块的增量偏移以及原始分块对应的压缩分块的增量偏移,并对原始分块的增量偏移以及原始分块对应的压缩分块的增量偏移进行存储,在本发明实施例中,存储的顺序优选为压缩分块1的增量偏移、原始分块1的增量偏移、压缩分块2的增量偏移、原始分块2的增量偏移、…、压缩分块n的增量偏移、原始分块n的增量偏移,采用交叉关联存储边缘之后对压缩分块以及原始分块进行查找。再获取尾部大小、版本号、魔术数字,根据两个尾部大小、版本号、各压缩分块的增量偏移、各压缩分块对应的原始分块的增量偏移、魔术数字这些数据域的数据通过预设算法求得尾部校验码,按照尾部大小、版本号、各增量偏移、尾部大小、魔术数字、尾部校验码的顺序存储构成尾部,该存储顺序只是本发明实施例优选地一种方式,其余的存储方式也属于本发明实施例的保护范围。其次根据魔术数字以及版本号得到头部校验码,对魔术数字、版本号以及头部校验码存储构成头部,将头部、各个压缩分块、扩展区以及尾部顺序进行存储得到压缩文件。在上述表格1对应的发明实施例中,为头部中的魔术数字、版本号以及头部校验码分配的存储空间优选为4字节,为尾部中的尾部大小、版本号、各原始分块的增量偏移、各原始分块对应的压缩分块的增量偏移、魔术数字以及尾部校验码分配的存储空间优选地均为4字节。在为各压缩分块分配存储空间时,原始分块的大小、压缩数据的大小、校验码的存储空间大小优选为4字节,然而在本发明实施例中,原始分块的大小不固定,因此各压缩数据对应的存储空间以及额外数据对应的存储空间大小不固定,压缩数据1对应的存储空间大小记为k1字节,k1对应的数值为原始分块1经压缩处理后得到的压缩分块1的大小,k2至kn的含义与k1类似,此处不再赘述。其中由于尾部的各原始分块的增量偏移的数据域大小为4字节,4字节无符号整数能表示的最大值为4294967295,而原始分块的大小、压缩数据的大小、校验码的存储空间大小优选为4字节,共占用12字节的存储空间,因此设定此处压缩数据的大小上限为4294967295-12字节,即4294967283字节,相应地额外数据1的存储空间优选地设置为0至4294967283-k1字节,额外数据的存储空空间大小不超过压缩数据的大小上限,利用存储压缩数据剩余的空间存储额外数据,从而保证额外数据变化不影响压缩数据中数据的提取,额外数据2、…、额外数据3的存储空间大小类似,此处不再赘述。上述根据表1介绍的得到压缩文件的例子是指本发明实施例提供的文件压缩方法对应的一种实现方式,其中所涉及的为各数据区分配的存储空间大小、各个数据的存储顺序等只是其中的一种实现方式,本发明实施例对此不做特别限定,上述在根据表1介绍本发明实施例提供的文件的压缩方法时,是选用偏移量为增量偏移,当偏移量为绝对偏移时,其实现方式与原理类似,此次不再赘述。上述实施例介绍了一种文件的压缩方法,本发明实施例还提供一种文件的解压缩方法,用于在需要对压缩文件进行读取时使用,下面结合图4对本发明实施例提供的文件的解压缩方法进行详细介绍。图4为本发明实施例提供的文件的解压缩方法的流程图一。如图4所示,该方法包括:s401、在收到读取压缩文件的读取指令后,获取压缩文件中的各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量;读取指令包括目标数据在源文件中的偏移量以及目标数据的长度。具体的,目标数据在源文件中的偏移量可以为增量偏移或绝对偏移,其中目标数据在源文件中的绝对偏移是指目标数据的起始位置相对于源文件的起始位置的偏移量,目标数据在源文件中的增量偏移是指目标数据的起始位置相对于前一个原始分块的起始位置的偏移量,本发明实施例对目标数据的偏移量不做特别限制。其中,目标数据的长度用于在根据目标数据的偏移量得到目标数据的起始位置之后,再根据目标数据的长度得到完整的目标数据。在获取到读取指令后,从压缩文件中获取各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量。可选地,压缩文件包括数据区以及尾部,其中,数据区包括多个压缩分块,尾部包括各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量。可以读取压缩文件的尾部,从压缩文件的尾部获取压缩文件中的各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量。s402、根据目标数据在源文件中的偏移量、各压缩分块的偏移量、对应的原始分块的偏移量以及目标数据的长度,从压缩文件中获取目标数据对应的目标压缩分块。具体的,各压缩分块对应的原始分块的偏移量指示了原始分块在源文件中的位置,首先根据目标数据在源文件中的偏移量、各原始分块的偏移量以及目标数据的长度可以得到目标数据在源文件中对应的目标原始分块。在本发明实施例中,原始分块与压缩分块是相对应的,因此可以根据目标原始分块得到目标压缩分块的标识,例如当前判断目标数据位于原始分块2,则可以进一步确定对应的目标压缩分块为压缩分块2。其次各压缩分块的偏移量指示了压缩分块在压缩文件中的位置,则可以根据目标压缩分块的标识以及各压缩分块的偏移量得到目标压缩分块在压缩文件中的位置。s403、对目标压缩分块进行解压缩,得到目标数据。在得到目标压缩分块之后,首先读取目标压缩分块中原始分块的大小,之后再获取目标压缩分块中压缩数据的大小,在目标压缩分块中读取该大小对应的数据,即为目标压缩数据,对该目标压缩数据进行解压缩,得到目标数据。本发明实施例提供的文件的解压缩方法,包括:在收到读取压缩文件的读取指令后,获取压缩文件中的各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量;读取指令包括目标数据在源文件中的偏移量以及目标数据的长度。根据目标数据在源文件中的偏移量、各压缩分块的偏移量、对应的原始分块的偏移量以及目标数据的长度,从压缩文件中获取目标数据对应的目标压缩分块。对目标压缩分块进行解压缩,得到目标数据。仅通过一套索引系统就可以完成对目标数据的查找,避免了需要单独建立两套索引系统带来的系统开销和存储空间的浪费,提高了文件查找的效率。下面结合图5至图7所示的实施例,对本发明实施例提供的文件的解压缩方法进行详细介绍。为了便于说明,本实施例以偏移量为增量偏移为例,进行详细说明,对于偏移量为绝对偏移,其实现方式类似,本实施例此处不再赘述。图5为本发明实施例提供的文件的解压缩方法的流程图二。图6为本发明实施例提供的源文件原始分块的结构示意图一。图7为本发明实施例提供的源文件原始分块的结构示意图二。如图5所示,该方法包括:s501、在收到读取压缩文件的读取指令后,读取压缩文件的尾部,从压缩文件的尾部获取压缩文件中的各压缩分块的增量偏移以及各压缩分块对应的原始分块的增量偏移。在收到读取压缩文件的读取指令后,顺序读取头部中的魔术数字、版本号以及头部校验码,首先通过头部校验码来确定魔术数字和版本号的完整性,其次逆序读取尾部的魔术数字,与头部中的魔术数字比较,从而确定压缩文件的数据符合该存储方案定义的格式,之后再读取尾部信息中的尾部大小,从而确定尾部在压缩文件中的起始位置,然后根据该存储方案的规范读取尾部中的各个字段,具体的,读取尾部中各压缩分块的增量偏移以及各压缩分块关联的原始分块的增量偏移。s502、根据各原始分块的增量偏移,确定各原始分块的绝对偏移。尾部中包括各原始分块的增量偏移,根据各原始分块的增量偏移,确定各原始分块的绝对偏移,其中各原始分块的绝对偏移为各原始分块的起始位置相对于源文件的起始位置的偏移值。具体的,结合图6对各原始分块的绝对偏移进行介绍,如图6所示,将源文件分块后得到原始分块1、原始分块2、…、原始分块n,图6中虚线所标识的即为各个数据块的起始位置,x1标识了原始分块1的起始位置相对于源文件的起始位置的偏移值,即原始分块1的增量偏移,x2标识了原始分块2的起始位置相对于原始分块1的起始位置的偏移值,即原始分块2的增量偏移,类似的,x3为原始分块3的增量偏移、…、xn为原始分块n的增量偏移。进一步地,原始分块的绝对偏移为原始分块的起始位置相对于源文件起始位置的偏移值,则原始分块1的绝对偏移即为原始分块1的相对偏移x1,原始分块2的绝对偏移即为原始分块2的相对偏移x2加上原始分块1的相对偏移x1,原始分块3、…、原始分块n的绝对偏移的获取方式以此类推,此处不再赘述。在确定各原始分块的绝对偏移之后,可以构建原始分块绝对偏移表,原始分块绝对偏移表中记录各原始分块的绝对偏移,构建原始分块绝对偏移表可以提高查找效率。s503、根据各原始分块的绝对偏移、目标数据在源文件中的绝对偏移以及目标数据的长度,得到目标数据对应的目标原始分块的标识。具体的,例如可以根据各原始分块的绝对偏移和目标数据在源文件中的绝对偏移的数值进行比较,从而得到目标数据对应的目标原始分块的标识,还例如可以根据各原始分块的绝对偏移建立原始分块绝对偏移表,以及目标数据在源文件中的绝对偏移和目标数据的长度得到目标数据对应的目标原始分块的标识,本发明实施例对得到目标原始分块的标识的方式不做特别限制。具体的,若是根据各原始分块的绝对偏移建立原始分块绝对偏移表得到目标数据对应的目标原始分块的标识,则在根据各原始分块的绝对偏移建立原始分块绝对偏移表之后,根据目标数据在源文件中的绝对偏移在原始分块的绝对偏移表中查找目标数据对应的原始分块,其中查找的方式例如可以为二分查找,还例如可以为顺序查找,本发明实施例对查找的方式不做特别限制。下面结合表2进行详细介绍,表2为本发明实施例提供的原始分块绝对偏移表的一个示例。表2分块绝对偏移原始分块110原始分块220原始分块340原始分块480原始分块5100表2中示例性的给出了一个原始分块绝对偏移表,假设当前将源文件分块之后得到了5个原始分块,其对应的绝对偏移如表2中所示,还假设当前获取到的目标数据在源文件中的绝对偏移为30,目标数据的长度5,则目标数据结束时的偏移为35,根据目标数据在源文件中的绝对偏移在原始分块绝对偏移表中进行查找,经过查找可知,因为30至35位于20和40之间,因此该目标数据位于原始分块2中,则得到目标数据对应的目标原始分块的标识即为原始分块2。进一步地,仍然基于表2,假设当前获取到的目标数据在源文件中的绝度偏移为30,还假设目标数据的长度为60,则可以得到目标数据结束时的偏移为90,则根据目标数据在源文件中的绝对偏移在原始分块绝对偏移表中进行查找可知,目标数据位于原始分块2、原始分块3以及原始分块4中,通过判断目标数据所在的所有原始分块,可以得到对应的所有目标原始分块,从而实现对多个目标原始分块的并行解压,提高提取数据的效率。以上只是示例性的给出了一个例子,凡是根据各原始分块的绝对偏移、目标数据在源文件中的绝对偏移以及目标数据的长度,得到目标数据对应的目标原始分块的标识均属于本发明实施例的保护范围。s504、根据目标原始分块的标识,获取目标压缩分块的标识。在获取到目标原始分块的标识之后,可以获取目标压缩分块的标识,例如当前查找到目标原始分块为原始分块2,则对应的目标压缩分块即为压缩分块2,还例如当前查找到的目标原始分块为原始分块2、3、4,则对应的目标压缩分块即为压缩分块2、3、4。s505、根据目标压缩压缩分块的标识和各压缩分块的增量偏移,得到目标压缩分块的绝对偏移。进一步地,还需要获取压缩分块的绝对偏移,压缩分块的绝对偏移是指压缩分块的起始位置相对于压缩文件的起始位置的偏移值,根据压缩分块的增量偏移计算压缩分块的绝对偏移具体方式和原理与获取原始分块的绝对偏移类似,此处不再赘述。在获得了目标压缩分块绝对偏移之后,优选地可以建立压缩分块绝对偏移表,其中压缩分块绝对偏移表标识了各压缩分块的绝对偏移,通过构建压缩分块绝对偏移表可以提高查找效率。进一步地,根据目标压缩分块的标识得到目标压缩分块的绝对偏移。s506、根据各原始分块的绝对偏移和目标数据在源文件中的绝对偏移,得到目标数据在目标原始分块中的相对偏移。具体的,在获取到目标数据对应的目标原始分块的标识之后,根据各原始分块的绝对偏移以及目标数据在源文件中的绝对偏移可以得到目标数据在目标原始分块中的相对偏移,其中目标数据在目标原始分块中的相对偏移是指目标数据的起始位置相对于目标原始分块的起始位置的偏移值。下面结合图7进行详细介绍,如图7所示,将源文件分块后得到原始分块1、原始分块2、…、原始分块n,图7中虚线所标识的即为各个数据块的起始位置,图7中的阴影部分即为目标数据,此处假设目标数据对应的目标原始分块为原始分块2,图中x为原始分块2的绝对标识,标识了原始分块2的起始位置相对于源文件的起始位置的偏移值,y为目标数据在源文件中的绝对偏移,根据目标数据在源文件中的绝对偏移以及目标原始分块的绝对偏移可以得到目标数据在目标原始分块中的相对偏移,图7中的w即为目标数据在目标原始分块中的相对偏移。s507、根据目标压缩分块的绝对偏移,从压缩文件中获取目标压缩分块。s508、对目标压缩分块进行解压缩,得到解压后分块。进一步地,目标压缩分块的绝对偏移指示了目标压缩分块在压缩文件中的位置,因此根据目标压缩分块的绝对偏移从压缩文件中获取目标压缩分块,在获取到目标压缩分块之后,对目标压缩分块进行解压缩,得到解压后的分块。具体的,首先读取目标压缩分块中目标原始分块的大小,然后继续读取压缩数据的大小,其次根据压缩数据的大小读取对应压缩数据的大小数值对应的数据,即为目标压缩数据,对目标压缩数据进行解压缩,得到解压后的分块,解压后的分块中的数据是对目标压缩数据进行解压缩之后得到的原始数据,进一步地,可以通过比较对目标压缩数据进行解压缩之后得到的原始数据的大小以及目标压缩分块中目标原始分块的大小,从而判断当前查找到的是否正确,若大小一致,表示查找到了正确的目标原始分块。在本发明实施例中,在对源文件分块时尽可能的保证每一个原始分块都是完整的,当目标数据过大只能存在于多个原始分块时,在解压之前根据各原始分块的绝对偏移、目标数据在源文件中的绝对偏移以及目标数据的长度就可以计算出目标数据所在的多个压缩分块,从而实现对多个压缩分块的并行解压,提高读取目标数据的效率。s509、根据目标数据在目标原始分块中的相对偏移以及目标数据的长度,在解压后分块中读取目标数据。其中,当得到解压后的分块之后,目标数据在目标原始分块中的相对偏移指示了目标数据在目标原始分块中的起始位置,根据目标数据的长度可以得到目标数据在目标原始数据中的结束位置,因此根据目标数据在目标原始分块中的相对偏移以及目标原始分块的长度可以在解压后分块中读取目标数据。本发明实施例提供的文件的解压缩方法,在上述实施例的基础上,包括:在收到读取压缩文件的读取指令后,读取压缩文件的尾部,从压缩文件的尾部获取压缩文件中的各压缩分块的增量偏移以及各压缩分块对应的原始分块的增量偏移。根据各原始分块的增量偏移,确定各原始分块的绝对偏移。根据各原始分块的绝对偏移、目标数据在源文件中的绝对偏移以及目标数据的长度,得到目标数据对应的目标原始分块的标识。根据目标原始分块的标识,获取目标压缩分块的标识。根据目标压缩压缩分块的标识和各压缩分块的增量偏移,得到目标压缩分块的绝对偏移。根据各原始分块的绝对偏移和目标数据在源文件中的绝对偏移,得到目标数据在目标原始分块中的相对偏移。根据目标压缩分块的绝对偏移,从压缩文件中获取目标压缩分块。对目标压缩分块进行解压缩,得到解压后分块。根据目标数据在目标原始分块中的相对偏移,在解压后分块中读取目标数据。通过建立一套索引系统即可完成目标数据的索引,减少了重新建立索引系统的时间和空间开销,并且利用原始分块的偏移信息可以在解压之前计算出多个目标数据所在的多个压缩分块,从而执行并行解压缩的操作,提高读取效率。图8为本发明实施例提供的文件的压缩装置的结构示意图一。如图8所示,该文件的压缩装置80包括:分块模块801、压缩模块802以及存储模块803。分块模块801,用于分块模块,用于根据不固定长度的分块方式对源文件进行分块,得到多个原始分块;压缩模块802,用于根据多个原始分块,得到各原始分块对应的压缩分块;存储模块803,对多个压缩分块进行存储,根据各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量,得到压缩文件;在一种可能的设计中,压缩文件包括数据区以及尾部,其中,数据区包括多个压缩分块,尾部包括各压缩分块的偏移量以及各压缩分块关联的原始分块的偏移量。在一种可能的设计中,分块模块801具体用于:根据源文件中各数据元的长度对源文件进行分块,得到多个原始分块,其中,原始分块中包含的数据为一个或多个完整的数据元。在一种可能的设计中,压缩模块802具体用于:针对每一原始分块,对原始分块进行压缩处理,得到压缩数据;判断对原始分块进行压缩处理的过程中是否存在额外数据;若是,则获取额外数据;其中,额外数据至少包括纠错码信息、加解密信息或解压信息中的至少一种;根据压缩数据和额外数据,得到压缩分块。本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。图9为本发明实施例提供的文件的压缩装置的结构示意图二。如图9所示,本实施例在图8实施例的基础上,还包括:校验模块904和扩展模块905。在一种可能的设计中,校验模块904,用于根据原始分块的大小、压缩数据的大小、压缩数据以及额外数据在内的参数,通过预设算法得到用于校验压缩分块完整性的校验码;压缩模块902还用于:根据原始分块的大小、压缩数据的大小、校验码、压缩数据以及额外数据,得到压缩分块。在一种可能的设计中,扩展模块905,用于判断压缩文件是否存在扩展数据,若是,则获取扩展数据;数据区还包括扩展数据,所述扩展数据至少包括所述源文件的大小、已删除的压缩分块的标识或新增压缩分块的插入位置。在一种可能的设计中,所述原始分块的偏移量为所述原始分块在所述源文件中的偏移量;所述压缩分块的偏移量为所述压缩分块在所述压缩文件中的偏移量。在一种可能的设计中,各所述压缩分块顺序存储,第n块原始分块的偏移量为根据第n块原始分块的起始位置和第n-1块原始分块的起始位置确定的增量偏移;第n块压缩分块的偏移量为根据第n块压缩分块的起始位置和第n-1块压缩分块的起始位置确定的增量偏移。本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。图10为本发明实施例提供的文件的解压缩装置的结构示意图。如图10所示,该文件的解压缩装置100包括:读取模块1001、获取模块1002以及解压缩模块1003。读取模块1001,在收到读取压缩文件的读取指令后,获取压缩文件中的各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量;读取指令包括目标数据在源文件中的偏移量以及目标数据的长度;获取模块1002,用于根据所述目标数据在源文件中的偏移量、各所述压缩分块的偏移量、对应的原始分块的偏移量以及目标数据的长度,从所述压缩文件中获取所述目标数据对应的目标压缩分块;解压缩模块1003,用于对目标压缩分块进行解压缩,得到目标数据。在一种可能的设计中,读取模块具体用于:读取压缩文件的尾部,从压缩文件的尾部获取压缩文件中的各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量;其中,压缩文件包括数据区以及尾部,其中,数据区包括多个压缩分块,尾部包括各压缩分块的偏移量以及各压缩分块对应的原始分块的偏移量。在一种可能的设计中,原始分块的偏移量为原始分块在源文件中的偏移量;压缩分块的偏移量为压缩分块在压缩文件中的偏移量。在一种可能的设计中,各压缩分块顺序存储,第n块原始分块的偏移量为根据第n块原始分块的起始位置和第n-1块原始分块的起始位置确定的增量偏移;第n块压缩分块的偏移量为根据第n块压缩分块的起始位置和第n-1块压缩分块的起始位置确定的增量偏移。在一种可能的设计中,获取模块1002具体用于:根据各原始分块的增量偏移,确定各原始分块的绝对偏移;根据各原始分块的绝对偏移、目标数据在源文件中的绝对偏移以及目标数据的长度,得到目标数据对应的目标原始分块的标识;根据目标原始分块的标识,获取目标压缩分块的标识;根据目标压缩分块的标识与各压缩分块的增量偏移,从压缩文件中获取目标数据对应的目标压缩分块。在一种可能的设计中,获取模块1002还具体用于:根据目标压缩压缩分块的标识和各压缩分块的增量偏移,得到目标压缩分块的绝对偏移;根据目标压缩分块的绝对偏移,从压缩文件中获取目标压缩分块。在一种可能的设计中,获取模块1002还具体用于:根据目标压缩分块的绝对偏移,从压缩文件中获取目标压缩分块之前,根据各原始分块的绝对偏移和目标数据在源文件中的绝对偏移,得到目标数据在目标原始分块中的相对偏移;解压缩分块1003具体用于:对目标压缩分块进行解压缩,得到解压后分块;根据目标数据在目标原始分块中的相对偏移,在解压后分块中读取目标数据。本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。图11为本发明实施例提供的文件压缩及解压缩设备的硬件结构示意图。如图11所示,本实施例的文件压缩及解压缩设备110包括:处理器1101以及存储器1102;其中存储器1102,用于存储计算机执行指令;处理器1101,用于执行存储器存储的计算机执行指令,以实现上述实施例中文件的压缩装置以及文件的解压缩装置所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。可选地,存储器1102既可以是独立的,也可以跟处理器1101集成在一起。当存储器1102独立设置时,该语音交互设备还包括总线1103,用于连接所述存储器1102和处理器1101。本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的文件的压缩方法以及文件的解压缩方法。在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。应理解,上述处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(applicationspecificintegratedcircuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1