CN103530417B - 文件解包方法和装置 - Google Patents

文件解包方法和装置 Download PDF

Info

Publication number
CN103530417B
CN103530417B CN201310520670.1A CN201310520670A CN103530417B CN 103530417 B CN103530417 B CN 103530417B CN 201310520670 A CN201310520670 A CN 201310520670A CN 103530417 B CN103530417 B CN 103530417B
Authority
CN
China
Prior art keywords
file
data
passage
channel
bag
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
CN201310520670.1A
Other languages
English (en)
Other versions
CN103530417A (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.)
Beijing Shibo Digital TV Technology Co Ltd
Original Assignee
Beijing Shibo Digital TV Technology Co 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 Beijing Shibo Digital TV Technology Co Ltd filed Critical Beijing Shibo Digital TV Technology Co Ltd
Priority to CN201310520670.1A priority Critical patent/CN103530417B/zh
Publication of CN103530417A publication Critical patent/CN103530417A/zh
Application granted granted Critical
Publication of CN103530417B publication Critical patent/CN103530417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions

Abstract

本发明公开了一种文件解包方法和装置,其中,所述文件解包方法包括:获取待解包的目标文件包,创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中,读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件。因此,本发明实现了流式解包,能够利用有限的存储空间对尽可能大的目标文件包进行解包,从而降低了解包时对内存空间大小的要求。

Description

