CN102937903B - 一种基于特征匹配的打包文件更新方法 - Google Patents

一种基于特征匹配的打包文件更新方法 Download PDF

Info

Publication number
CN102937903B
CN102937903B CN201210406587.7A CN201210406587A CN102937903B CN 102937903 B CN102937903 B CN 102937903B CN 201210406587 A CN201210406587 A CN 201210406587A CN 102937903 B CN102937903 B CN 102937903B
Authority
CN
China
Prior art keywords
file
eigenwert
bag
complete packet
list
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
CN201210406587.7A
Other languages
English (en)
Other versions
CN102937903A (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.)
Chengdu Xishanju Interactive Entertainment Technology Co Ltd
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Online Game Technology Co Ltd
Chengdu Xishanju Interactive Entertainment 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 Zhuhai Kingsoft Online Game Technology Co Ltd, Chengdu Xishanju Interactive Entertainment Technology Co Ltd filed Critical Zhuhai Kingsoft Online Game Technology Co Ltd
Priority to CN201210406587.7A priority Critical patent/CN102937903B/zh
Publication of CN102937903A publication Critical patent/CN102937903A/zh
Application granted granted Critical
Publication of CN102937903B publication Critical patent/CN102937903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于特征匹配的打包文件更新方法,其操作流程如下:在文件打包后的完整包中建立特征值表;然后,为每一个打包文件计算出特征值并保存到特征值表中;比较更新文件的特征值与完整包里特征值表中的数据;若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,并将其更新后的位置信息与特征值记录到特征值表中;若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中。采用本发明的方法对打包文件进行更新时,不同更新包中相同内容的文件不会多次被放入更新包中,从而减少了包文件更新过程中的网络流量和更新的时间开销。

Description

一种基于特征匹配的打包文件更新方法
技术领域
本发明涉及一种打包文件更新方法,尤其涉及一种基于特征匹配的打包文件更新方法。
背景技术
现有软件客户端资源通常采用打包方式存储,从而获得传输方便、资源保密、以及更加快速访问速度等优点。在对打包文件进行更新的过程中,传统更新过程将需要更新的增量数据文件打包到更新包中,并以追加和覆盖的方式替换掉打包文件中需要更新的包内文件。然而在更新较为平凡的打包文件中,常会出现具备相同内容的文件被反复更新的现象。已经更新至客户端打包文件中的相同内容的文件,可能多次出现在不同版本的更新包中并被反复更新,这样会使得更新包体积变大,并增加在线更新过程中的网络流量增和更新时间的开销。
发明内容
为了解决现有技术中存在的上述问题,本发明的目的在于提供一种基于特征匹配的打包文件更新方法,减少打包文件更新过程中的内容传输,节省更新时间。
本发明所采用的技术方案是,一种基于特征匹配的打包文件更新方法,包括以下步骤:
步骤1:在文件打包后的完整包中建立特征值表;
步骤2:为每一个打包文件计算出特征值并保存到特征值表中;
步骤3:把要写入的更新文件打包为更新包,在更新包制作过程中,比较更新文件的特征值与完整包里特征值表中的数据;
步骤4:若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,将更新包加入到完整包内,并将其更新后的位置信息与特征值记录到特征值表中;
步骤5:若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中,再将更新包加入到完整包内。
进一步,所述特征值包括文件内容哈希值,所述文件内容哈希值是在打包过程中按照设定的哈希算法对文件内容进行计算得出的数字摘要,文件内容哈希值为特征值的主要组成部分。
进一步,为了克服哈希值存在的哈希冲突问题,所述特征值中还包括其他描述文件的确定性信息,所述确定性信息由文件内某一小段原始数据、文件大小、文件最后修改日期中的一种或多种组成,文件内容哈希值和确定性信息组成特征值。
进一步,所述位置信息包含更新后完整包中包内文件距离打包文件头部的偏移值和文件长度,具备相同特征值的包内文件对应相同的位置信息。
进一步,所述索引信息由文件标识和文件偏移值决定组成。所述文件标识是文件名或文件名哈希值,文件标识唯一标识打包文件内的文件;所述文件偏移值反映文件在打包文件内的位置。
本发明的有益效果是:
与现有技术相比,采用本发明的方法对打包文件进行更新时,不同更新包中相同内容的文件由于具备相同的特征值,不会多次被放入更新包中,从而减少了包文件更新过程中的网络流量和更新的时间开销。
具体实施方式
本发明提出了一种基于特征匹配的打包文件更新方法,该方法涉及文件打包过程以及更新过程,打包过程即将文件写入文件包的过程,其输出可以是一个具备完整数据的完整包,亦可以是一个仅具备增量数据的更新包;更新过程即将更新包中的文件更新至完整包的过程,更新过程中将在完整包中追加新的包内文件数据并更新包内文件索引。
本发明的打包文件更新方法操作流程如下:首先,在文件打包后的完整包中建立特征值表;然后,为每一个打包文件计算出特征值并保存到特征值表中;将更新文件打包为更新包,并比较更新文件的特征值与完整包里特征值表中的数据;若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,将更新包内容加入到完整包内,并将其更新后的位置信息与特征值记录到特征值表中;若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中,而不必包含具体的包内文件数据,再将更新包加入到完整包内。
本方法的一个实现例子为:设a.txt与b.txt文件已经存在与完整包中,此时需要将c.txt文件增加到更新包中。由于检测到c.txt文件与b.txt文件有相同的特征值,则此时c.txt文件的具体内容是不会被写入更新包中的,而只将c.txt的索引信息写入更新包,即“文件标识”=c.txt,“偏移值”=0x456,如下方表1。若将来更新包中有d.txt文件,而此文件的特征值与原有的a.txt、b.txt、c.txt的特征值都不相同,则在写入它的索引信息的同时,还需要写入d.txt的数据内容,和将d.txt文件的特征值记录入特征值表。
表1
在上述更新过程中,包内文件数据采用追加方式,而不覆盖和修改更新前完整包内的文件信息,其追加的包内文件的偏移值和文件长度都与特征值表中位置中记录的信息相同。而索引信息数据可采用修改和追加两种方式更新,若更新包索引的文件标识已存在于完整包中,则仅修改此索引的位置信息;若更新包索引中的文件标识未出现在完整包索引中,则将索引追加至完整包索引中。更新后的完整包为新版本的完整包,出现在此完整包中具备相同内容的包内文件数据不会再次出现在今后版本的更新包中。
采用本发明的方法对打包文件进行更新时,不同更新包中相同内容的文件由于具备相同的特征值,不会多次被放入更新包中,从而减少了包文件更新过程中的网络流量和更新的时间开销。
本发明的打包文件更新方法中,大多数情况下会使用哈希值作为文件内容的特征值。但由于哈希值会存在哈希冲突问题,这会使得这套系统错误的认为两个不相同内容的文件相同,因此也会采用其他描述文件的确定性信息辅助哈希值作为特征值。这些信息有:文件大小,文件最后修改日期、文件内某一小段原始数据(如文件的前几个字节往往能确定文件类型)。上述信息与哈希值的组合都可以作为文件特征值,如:“文件最后修改日期+文件内容哈希值”、“文件大小+文件内容哈希值”;当然,在哈希冲突概率小的系统中,可以仅用“文件内容哈希值”作为特征值,这个可以通过修改打包工具中的配置项决定。
本发明中涉及的索引信息由文件标识和文件偏移值组成。文件标识唯一标识包内的文件,文件偏移值则反映文件在包内的位置。文件标识可以是文件名、文件路径、文件添在系统中的编号,或者是文件名、文件路径的哈希值,同一套包内不存在相同文件标识的文件,但可以存在拥有相同特征值和偏移值的文件。
以上所述仅为本发明的优先实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。

