CN106446138B - 数据包的存储方法及装置 - Google Patents

数据包的存储方法及装置 Download PDF

Info

Publication number
CN106446138B
CN106446138B CN201610835362.1A CN201610835362A CN106446138B CN 106446138 B CN106446138 B CN 106446138B CN 201610835362 A CN201610835362 A CN 201610835362A CN 106446138 B CN106446138 B CN 106446138B
Authority
CN
China
Prior art keywords
meta
data
subfile
information
data packet
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
CN201610835362.1A
Other languages
English (en)
Other versions
CN106446138A (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 Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610835362.1A priority Critical patent/CN106446138B/zh
Publication of CN106446138A publication Critical patent/CN106446138A/zh
Application granted granted Critical
Publication of CN106446138B publication Critical patent/CN106446138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/13File access structures, e.g. distributed indices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据包的存储方法及装置。所述方法包括:获取待上传的数据包的meta数据块,所述meta数据块中包括所述数据包的元信息meta以及所述文件数据块中各子文件的元信息meta,其中,所述数据包的元信息meta承载所述数据包的属性信息,所述各子文件的元信息meta承载所述各子文件的属性信息;根据所述meta数据块获取所述文件数据块中的各子文件;当确定所述各子文件全部获取完成时,对所述各子文件以及所述元信息meta进行组包并存储。该技术方案通过以子文件为粒度存储数据包,能够避免重复性存储文件的情况,从而节省大量的存储空间及网络资源,且提高数据包存储的成功率及效率。

Description

数据包的存储方法及装置
技术领域
本发明涉及通信技术领域,特别是涉及一种数据包的存储方法及装置。
背景技术
在上传数据包时,客户端将数据包上传至服务端,由服务端对数据包进行解包存储。现有技术中,客户端在上传数据包时,通常是将数据包按照固定的大小进行分片,然后逐片上传。具体的,当多个客户端同时上传数据包时,为节省带宽,同一时间只允许一个分片上传,每个客户端在上传之前,都会通过令牌服务查找待上传的分片,当分片上传完成之后再去查找下一个待上传的分片,从而确保每一个分片仅有一个客户端在上传,达到节省带宽的目的。因此,服务端在存储数据包时,也是按照分片模式进行解包存储的。
然而,对于手机上的程序安装包或文件压缩包而言,上述分片上传及存储数据包的方式并不能达到很好的效果,尤其是在手机信号不好或信号中断的情况下,就很容易造成服务端组包失败的情况,进而使数据包存储失败。此外,由于同一程序安装包的不同版本之间的差异实际上很小,若采用上述分片方式上传及存储数据包,则会重复上传及存储数据包中的数据,造成存储空间及网络资源的浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据包的存储方法及装置。
依据本发明的一个方面,提供了一种数据包的存储方法,所述数据包中包括文件数据块和meta数据块,所述方法包括:
获取待上传的数据包的meta数据块,所述meta数据块中包括所述数据包的元信息meta以及所述文件数据块中各子文件的元信息meta,其中,所述数据包的元信息meta包括所述数据包的属性信息,所述各子文件的元信息meta包括所述各子文件的属性信息;
根据所述meta数据块获取所述文件数据块中的各子文件;
当确定所述各子文件全部获取完成时,对所述各子文件以及所述元信息meta进行组包并存储。
可选地,根据所述meta数据块获取所述文件数据块中的各子文件,包括:
根据所述数据包的元信息meta确定所述文件数据块在所述数据包中的第一位置信息,并根据所述第一位置信息读取所述文件数据块;
根据所述各子文件的元信息meta确定所述各子文件在所述文件数据块中的第二位置信息;
根据所述第二位置信息获取所述各子文件,直至所述各子文件全部获取完成。
可选地,所述各子文件的元信息meta包括以下至少一项:所述各子文件的文件名、所述各子文件在所述文件数据块中的偏移量、所述各子文件对应的校验码;
所述数据包的元信息meta包括以下至少一项:所述文件数据块在所述数据包中的偏移量、所述各子文件的元信息meta在所述数据包中的偏移量、所述数据包的元信息meta在所述数据包中的偏移量。
可选地,对所述各子文件以及所述元信息meta进行组包并存储,包括:
建立所述各子文件以及所述元信息meta各自对应的键值对应关系;
按照所述键值对应关系存储所述各子文件以及所述元信息meta。
可选地,建立所述各子文件以及所述元信息meta各自对应的键值对应关系,包括:
获取待存储数据的数据类型,所述数据类型包括子文件类型和/或meta类型,其中,当所述数据类型为所述子文件类型时,所述待存储数据为所述子文件,当所述数据类型为meta类型时,所述待存储数据为所述元信息meta;
根据所述待存储数据的数据类型确定所述待存储数据对应的键值对应关系并建立。
可选地,根据所述待存储数据的数据类型确定所述待存储数据对应的键值对应关系,包括:
当确定所述待存储数据的数据类型为所述子文件时,确定所述待存储数据的键为所述子文件的安全哈希算法SHA1值,所述待存储数据的值为所述子文件的文件内容;
当确定所述待存储数据的数据类型为所述元信息meta时,确定所述待存储数据的键为所述元信息meta的安全哈希算法SHA1值,所述待存储数据的值为所述元信息meta。
可选地,对所述各子文件以及所述元信息meta进行组包并存储之后,所述方法还包括:
更新所述数据包对应的上传标识,所述上传标识用于表明所述数据包已成功上传并存储。
可选地,所述数据包为程序安装包APK或者文件压缩包ZIP包。
依据本发明的另一个方面,提供了一种数据包的存储装置,所述数据包中包括文件数据块和meta数据块,所述装置包括:
第一获取模块,适于获取待上传的数据包的meta数据块,所述meta数据块中包括所述数据包的元信息meta以及所述文件数据块中各子文件的元信息meta,其中,所述数据包的元信息meta包括所述数据包的属性信息,所述各子文件的元信息meta包括所述各子文件的属性信息;
第二获取模块,适于根据所述meta数据块获取所述文件数据块中的各子文件;
存储模块,适于当确定所述各子文件全部获取完成时,对所述各子文件以及所述元信息meta进行组包并存储。
可选地,所述第二获取模块还适于:
根据所述数据包的元信息meta确定所述文件数据块在所述数据包中的第一位置信息,并根据所述第一位置信息读取所述文件数据块;
根据所述各子文件的元信息meta确定所述各子文件在所述文件数据块中的第二位置信息;
根据所述第二位置信息获取所述各子文件,直至所述各子文件全部获取完成。
可选地,所述各子文件的元信息meta包括以下至少一项:所述各子文件的文件名、所述各子文件在所述文件数据块中的偏移量、所述各子文件对应的校验码;
所述数据包的元信息meta包括以下至少一项:所述文件数据块在所述数据包中的偏移量、所述各子文件的元信息meta在所述数据包中的偏移量、所述数据包的元信息meta在所述数据包中的偏移量。
可选地,所述存储模块还适于:
建立所述各子文件以及所述元信息meta各自对应的键值对应关系;
按照所述键值对应关系存储所述各子文件以及所述元信息meta。
可选地,所述存储模块还适于:
获取待存储数据的数据类型,所述数据类型包括子文件类型和/或meta类型,其中,当所述数据类型为所述子文件类型时,所述待存储数据为所述子文件,当所述数据类型为meta类型时,所述待存储数据为所述元信息meta;
根据所述待存储数据的数据类型确定所述待存储数据对应的键值对应关系并建立。
可选地,所述存储模块还适于:
当确定所述待存储数据的数据类型为所述子文件时,确定所述待存储数据的键为所述子文件的安全哈希算法SHA1值,所述待存储数据的值为所述子文件的文件内容;
当确定所述待存储数据的数据类型为所述元信息meta时,确定所述待存储数据的键为所述元信息meta的安全哈希算法SHA1值,所述待存储数据的值为所述元信息meta。
可选地,所述装置还包括:
更新模块,适于对所述各子文件以及所述元信息meta进行组包并存储之后,更新所述数据包对应的上传标识,所述上传标识用于表明所述数据包已成功上传并存储。
可选地,所述数据包为程序安装包APK或者文件压缩包ZIP包。
采用本发明实施例提供的技术方案,首先获取待上传的数据包的meta数据块,然后根据meta数据块获取数据包的文件数据块中的各子文件,使得本方案能够在存储数据包时根据meta数据块中的元信息meta依次获取各子文件,从而实现以子文件为粒度存储数据包的目的,相较于现有的将数据包以固定大小(例如1K)为粒度进行分片上传及存储的方案而言,该技术方案能够明确需要存储的子文件,而舍弃已成功存储的子文件,尤其是对于不同版本间差异很小的程序安装包APK而言,采用本方案中以子文件为粒度存储数据包的方式,可实现仅存储不同版本间存在差异的子文件,而无需再存储上一个版本中已成功存储的子文件,从而避免重复性存储文件的情况,大大降低了服务器的存储压力,且节省大量的存储空间及网络资源。并且,该方案能够在确定各子文件全部获取完成后对各子文件以及元信息meta进行组包并存储,因此可在离线环境下进行组包并存储数据包,从而避免因网络带宽或信号不良而导致存储失败的情况,大大提高了数据包存储的成功率及效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明一个实施例的一种数据包的存储方法的示意性流程图;
图2是根据本发明另一个实施例的一种数据包的存储方法的示意性流程图;
图3是根据本发明一个实施例的一种数据包的存储装置的示意性框图;
图4是根据本发明另一个实施例的一种数据包的存储装置的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是根据本发明一个实施例的一种数据包的存储方法的示意性流程图。在该方法中,数据包中包括文件数据块和meta数据块,如图1所示,该方法一般性地可包括以下步骤S101-S103:
步骤S101,获取待上传的数据包的meta数据块,meta数据块中包括数据包的元信息meta以及文件数据块中各子文件的元信息meta。
其中,数据包的元信息meta包括数据包的属性信息,各子文件的元信息meta包括各子文件的属性信息。数据包可以是程序安装包APK,也可以是文件压缩包ZIP包,还可以是其他任一种包括文件数据块和meta数据块的数据包,本实施例对此不作限定。
步骤S102,根据meta数据块获取文件数据块中的各子文件。
步骤S103,当确定各子文件全部获取完成时,对各子文件以及元信息meta进行组包并存储。
采用本发明实施例提供的技术方案,首先获取待上传的数据包的meta数据块,然后根据meta数据块获取数据包的文件数据块中的各子文件,使得本方案能够在存储数据包时根据meta数据块中的元信息meta依次获取各子文件,从而实现以子文件为粒度存储数据包的目的,相较于现有的将数据包以固定大小(例如1K)为粒度进行分片上传及存储的方案而言,该技术方案能够明确需要存储的子文件,而舍弃已成功存储的子文件,尤其是对于不同版本间差异很小的程序安装包APK而言,采用本方案中以子文件为粒度存储数据包的方式,可实现仅存储不同版本间存在差异的子文件,而无需再存储上一个版本中已成功存储的子文件,从而避免重复性存储文件的情况,大大降低了服务器的存储压力,且节省大量的存储空间及网络资源。并且,该方案能够在确定各子文件全部获取完成后对各子文件以及元信息meta进行组包并存储,因此可在离线环境下进行组包并存储数据包,从而避免因网络带宽或信号不良而导致存储失败的情况,大大提高了数据包存储的成功率及效率。
上述实施例中,各子文件的元信息meta包括以下至少一项:各子文件的文件名、各子文件在文件数据块中的偏移量、各子文件对应的校验码。其中,各子文件在文件数据块中的偏移量用于在文件数据块中准确定位子文件。
数据包的元信息meta包括以下至少一项:文件数据块在数据包中的偏移量、各子文件的元信息meta在数据包中的偏移量、数据包的元信息meta在数据包中的偏移量。其中,文件数据块在数据包中的偏移量用于在数据包中准确定位文件数据块,各子文件的元信息meta在数据包中的偏移量用于在数据包中准确定位各子文件的元信息meta,数据包的元信息meta在数据包中的偏移量用于在数据包中准确定位该数据包的元信息meta。
在一个实施例中,根据meta数据块获取文件数据块中的各子文件(即步骤S102)可实施为以下步骤:首先,根据数据包的元信息meta确定文件数据块在数据包中的第一位置信息,并根据第一位置信息读取文件数据块;其次,根据各子文件的元信息meta确定各子文件在文件数据块中的第二位置信息;然后,根据第二位置信息获取各子文件,直至各子文件全部获取完成。具体的,首先根据文件数据块在数据包中的偏移量确定文件数据块在数据包中的第一位置信息,根据该第一位置信息读取文件数据库,然后根据各子文件在文件数据块中的偏移量和/或各子文件的文件名确定各子文件在文件数据块中的第二位置信息,再根据该第二位置信息分别获取各子文件。
在一个实施例中,当确定各子文件全部获取完成时,对各子文件以及元信息meta进行组包并存储(即步骤S103)可实施为以下步骤:首先,建立各子文件以及元信息meta各自对应的键值对应关系;其次,按照键值对应关系存储各子文件以及元信息meta。其中,键值对应关系即键“key”和值“value”间的对应关系。
各子文件以及元信息meta各自对应的键值对应关系可按照以下方式来建立:首先,获取待存储数据的数据类型,数据类型包括子文件类型和/或meta类型,其中,当数据类型为子文件类型时,待存储数据为子文件,当数据类型为meta类型时,待存储数据为元信息meta;其次,根据待存储数据的数据类型确定待存储数据对应的键值对应关系并建立。该实施例中,待存储数据的数据类型可在客户端向服务器传输数据包的meta数据块时一并传输给服务器,且可采用预设标识来表示,例如,采用数字0、1、2、3来表示待存储数据的数据类型,其中,数字0表示待存储数据为子文件,数字1表示待存储数据为manifest文件(数据包中用于存储安全哈希算法SHA1值的文件),数字2表示待存储数据为SF、RSA文件或者其他位于META-INF里的文件,数字3表示待存储数据为元信息meta。其中,采用数字0、1、2标识的待存储数据均为子文件类型,其区别仅在于文件的内容不同。
具体的,当确定待存储数据的数据类型为子文件时,确定待存储数据的键为子文件的安全哈希算法SHA1值,待存储数据的值为子文件的文件内容;当确定待存储数据的数据类型为元信息meta时,确定待存储数据的键为元信息meta的安全哈希算法SHA1值,待存储数据的值为元信息meta。其中,子文件的安全哈希算法SHA1值和元信息meta的安全哈希算法SHA1值被存储于数据包内的manifest文件中,在向服务器上传数据包时,该manifest文件可与meta数据块一同上传至服务器。SHA1值具有唯一性,类似人的指纹一样,每个人都有自己唯一的指纹,每个文件也同样对应各自唯一的SHA1值,因此,以SHA1值作为键值对应关系中的键来存储数据,使得数据的存储具有唯一确定性。
在一个实施例中,执行步骤S103之后,上述方法还包括以下步骤:更新数据包对应的上传标识,该上传标识用于表明数据包已成功上传并存储。例如,预设“1”为表明数据包已成功上传并存储的标识,则在执行步骤S103之后,更新数据包对应的上传标识“1”,这样,服务器在存储数据包之前,即可根据该数据包对应的上传标识获知该数据包是否已成功上传,从而避免重复性上传数据包。
上述任一实施例中,对各子文件以及原信息meta进行组包后,服务器可向客户端发出组包是否成功的消息。例如,当组包成功时,服务器存储组包后的数据包,并向客户端发出组包成功的消息,通知客户端该数据包已成功上传;当组包失败时,服务器向客户端发出组包失败的消息,以通知客户端整包上传该数据包,从而避免数据包上传失败的情况。
图2是根据本发明一具体实施例的一种数据包的存储方法的示意性流程图。如图2所示,该方法应用于服务器端,包括以下步骤S201-S208:
步骤S201,获取待上传的数据包的meta数据块。
其中,数据包中包括文件数据块和meta数据块,meta数据块中包括数据包的元信息meta以及文件数据块中各子文件的元信息meta。并且,数据包的元信息meta包括文件数据块在数据包中的偏移量,各子文件的元信息meta包括各子文件在文件数据块中的偏移量。
步骤S202,根据文件数据块在数据包中的偏移量确定文件数据块在数据包中的第一位置信息,并根据第一位置信息读取文件数据块。
步骤S203,根据各子文件在文件数据块中的偏移量确定各子文件在文件数据块中的第二位置信息。
步骤S204,根据第二位置信息获取各子文件,直至各子文件全部获取完成。
步骤S205,获取待存储数据的数据类型,待存储数据包括各子文件和/或元信息meta,数据类型包括子文件类型和/或meta类型。
其中,当数据类型为子文件类型时,待存储数据为子文件,当数据类型为meta类型时,待存储数据为元信息meta。
此外,客户端还可将待存储数据的数据类型与数据包的meta数据块同时上传至服务器,这样,服务器在获取数据包的meta数据块时,也能够同时获取到待存储数据的数据类型。
步骤S206,根据待存储数据的数据类型确定待存储数据对应的键值对应关系并建立。
具体的,当确定待存储数据的数据类型为子文件时,确定待存储数据的键为子文件的安全哈希算法SHA1值,待存储数据的值为子文件的文件内容;当确定待存储数据的数据类型为元信息meta时,确定待存储数据的键为元信息meta的安全哈希算法SHA1值,待存储数据的值为元信息meta。
步骤S207,按照键值对应关系存储各子文件以及元信息meta。
步骤S208,更新数据包对应的上传标识,该上传标识用于表明数据包已成功上传并存储。
采用本实施例提供的技术方案,首先获取待上传的数据包的meta数据块,然后根据meta数据块获取数据包的文件数据块中的各子文件,使得本方案能够在存储数据包时根据meta数据块中的元信息meta依次获取各子文件,从而实现以子文件为粒度存储数据包的目的,相较于现有的将数据包以固定大小(例如1K)为粒度进行分片上传及存储的方案而言,该技术方案能够明确需要存储的子文件,而舍弃已成功存储的子文件,尤其是对于不同版本间差异很小的程序安装包APK而言,采用本方案中以子文件为粒度存储数据包的方式,可实现仅存储不同版本间存在差异的子文件,而无需再存储上一个版本中已成功存储的子文件,从而避免重复性存储文件的情况,大大降低了服务器的存储压力,且节省大量的存储空间及网络资源。并且,该方案能够在确定各子文件全部获取完成后对各子文件以及元信息meta进行组包并存储,因此可在离线环境下进行组包并存储数据包,从而避免因网络带宽或信号不良而导致存储失败的情况,大大提高了数据包存储的成功率及效率。
图3是根据本发明一个实施例的一种数据包的存储装置的示意性框图。该实施例中,数据包中包括文件数据块和meta数据块,如图3所示,该装置包括:
第一获取模块310,适于获取待上传的数据包的meta数据块,meta数据块中包括数据包的元信息meta以及文件数据块中各子文件的元信息meta,其中,数据包的元信息meta承载数据包的属性信息,各子文件的元信息meta承载各子文件的属性信息;
第二获取模块320,与第一获取模块310相耦合,适于根据meta数据块获取文件数据块中的各子文件;
存储模块330,与第二获取模块320相耦合,适于当确定各子文件全部获取完成时,对各子文件以及元信息meta进行组包并存储。
在一个实施例中,第二获取模块320还适于:
根据数据包的元信息meta确定文件数据块在数据包中的第一位置信息,并根据第一位置信息读取文件数据块;
根据各子文件的元信息meta确定各子文件在文件数据块中的第二位置信息;
根据第二位置信息获取各子文件,直至各子文件全部获取完成。
在一个实施例中,各子文件的元信息meta包括以下至少一项:各子文件的文件名、各子文件在文件数据块中的偏移量、各子文件对应的校验码;
数据包的元信息meta包括以下至少一项:文件数据块在数据包中的偏移量、各子文件的元信息meta在数据包中的偏移量、数据包的元信息meta在数据包中的偏移量。
在一个实施例中,存储模块330还适于:
建立各子文件以及元信息meta各自对应的键值对应关系;
按照键值对应关系存储各子文件以及元信息meta。
在一个实施例中,存储模块330还适于:
获取待存储数据的数据类型,数据类型包括子文件类型和/或meta类型,其中,当数据类型为子文件类型时,待存储数据为子文件,当数据类型为meta类型时,待存储数据为元信息meta;
根据待存储数据的数据类型确定待存储数据对应的键值对应关系并建立。
在一个实施例中,存储模块330还适于:
当确定待存储数据的数据类型为子文件时,确定待存储数据的键为子文件的安全哈希算法SHA1值,待存储数据的值为子文件的文件内容;
当确定待存储数据的数据类型为元信息meta时,确定待存储数据的键为元信息meta的安全哈希算法SHA1值,待存储数据的值为元信息meta。
在一个实施例中,如图4所示,上述装置还包括:
更新模块340,与存储模块330相耦合,适于对各子文件以及元信息meta进行组包并存储之后,更新数据包对应的上传标识,上传标识用于表明数据包已成功上传并存储。
在一个实施例中,数据包为程序安装包APK或者文件压缩包ZIP包。
采用本实施例提供的装置,首先获取待上传的数据包的meta数据块,然后根据meta数据块获取数据包的文件数据块中的各子文件,使得本方案能够在存储数据包时根据meta数据块中的元信息meta依次获取各子文件,从而实现以子文件为粒度存储数据包的目的,相较于现有的将数据包以固定大小(例如1K)为粒度进行分片上传及存储的方案而言,该技术方案能够明确需要存储的子文件,而舍弃已成功存储的子文件,尤其是对于不同版本间差异很小的程序安装包APK而言,采用本方案中以子文件为粒度存储数据包的方式,可实现仅存储不同版本间存在差异的子文件,而无需再存储上一个版本中已成功存储的子文件,从而避免重复性存储文件的情况,大大降低了服务器的存储压力,且节省大量的存储空间及网络资源。并且,该方案能够在确定各子文件全部获取完成后对各子文件以及元信息meta进行组包并存储,因此可在离线环境下进行组包并存储数据包,从而避免因网络带宽或信号不良而导致存储失败的情况,大大提高了数据包存储的成功率及效率。
本领域的技术人员应可理解,图3和图4中的数据包的存储装置能够用来实现前文所述的数据包的存储方案,其中的细节描述应与前文方法部分描述类似,为避免繁琐,此处不另赘述。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据包的存储装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (14)

1.一种数据包的存储方法,所述数据包中包括文件数据块和meta数据块,所述方法包括:
获取待上传的数据包的meta数据块,所述meta数据块中包括所述数据包的元信息meta以及所述文件数据块中各子文件的元信息meta,其中,所述数据包的元信息meta包括所述数据包的属性信息,所述各子文件的元信息meta包括所述各子文件的属性信息;
根据所述meta数据块获取所述文件数据块中的各子文件;
当确定所述各子文件全部获取完成时,对所述各子文件以及所述元信息meta进行组包并存储;
其中,根据所述meta数据块获取所述文件数据块中的各子文件,包括:根据所述数据包的元信息meta获取所述文件数据块在所述数据包中的偏移量以确定所述文件数据块在所述数据包中的第一位置信息,根据所述第一位置信息读取所述文件数据块,再根据各子文件的元信息meta获取各子文件在所述文件数据块中的偏移量和/或各子文件的文件名以确定各子文件在所述文件数据块的第二位置信息,根据所述第二位置信息分别获取各子文件。
2.根据权利要求1所述的方法,其中,所述各子文件的元信息meta包括以下至少一项:所述各子文件的文件名、所述各子文件在所述文件数据块中的偏移量、所述各子文件对应的校验码;
所述数据包的元信息meta包括以下至少一项:所述文件数据块在所述数据包中的偏移量、所述各子文件的元信息meta在所述数据包中的偏移量、所述数据包的元信息meta在所述数据包中的偏移量。
3.根据权利要求1或2所述的方法,其中,对所述各子文件以及所述元信息meta进行组包并存储,包括:
建立所述各子文件以及所述元信息meta各自对应的键值对应关系;
按照所述键值对应关系存储所述各子文件以及所述元信息meta。
4.根据权利要求3所述的方法,其中,建立所述各子文件以及所述元信息meta各自对应的键值对应关系,包括:
获取待存储数据的数据类型,所述数据类型包括子文件类型和/或meta类型,其中,当所述数据类型为所述子文件类型时,所述待存储数据为所述子文件,当所述数据类型为meta类型时,所述待存储数据为所述元信息meta;
根据所述待存储数据的数据类型确定所述待存储数据对应的键值对应关系并建立。
5.根据权利要求4所述的方法,其中,根据所述待存储数据的数据类型确定所述待存储数据对应的键值对应关系,包括:
当确定所述待存储数据的数据类型为所述子文件时,确定所述待存储数据的键为所述子文件的安全哈希算法SHA1值,所述待存储数据的值为所述子文件的文件内容;
当确定所述待存储数据的数据类型为所述元信息meta时,确定所述待存储数据的键为所述元信息meta的安全哈希算法SHA1值,所述待存储数据的值为所述元信息meta。
6.根据权利要求1或2所述的方法,其中,对所述各子文件以及所述元信息meta进行组包并存储之后,所述方法还包括:
更新所述数据包对应的上传标识,所述上传标识用于表明所述数据包已成功上传并存储。
7.根据权利要求1或2所述的方法,其中,所述数据包为程序安装包APK或者文件压缩包ZIP包。
8.一种数据包的存储装置,所述数据包中包括文件数据块和meta数据块,所述装置包括:
第一获取模块,适于获取待上传的数据包的meta数据块,所述meta数据块中包括所述数据包的元信息meta以及所述文件数据块中各子文件的元信息meta,其中,所述数据包的元信息meta包括所述数据包的属性信息,所述各子文件的元信息meta包括所述各子文件的属性信息;
第二获取模块,适于根据所述meta数据块获取所述文件数据块中的各子文件;
存储模块,适于当确定所述各子文件全部获取完成时,对所述各子文件以及所述元信息meta进行组包并存储;
其中,所述第二获取模块还配置为根据所述数据包的元信息meta获取所述文件数据块在所述数据包中的偏移量以确定所述文件数据块在所述数据包中的第一位置信息,根据所述第一位置信息获取所述文件数据块,再根据各子文件的元信息meta获取各子文件在所述文件数据块中的偏移量和/或各子文件的文件名以确定各子文件在所述文件数据块的第二位置信息,根据所述第二位置信息分别获取各子文件。
9.根据权利要求8所述的装置,其中,所述各子文件的元信息meta包括以下至少一项:所述各子文件的文件名、所述各子文件在所述文件数据块中的偏移量、所述各子文件对应的校验码;
所述数据包的元信息meta包括以下至少一项:所述文件数据块在所述数据包中的偏移量、所述各子文件的元信息meta在所述数据包中的偏移量、所述数据包的元信息meta在所述数据包中的偏移量。
10.根据权利要求8或9所述的装置,其中,所述存储模块还适于:
建立所述各子文件以及所述元信息meta各自对应的键值对应关系;
按照所述键值对应关系存储所述各子文件以及所述元信息meta。
11.根据权利要求10所述的装置,其中,所述存储模块还适于:
获取待存储数据的数据类型,所述数据类型包括子文件类型和/或meta类型,其中,当所述数据类型为所述子文件类型时,所述待存储数据为所述子文件,当所述数据类型为meta类型时,所述待存储数据为所述元信息meta;
根据所述待存储数据的数据类型确定所述待存储数据对应的键值对应关系并建立。
12.根据权利要求11所述的装置,其中,所述存储模块还适于:
当确定所述待存储数据的数据类型为所述子文件时,确定所述待存储数据的键为所述子文件的安全哈希算法SHA1值,所述待存储数据的值为所述子文件的文件内容;
当确定所述待存储数据的数据类型为所述元信息meta时,确定所述待存储数据的键为所述元信息meta的安全哈希算法SHA1值,所述待存储数据的值为所述元信息meta。
13.根据权利要求8或9所述的装置,其中,所述装置还包括:
更新模块,适于对所述各子文件以及所述元信息meta进行组包并存储之后,更新所述数据包对应的上传标识,所述上传标识用于表明所述数据包已成功上传并存储。
14.根据权利要求8或9所述的装置,其中,所述数据包为程序安装包APK或者文件压缩包ZIP包。
CN201610835362.1A 2016-09-20 2016-09-20 数据包的存储方法及装置 Active CN106446138B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610835362.1A CN106446138B (zh) 2016-09-20 2016-09-20 数据包的存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610835362.1A CN106446138B (zh) 2016-09-20 2016-09-20 数据包的存储方法及装置

Publications (2)

Publication Number Publication Date
CN106446138A CN106446138A (zh) 2017-02-22
CN106446138B true CN106446138B (zh) 2020-11-20

Family

ID=58166515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610835362.1A Active CN106446138B (zh) 2016-09-20 2016-09-20 数据包的存储方法及装置

Country Status (1)

Country Link
CN (1) CN106446138B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669640B (zh) 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
CN110401723A (zh) * 2019-08-16 2019-11-01 北京浪潮数据技术有限公司 Ova文件上传服务器的方法、系统、设备及存储介质
CN112286974A (zh) * 2020-12-24 2021-01-29 北京邮电大学 Apk压缩存储、还原和检索方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571709A (zh) * 2010-12-16 2012-07-11 腾讯科技(北京)有限公司 文件上传的方法、客户端、服务器及系统
CN102739791A (zh) * 2012-06-28 2012-10-17 奇智软件(北京)有限公司 一种文件的下载、上传方法及装置
CN103414759A (zh) * 2013-07-22 2013-11-27 华为技术有限公司 网盘文件传输方法和装置
CN105872036A (zh) * 2016-03-28 2016-08-17 联想(北京)有限公司 一种数据上传、下载方法、电子设备及服务器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231404B2 (en) * 2003-01-31 2007-06-12 Nokia Corporation Datacast file transmission with meta-data retention
US7849091B1 (en) * 2006-01-25 2010-12-07 At&T Intellectual Property Ii, L.P. Meta-data indexing for XPath location steps
EP2174240A2 (en) * 2007-08-07 2010-04-14 Nokia Corporation Method and device for modifying meta data of media objects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571709A (zh) * 2010-12-16 2012-07-11 腾讯科技(北京)有限公司 文件上传的方法、客户端、服务器及系统
CN102739791A (zh) * 2012-06-28 2012-10-17 奇智软件(北京)有限公司 一种文件的下载、上传方法及装置
CN103414759A (zh) * 2013-07-22 2013-11-27 华为技术有限公司 网盘文件传输方法和装置
CN105872036A (zh) * 2016-03-28 2016-08-17 联想(北京)有限公司 一种数据上传、下载方法、电子设备及服务器

Also Published As

Publication number Publication date
CN106446138A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN103037312B (zh) 消息推送方法及装置
CN111182089B (zh) 容器集群系统和访问大数据组件的方法、装置及服务器
CN105718276B (zh) 提供apk下载的方法和装置以及nginx服务器
CN109391673B (zh) 一种管理更新文件的方法、系统及终端设备
US11977637B2 (en) Technique for authentication and prerequisite checks for software updates
CN110661829B (zh) 文件下载方法及装置、客户端和计算机可读存储介质
US20140317071A1 (en) Method and device for transferring file
CN110011952B (zh) 一种数据传输的方法、服务集群及客户端
CN106446138B (zh) 数据包的存储方法及装置
CN110995513A (zh) 物联网系统中的数据发送、接收方法、物联网设备及平台
RU2015105296A (ru) Способ совместного доступа к файлам, терминал и сервер ретрансляции
US9332053B2 (en) Methods, systems, and computer readable media for load balancing stream control transmission protocol (SCTP) messages
CN105554137A (zh) 一种备份系统及方法
CN113395340A (zh) 一种信息更新方法、装置、设备、系统和可读存储介质
CN112134908B (zh) 应用适配方法及服务器、介质、车载多媒体系统
CN111176706A (zh) 终端升级方法、装置、电子设备及存储介质
CN105554136A (zh) 备份数据还原方法、装置及系统
CN105357267A (zh) 一种获取服务器信息的方法、装置及系统
CN114553863A (zh) 文件传输方法及装置、存储介质和电子设备
CN110519656B (zh) 自适应流媒体的播放方法、系统以及服务器
CN108134811B (zh) 目标文件分发或下载的方法、装置和系统
CN106341480B (zh) 数据包的上传方法及装置
CN105610596B (zh) 一种资源目录管理方法和网络终端
CN112784318A (zh) 一种生成设备唯一识别码的方法、装置和存储介质
CN111291207B (zh) 图片存储方法、装置及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240109

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.