文件解包方法和装置
技术领域
本发明涉及通信技术,尤其涉及一种文件解包方法和装置。
背景技术
随着通信技术的不断发展,使得网络、以及存储技术也得到了很快的发展,因此,对于网络文件的存储、安装或升级也变得越来越重要了。一般情况下,终端系统要求使用最少的存储空间、快速有效完成解包、安装或升级等工作,特别是在外部存储空间不足或不可用情况下,探讨有效、快速、稳定的解包方法是很必要的。
现有技术中,本地以网络方式安装或升级软件时,对网络文件的解包过程一般包括解密、解压、拆包、安装等过程。其具体解包过程为:首先,网络文件的初始的加密包通过解密生成压缩包;然后,对压缩包解压缩后会产生相应的数据包,最后,对解压缩得到的数据包进行拆分,得到所有数据文件,并且擦除解包过程产生的压缩包、数据包。在此解包过程中,需要将压缩包、数据包存储在磁盘、闪存(Flash Memory)等外部存储空间或者内存中
但是,上述解包过程中产生的中间结果,比如,加密包、压缩包、数据包和数据文件等,需要占用很大存储空间。由于计算机系统,尤其嵌入式系统的存储空间资源有限,当不能保证上述解包过程中产生的中间结果所需要占用的存储空间时,则不能顺利对网络文件进行解包。
发明内容
有鉴于此,本发明实施例的目的在于提出一种文件解包方法和装置,解决由于存储空间资源有限不能对网络文件进行解包的问题。
第一方面,本发明实施例提供了一种文件解包方法,所述方法包括:
获取待解包的目标文件包;
创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中;
读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件。
第二方面,本发明实施例提供了一种文件解包装置,所述装置包括:
获取模块,用于获取待解包的目标文件包;
解包模块,用于创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中;
读取模块,用于读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件。
本发明实施例提供的文件解包方法和装置,通过获取待解包的目标文件包,创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中,读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,实现了流式解包,能够利用有限的存储空间对尽可能大的目标文件包进行解包,从而降低了解包时对内存空间大小的要求。
附图说明
图1是本发明第一实施例的文件解包方法的流程图;
图2是本发明第二实施例的文件解包方法的流程图;
图3是本发明第二实施例的文件解包方法中拆包操作的流程图;
图4是本发明第三实施例的文件解包方法的流程图;
图5是本发明第三实施例的文件解包方法中解压操作的流程图;
图6是本发明第三实施例的快速浏览方法中拆包操作的流程图;
图7是本发明第四实施例的文件解包装置的示意图;
图8是本发明第四实施例的文件解包装置中的解包模块的示意图;
图9是本发明第四实施例的文件解包装置中的解包模块的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
本发明实施例提供的文件解包方法和装置可以应用于终端设备中,采用通道技术直接将解包流程中的加密包和数据文件,通过解密操作、解压操作、拆包操作连接起来,这样就不需要对压缩包和数据包进行临时存储,从而节约了这两者占用的空间。
例如,终端设备接收加密包,并且将其存储在内存中;然后,根据指定的解密算法对加密包进行解密,解密后得到压缩包,并创建通道1,再将压缩包以数据流方式写入通道1的输入端;再次,从通道1读取数据,同时创建通道2,然后对数据解压缩,输出数据到通道2的输入端;接着,从通道2读取数据,并创建通道3,然后解析出数据文件再输出到通道3的写入端;最后,由数据文件组合线程读取通道3的数据文件并组织所有的数据文件。
下面对本明实施例中涉及到的关键术语作一下详细说明。
(1)解包主要包括解密、解压、拆包等操作。其中,解密操作支持的加密算法有3DES、AES;解压操作支持的压缩算法有gzip、bzip2、xz;拆包操作支持的格式有tar、cpio。
(2)外部存储空间指的是介质为磁盘、闪存等非易失性数据存放单元。
(3)存储空间指的是外部存储空间、内存。
(4)数据文件指的是普通文件,构成数据包的最小单元。
(5)数据包文件(Data Package File)指的是未压缩、未加密,包含了全部数据文件的单一集合文件,简称数据包(Data Package,DP)。将压缩包解压缩后,得到数据包。一个数据包中通常包含多个数据文件。
(6)压缩包文件(Compressed Package File)指的是已压缩、未加密的单一文件,简称压缩包(Compressed Package,CP)。将加密包解密后得到压缩包。
(7)加密包文件(Encrypted Package File):已压缩、已加密的单一文件,简称加密包(Encrypted.Package,EP)。
(8)数据通道:管道(pipe)或套接字对(socket pair),简称通道。
图1是本发明第一实施例的文件解包方法的流程图。该文件解包方法可以应用于终端设备中。如图1所示,所述方法包括:
步骤110、获取待解包的目标文件包。
具体地,终端设备从自身存储空间或从网络中获得目标文件包,以定义好的数据类型存储在终端的内存空间,等待后续的解包处理。其中,获得的目标文件包可以为目标文件压缩包,也可以为目标文件加密包。当目标文件包是目标文件加密包时,将目标文件加密包解密后同样得到目标文件压缩包。
步骤120、创建目标文件包对应的通道,利用所述通道对目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中。其中,数据文件指的是普通文件,构成数据包的最小单元。
具体地,解包处理主要包括解密、解压、拆包等操作,并且利用创建的通道将解密操作、解压操作、拆包操作连接起来,这样就不需要对压缩包和数据包进行临时存储,从而节约了这两者占用的空间。虽然,新创建的通道也占用存储空间,但是,通道占用的存储空间相对应压缩包、数据包而言是很小的。比如,使用管道技术实现解包流程,一对管道占用64KB的缓冲区,这相对于占用几兆、几十兆字节内存的数据包来讲,是很小的一块存储空间。
另外,上述解包处理以数据文件为单位每次解出一个数据文件,并将该数据文件写入所创建的通道中。
步骤130、读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件。
具体地,持续读取所创建的通道中的数据文件,获得该数据文件后,将该数据文件保存到内存中,并释放目标文件包所占用的存储空间。
另外,上述读取数据文件的同时,也可以对已读出的数据文件进行相应处理,比如,文件安装、替换等操作,然后释放该数据文件的存储空间,不必等待读出所有数据文件后再做相应处理,这样可以节约数据文件占用的存储空间。
因此,本发明实施例提供的文件解包方法,通过获取待解包的目标文件包,创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到以数据文件为单位的数据包,并将所述数据包的各个数据文件写入所述通道中,读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,实现了流式解包,能够利用有限的存储空间对尽可能大的目标文件包进行解包,从而降低了解包时对内存空间大小的要求。
图2是本发明第二实施例的文件解包方法的流程图。该文件解包方法可以应用于终端设备中。如图2所示,所述方法包括:
步骤210、获取待解包的目标文件压缩包。
具体地,终端设备从自身存储空间或从网络中获得标文件压缩包,以定义好的数据类型存储在终端的内存空间,等待后续的解包处理。因为获得的是目标文件压缩包,所以后续的解包处理包括解压、拆包等重要操作。
步骤220、创建第一通道,对目标文件压缩包进行解压缩,并将所述解压缩后得到数据包数据写入所述第一通道。
具体地,可以利用指定的解压算法对目标文件压缩包进行解压缩,并以数据流的形式将得到的数据包数据写入第一通道。其中,常用的压缩算法有gzip、bzip2、xz等。一般,将压缩包解压缩后,得到数据包,该数据包中通常包含多个数据文件。
步骤230、创建第二通道,读取第一通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到的数据文件写入第二通道,直至完成对所有的数据包数据的读取,则释放所述第一通道。
具体地,从第一通道提取数据流,对该数据流进行拆包,并组成数据文件,同时将该数据文件写入第二通道。其中,拆包操作支持的格式有tar、cpio等。
步骤240、读取第二通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第二通道。
具体地,持续地读取第二通道的数据文件,并将所获得的数据文件写入内存,同时释放目标文件压缩包占用的内存。
在本实施例的一个优选实施方式中,步骤230中对所述数据包数据进行拆包,并将所述拆包后得到的数据文件写入第二通道,包括:
当没有完成对第一通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第二通道。
其中,所述利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第二通道,具体包括:将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第二通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
上述步骤230完成了对解压数据的拆包操作,下面详细说明该拆包操作的具体过程,如图3所示:
步骤301、创建第二通道。
具体地,根据打包类型提取包头,并创建第二通道。其中,第二通道是拆包后得到的数据文件的输出载体。
步骤302、判断是否完成对第一通道所有数据包数据的提取,如果是,执行步骤310;如果否,则执行步骤303。
具体地,该步骤说明进入拆包循环,此时,如果已经提取所有数据包数据,则表示数据包已经完成拆包,就退出拆包循环,并释放第一通道;否则,则没有完成拆包。
步骤303、创建临时通道A,该临时通道A表示针对第A个数据文件创建的。
步骤304、判断第一通道是否有可读取的数据包数据,如果是,则执行步骤305;如果否,则继续执行步骤304,此时表明第一通道为空,阻塞等待第一通道被写入数据包数据。
步骤305、从第一通道读取数据包数据,并将该数据包数据写入临时通道A。
步骤306、判断第二通道是否有可写空间,如果是,则执行步骤307;如果否,则继续执行步骤306,此时表明第二通道没有可写空间,阻塞等待第二通道被释放出空间。
步骤307、从临时通道A读取数据包数据,并将该数据包数据写入第二通道。
步骤308、判断是否从临时通道A读取完一个数据文件,如果是,则执行步骤309;如果否,执行步骤304。其中,数据文件指的是普通文件,构成数据包的最小单元
步骤309、释放临时通道A,并执行步骤302。
步骤310、释放第一通道,退出拆包循环,程序结束。
因此,本发明实施例提供的文件解包方法,在整个解包过程中,所有数据都存储在内存中,没有占用磁盘或闪存等外部存储空间,可以有效解决外部存储空间的问题,对于外部存储空间软件升级等是非常有利的;而且,解包过程主要围绕解压操作、拆包操作,通过通道接口技术完成数据流式的处理,同时,为了减少系统调度开销,解包过程使用多个线程来完成,有序地将各阶段数据流连接起来,并且保证了内存空间的使用量最少和及时释放,不但解决了解包过程的存储问题,还提高了时间和空间效率。
图4是本发明第四实施例的文件解包方法的流程图。该文件解包方法可以应用于终端设备中。如图4所示,所述方法包括:
步骤410、获取待解包的目标文件加密包。
具体地,终端设备从自身存储空间或从网络中获得标文件加密包,以定义好的数据类型存储在终端的内存空间,等待后续的解包处理。因为获得的是目标文件压缩包,所以后续的解包处理包括解密、解压、拆包等重要操作。
步骤420、创建第三通道,对目标文件加密包进行解密,并将所述解密后得到的压缩包数据写入所述第三通道。
具体地,创建第三通道,然后获取加密包的头部,分析并解开加密包为压缩包,再持续地将压缩包数据持续地写入第三通道。
步骤430、创建第四通道,读取第三通道的压缩包数据,对所述压缩数据进行解压缩,并将所述解压缩后得到的数据包数据写入所述第四通道,直至完成对所有的压缩包数据的读取,则释放所述第三通道。
具体地,可以利用指定的解压算法对目标文件压缩包进行解压缩,并以数据流的形式将得到的数据包数据写入第一通道。其中,常用的压缩算法有gzip、bzip2、xz等。一般,将压缩包解压缩后,得到数据包,该数据包中通常包含多个数据文件。
步骤440、创建第五通道,读取第四通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入所述第五通道,直至完成对所有的数据包数据的读取,则释放所述第四通道。
具体地,从第四通道提取数据流,对该数据流进行拆包,并组成数据文件,同时将该数据文件写入第五通道。其中,拆包操作支持的格式有tar、cpio等。
步骤450、读取第五通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第五通道。
具体地,持续地读取第五通道的数据文件,并将所获得的数据文件写入内存,同时释放目标文件压缩包占用的内存。
在本实施例的一个优选实施方式中,步骤430完成了对压缩包数据的解压缩操作,下面详细说明该解压缩操作的具体过程,如图5所示:
步骤501、创建第四通道。其中,第四通道是执行解压操作后得到的数据包数据的输出载体,也是执行拆包操作前获取数据包数据的输入载体。
步骤502、判断是否完成对第三通道所有压缩包数据的提取,如果是,执行步骤507;如果否,则执行步骤503。
具体地,该步骤说明进入解压循环,此时,如果已经提取所有压缩包数据,则表示压缩包已经完成解压缩,就退出解压循环,并释放第三通道;否则,则没有完成解压缩。
步骤503、判断第三通道是否有可读取的压缩包数据,如果是,则执行步骤504;如果否,则继续执行步骤503,此时表明第三通道为空,阻塞等待第三通道被写入压缩包数据。
步骤504、从第三通道读取压缩包数据,并对该压缩包数据解压缩。
步骤505、判断第四通道是否有可写空间,如果是,则执行步骤506;如果否,则继续执行步骤505,此时表明第四通道没有可写空间,阻塞等待第四通道被释放出空间。
步骤506、将该压缩包数据写入第四通道,并执行步骤502。
步骤507、释放第三通道,退出解压循环,程序结束。
在本实施例的另一个优选实施方式中,步骤440所述数据包数据进行拆包,并将所述拆包后得到数据文件写入所述第五通道,直至完成对所有的数据包数据的读取,则释放所述第四通道,包括:
当没有完成对第四通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第五通道。
其中,所述利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第五通道,具体包括:将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第五通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
上述步骤440完成了对解压数据的拆包操作,下面详细说明该拆包操作的具体过程,如图6所示:
步骤601、创建第五通道。
具体地,根据打包类型提取包头,并创建第五通道。其中,第五通道是拆包后得到的数据文件的输出载体。
步骤602、判断是否完成对第四通道所有数据包数据的提取,如果是,执行步骤610;如果否,则执行步骤603。
具体地,该步骤说明进入拆包循环,此时,如果已经提取所有数据包数据,则表示数据包已经完成拆包,就退出拆包循环,并释放第四通道;否则,则没有完成拆包。
步骤603、创建临时通道B,该临时通道B表示针对第B个数据文件创建的。
步骤604、判断第四通道是否有可读取的数据包数据,如果是,则执行步骤605;如果否,则继续执行步骤604,此时表明第四通道为空,阻塞等待第四通道被写入数据包数据。
步骤605、从第四通道读取数据包数据,并将该数据包数据写入临时通道B。
步骤606、判断第五通道是否有可写空间,如果是,则执行步骤307;如果否,则继续执行步骤606,此时表明第五通道没有可写空间,阻塞等待第五通道被释放出空间。
步骤607、从临时通道B读取数据包数据,并将该数据包数据写入第五通道。
步骤608、判断是否从临时通道B读取完一个数据文件,如果是,则执行步骤609;如果否,执行步骤604。其中,数据文件指的是普通文件,构成数据包的最小单元
步骤609、释放临时通道A,并执行步骤302。
步骤610、释放第四通道,退出拆包循环,程序结束。
因此,本发明实施例提供的文件解包方法,在整个解包过程中,所有数据都存储在内存中,没有占用磁盘或闪存等外部存储空间,可以有效解决外部存储空间的问题,对于外部存储空间软件升级等是非常有利的;而且,解包过程主要围绕解密操作、解压操作、拆包操作,通过通道接口技术完成数据流式的处理,同时,为了减少系统调度开销,解包过程使用多个线程来完成,有序地将各阶段数据流连接起来,并且保证了内存空间的使用量最少和及时释放,不但解决了解包过程的存储问题,还提高了时间和空间效率。
图7是本发明第四实施例的文件解包装置的示意图。该文件解包装置用于执行本发明第一实施例至第三实施例的文件解包方法,可以简称为流式解包器。如图7所示,所述文件解包装置70包括:获取模块71、解包模块72和读取模块73。
获取模块71用于获取待解包的目标文件包;
解包模块72用于创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中;
读取模块73用于读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件。
在一个实施例中,获取模块71获取到的待解包的目标文件包为目标文件压缩包,所述解包模块72包括第一解压单元81和第一拆包单元82,如图8所示:
第一解压单元81用于创建第一通道,对所述目标文件压缩包进行解压缩,并将所述解压缩后得到数据包数据写入所述第一通道;
第一拆包单元82用于创建第二通道,读取所述第一通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到的数据文件写入第二通道,直至完成对所有的数据包数据的读取,则释放所述第一通道;
以及,所述读取模块73具体用于读取所述第二通道的所述数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第二通道。
其中,所述第一拆包单元82具体用于当没有完成对第一通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第二通道;
以及,所述第一拆包单元82还具体用于将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第二通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
上述第一解压单元81到第一拆包单元82,第一拆包单元82到数据文件都会由通道连接,将传统的存储解包方式改变为流式解包。第一解压单元持续地提取压缩包数据并且解压缩,第一拆包单元82则以数据文件为单位持续提取数据文件。
另一个实施例中,获取模块71获取到的待解包的目标文件包为目标文件压加密包,所述解包模块72包括解密单元91、第二解压单元92和第二拆包单元93,如图9所示。
解密单元91用于创建第三通道,对所述目标文件加密包进行解密,并将所述解密后得到的压缩包数据写入所述第三通道;
第二解压单元92用于创建第四通道,读取所述第三通道的压缩包数据,对所述压缩包数据进行解压缩,并将所述解压缩后得到的数据包数据写入所述第四通道,直至完成对所有的压缩包数据的读取,则释放所述第三通道;
第二拆包单元93用于创建第五通道,读取所述第四通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入所述第五通道,直至完成对所有的数据包数据的读取,则释放所述第四通道;
以及,所述读取模块73具体用于读取所述第五通道的所述数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第五通道。
其中,所述第二拆包单元93具体用于当没有完成对第四通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第五通道;
以及,所述第二拆包单元93还具体用于将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第五通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
上述解密单元91到第二解压单元92,第二解压单元92到第二拆包单元93,第二拆包单元93到数据文件都会由通道连接,将传统的存储解包方式改变为流式解包。第二解压单元92持续地提取压缩包数据并且解压缩,第二拆包单元93则以数据文件为单位持续提取数据文件。
因此,本发明实施例提供的文件解包装置,通过获取待解包的目标文件包,创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到以数据文件为单位的数据包,并将所述数据包的各个数据文件写入所述通道中,读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,实现了流式解包,能够利用有限的存储空间对尽可能大的目标文件包进行解包,从而降低了解包时对内存空间大小的要求。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以通过如上所述的通信终端实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种文件解包方法,其特征在于,所述方法包括:
获取待解包的目标文件包;
创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中;
读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件;所述目标文件包为目标文件压缩包,所述创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中,包括:
创建第一通道,对所述目标文件压缩包进行解压缩,并将所述解压缩后得到数据包数据写入所述第一通道;
创建第二通道,读取所述第一通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到的数据文件写入第二通道,直至完成对所有的数据包数据的读取,则释放所述第一通道;
以及,所述读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,具体包括:
读取所述第二通道的所述数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第二通道;
或者,所述目标文件包为目标文件加密包,所述创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中,具体包括:
创建第三通道,对所述目标文件加密包进行解密,并将所述解密后得到的压缩包数据写入所述第三通道;
创建第四通道,读取所述第三通道的压缩包数据,对所述压缩包数据进行解压缩,并将所述解压缩后得到的数据包数据写入所述第四通道,直至完成对所有的压缩包数据的读取,则释放所述第三通道;
创建第五通道,读取所述第四通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入所述第五通道,直至完成对所有的数据包数据的读取,则释放所述第四通道;
以及,所述读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,具体包括:
读取所述第五通道的所述数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第五通道。
2.根据权利要求1所述的文件解包方法,其特征在于,所述对所述数据包数据进行拆包,并将所述拆包后得到的数据文件写入第二通道,直至完成对所有的数据包数据的读取,则释放所述第一通道,包括:
当没有完成对第一通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第二通道;
以及,所述利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第二通道,具体包括:
将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第二通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
3.根据权利要求1所述的文件解包方法,其特征在于,所述对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入所述第五通道,直至完成对所有的数据包数据的读取,则释放所述第四通道,包括:
当没有完成对第四通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第五通道;
以及,所述利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第五通道,具体包括:
将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第五通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
4.一种文件解包装置,其特征在于,所述装置包括:
获取模块,用于获取待解包的目标文件包;
解包模块,用于创建所述目标文件包对应的通道,利用所述通道对所述目标文件包进行解包处理,所述解包处理后得到所述目标文件包对应的数据文件,并将所述数据文件写入所述通道中;
读取模块,用于读取所述通道的数据文件,根据所有数据文件获得所述目标文件包对应的目标文件;
所述目标文件包为目标文件压缩包,所述解包模块包括:
第一解压单元,用于创建第一通道,对所述目标文件压缩包进行解压缩,并将所述解压缩后得到数据包数据写入所述第一通道;
第一拆包单元,用于创建第二通道,读取所述第一通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到的数据文件写入第二通道,直至完成对所有的数据包数据的读取,则释放所述第一通道;
以及,所述读取模块具体用于读取所述第二通道的所述数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第二通道;
或者,所述目标文件包为目标文件加密包,所述解包模块包括:
解密单元,用于创建第三通道,对所述目标文件加密包进行解密,并将所述解密后得到的压缩包数据写入所述第三通道;
第二解压单元,用于创建第四通道,读取所述第三通道的压缩包数据,对所述压缩包数据进行解压缩,并将所述解压缩后得到的数据包数据写入所述第四通道,直至完成对所有的压缩包数据的读取,则释放所述第三通道;
第二拆包单元,用于创建第五通道,读取所述第四通道的数据包数据,对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入所述第五通道,直至完成对所有的数据包数据的读取,则释放所述第四通道;
以及,所述读取模块具体用于读取所述第五通道的所述数据文件,根据所有数据文件获得所述目标文件包对应的目标文件,直至完成对所有的数据文件的读取,则释放所述第五通道。
5.根据权利要求4所述的文件解包装置,其特征在于,所述第一拆包单元具体用于当没有完成对第一通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第二通道;
以及,所述第一拆包单元还具体用于将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第二通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
6.根据权利要求4所述的文件解包装置,其特征在于,所述第二拆包单元具体用于当没有完成对第四通道所有数据包数据的提取时,创建临时通道,利用所述临时通道对所述数据包数据进行拆包,并将所述拆包后得到数据文件写入第五通道;
以及,所述第二拆包单元还具体用于将所述读取的数据包数据写入所述临时通道中,以及将所述临时通道中的数据包数据写入第五通道,直至从所述临时通道读取完一个数据文件时,释放所述临时通道。
CN201310520670.1A 2013-10-29 2013-10-29 文件解包方法和装置 Active CN103530417B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310520670.1A CN103530417B (zh) 2013-10-29 2013-10-29 文件解包方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310520670.1A CN103530417B (zh) 2013-10-29 2013-10-29 文件解包方法和装置