Claims (4)

1.一种基于特征匹配的打包文件更新方法,其特征在于包括以下步骤:
步骤1:在文件打包后的完整包中建立特征值表;
步骤2:为每一个打包文件计算出特征值并保存到特征值表中;
步骤3:把要写入的更新文件打包为更新包,在更新包制作过程中,比较更新文件的特征值与完整包里特征值表中的数据;
步骤4:若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,将更新包加入到完整包内,并将其更新后的位置信息与特征值记录到特征值表中,其中所述索引信息由文件标识和文件偏移值决定组成;
步骤5:若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中,再将更新包加入到完整包内;
其中,所述特征值包括文件内容哈希值和描述文件的确定性信息,所述文件内容哈希值是在打包过程中按照设定的哈希算法对文件内容进行计算得出的数字摘要,所述确定性信息由文件内某一小段原始数据、文件大小、文件最后修改日期中的一种或多种组成。
2.根据权利要求1所述的一种基于特征匹配的打包文件更新方法,其特征在于:所述位置信息包含更新后完整包中包内文件距离打包文件头部的偏移值和文件长度,具备相同特征值的包内文件对应相同的位置信息。
3.根据权利要求1所述的一种基于特征匹配的打包文件更新方法,其特征在于:所述文件标识是文件名或文件名哈希值,文件标识唯一标识打包文件内的文件。
4.根据权利要求1所述的一种基于特征匹配的打包文件更新方法,其特征在于:所述文件偏移值反映文件在打包文件内的位置。
CN201210406587.7A 2012-10-23 2012-10-23 一种基于特征匹配的打包文件更新方法 Active CN102937903B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210406587.7A CN102937903B (zh) 2012-10-23 2012-10-23 一种基于特征匹配的打包文件更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210406587.7A CN102937903B (zh) 2012-10-23 2012-10-23 一种基于特征匹配的打包文件更新方法