Publications (2)

Publication Number Publication Date
CN103530417A CN103530417A (zh) 2014-01-22
CN103530417B true CN103530417B (zh) 2016-08-17

Family

ID=49932426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310520670.1A Active CN103530417B (zh) 2013-10-29 2013-10-29 文件解包方法和装置

Country Status (1)

Country Link
CN (1) CN103530417B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925758A (zh) * 2021-02-05 2021-06-08 深圳市优必选科技股份有限公司 生成压缩包的方法、装置及终端设备
CN115086296B (zh) * 2022-05-27 2024-04-05 阿里巴巴(中国)有限公司 一种日志传输系统、日志传输方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001082110A1 (en) * 2000-04-19 2001-11-01 Hiawatha Island Software Co, Inc. System and method of packaging and unpackaging files into a markup language record for network search and archive services
CN101715575A (zh) * 2006-12-06 2010-05-26 弗森多系统公司(dba弗森-艾奥) 采用数据管道管理数据的装置、系统和方法
CN102857505A (zh) * 2012-09-06 2013-01-02 上海计算机软件技术开发中心 一种物联网数据总线中间件

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001082110A1 (en) * 2000-04-19 2001-11-01 Hiawatha Island Software Co, Inc. System and method of packaging and unpackaging files into a markup language record for network search and archive services
CN101715575A (zh) * 2006-12-06 2010-05-26 弗森多系统公司(dba弗森-艾奥) 采用数据管道管理数据的装置、系统和方法
CN102857505A (zh) * 2012-09-06 2013-01-02 上海计算机软件技术开发中心 一种物联网数据总线中间件