Publications (2)

Publication Number Publication Date
CN102937903A CN102937903A (zh) 2013-02-20
CN102937903B true CN102937903B (zh) 2016-04-06

Family

ID=47696802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210406587.7A Active CN102937903B (zh) 2012-10-23 2012-10-23 一种基于特征匹配的打包文件更新方法

Country Status (1)

Country Link
CN (1) CN102937903B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399804A (zh) * 2013-07-31 2013-11-20 珠海金山网络游戏科技有限公司 一种远程打包文件修复的方法及系统
CN104378397A (zh) * 2013-08-15 2015-02-25 世纪禾光科技发展(北京)有限公司 一种程序包增量更新发布的方法与系统
CN105718458A (zh) * 2014-12-02 2016-06-29 阿里巴巴集团控股有限公司 一种确定数据文件存在的方法、装置及系统
CN104539696B (zh) * 2014-12-26 2018-09-11 北京像素软件科技股份有限公司 一种客户端增量更新的方法及系统
CN106202173B (zh) * 2016-06-26 2019-11-12 厦门天锐科技股份有限公司 一种文件仓库存储的智能排重方法及系统
CN107193560B (zh) * 2017-05-16 2020-08-04 奇瑞汽车股份有限公司 配置更新方法及装置
CN110516477A (zh) * 2019-07-29 2019-11-29 浪潮电子信息产业股份有限公司 文件处理方法及装置
CN117521152B (zh) * 2024-01-05 2024-05-07 同盾科技有限公司 数据更新方法、匿踪查询方法、电子设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174294A (zh) * 2007-11-19 2008-05-07 南京大学 一种基于版本增量备份的软件保护方法
CN101359293A (zh) * 2008-09-04 2009-02-04 腾讯科技(深圳)有限公司 制作部分更新包的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI370396B (en) * 2008-09-30 2012-08-11 Inventec Corp Method for installing package and method for creating package image
US8806477B2 (en) * 2009-10-30 2014-08-12 Red Hat, Inc. Space efficient software package management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174294A (zh) * 2007-11-19 2008-05-07 南京大学 一种基于版本增量备份的软件保护方法
CN101359293A (zh) * 2008-09-04 2009-02-04 腾讯科技(深圳)有限公司 制作部分更新包的方法和装置

Also Published As

Publication number Publication date
CN102937903A (zh) 2013-02-20

Similar Documents

Publication Publication Date Title
CN102937903B (zh) 一种基于特征匹配的打包文件更新方法
US10628378B2 (en) Replication of snapshots and clones
CN102629247B (zh) 一种数据处理方法、装置和系统
CN100472539C (zh) 基于缓存技术的数据库访问接口方法
TW200731103A (en) Method of managing data snapshot images in a storage system
CN108984744B (zh) 一种非主链区块自增长方法
CN106202173B (zh) 一种文件仓库存储的智能排重方法及系统
CN103177077B (zh) 一种apk文件的存储及输出方法
WO2007024459A9 (en) Secure schema identifier generation
CN100423002C (zh) 删除fat卷中文件的方法
CN105808273A (zh) 软件升级方法和软件升级装置
WO2007024379A2 (en) Schema packaging, distribution and availability
JP4877193B2 (ja) 版数管理システムおよび版数管理方法
CN102831204B (zh) 一种具备版本控制能力的文件打包格式
CN111797068A (zh) 一种基于区块链和ipfs的物联网数据管理系统和方法
US20140222876A1 (en) File system extended attribute support in an operating system with restricted extended attributes
US20080320252A1 (en) Optimized and robust in-place data transformation
US20120317387A1 (en) Fast copy using file system block mappings
JP5516251B2 (ja) ソフトウェア導入状況管理装置、ソフトウェア導入状況管理方法およびプログラム
CN101894241A (zh) 一种文档加密的计算机软件实现方法
US11586499B2 (en) Method, device and computer program product for storing data
CN111142934B (zh) 一种可受加载的文件格式设计方法
EP3091447B1 (en) Method for modifying root nodes and modifying apparatus
US8713067B1 (en) Stable file system
CN108228225B (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
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 519000 Room 102, 202, 302 and 402, No. 325, Qiandao Ring Road, Tangjiawan Town, high tech Zone, Zhuhai City, Guangdong Province, Room 102 and 202, No. 327 and Room 302, No. 329

Patentee after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Patentee after: CHENGDU XISHANJU INTERACTIVE ENTERTAINMENT TECHNOLOGY Co.,Ltd.

Address before: 519000 Jinshan software building, 8 Lanshan lane, Jida Jingshan Hill Road, Zhuhai, Guangdong

Patentee before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

Patentee before: CHENGDU XISHANJU INTERACTIVE ENTERTAINMENT TECHNOLOGY Co.,Ltd.