Also Published As

Publication number Publication date
CN103530417A (zh) 2014-01-22

Similar Documents

Publication Publication Date Title
US9058792B1 (en) Coalescing to avoid read-modify-write during compressed data operations
CN109085997A (zh) 用于非易失性存储器的存储器高效持续键值储存
CN101819560B (zh) 一种spi接口存储器执行程序方法和装置
CN110377226B (zh) 基于存储引擎bluestore的压缩方法、装置及存储介质
WO2014066416A2 (en) Method and apparatus for accelerated format translation of data in a delimited data format
US20190007529A1 (en) Methods and systems for autonomous memory
CN107633088A (zh) 一种文件管理方法及装置
CN110352412A (zh) 矩阵压缩加速器系统和方法
CN110059455A (zh) 代码加密方法、装置、电子设备和计算机可读存储介质
CN109067523A (zh) 一种加密卡的数据加密方法
CN113220498A (zh) 一种支持加密存储的嵌入式Flash控制器
CN103530417B (zh) 文件解包方法和装置
CN102073808A (zh) 一种通过sata接口加密存储的方法和加密卡
CN104090795A (zh) 实现多核移动终端升级的方法、系统及装置
CN102479549A (zh) 半导体存储装置
US20150113502A1 (en) Method and system for encapsulation of application
CN109325356A (zh) 一种加密卡架构
CN105022788A (zh) PNG图片格式的bin文件无损压缩算法及全液晶仪表显示系统
CN103425761B (zh) 一种对打包文件进行碎片整理的方法、系统及设备
CN107391181A (zh) 一种系统分区的方法及装置
US20070022224A1 (en) Memory data transfer method and system
CN105117353A (zh) 带有通用数据交互模块的fpga及采用该fpga的信息处理系统
CN102882515B (zh) 连续提取和包装比特数据流的装置
CN103095595A (zh) 一种基于单向并行多链表的网络数据管理方法及系统
JP4517213B2 (ja) データストリームをフィルタリングする装置及び方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant