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

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

【技术实现步骤摘要】

本专利技术涉及一种打包文件更新方法,尤其涉及。
技术介绍
现有软件客户端资源通常采用打包方式存储,从而获得传输方便、资源保密、以及更加快速访问速度等优点。在对打包文件进行更新的过程中,传统更新过程将需要更新的增量数据文件打包到更新包中,并以追加和覆盖的方式替换掉打包文件中需要更新的包内文件。然而在更新较为平凡的打包文件中,常会出现具备相同内容的文件被反复更新的现象。已经更新至客户端打包文件中的相同内容的文件,可能多次出现在不同版本的更新包 中并被反复更新,这样会使得更新包体积变大,并增加在线更新过程中的网络流量增和更新时间的开销。
技术实现思路
为了解决现有技术中存在的上述问题,本专利技术的目的在于提供,减少打包文件更新过程中的内容传输,节省更新时间。本专利技术所采用的技术方案是,,包括以下步骤 步骤I:在文件打包后的完整包中建立特征值表; 步骤2 :为每一个打包文件计算出特征值并保存到特征值表中; 步骤3 :把要写入的更新文件打包为更新包,在更新包制作过程中,比较更新文件的特征值与完整包里特征值表中的数据; 步骤4:若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,将更新包加入到完整包内,并将其更新后的位置信息与特征值记录到特征值表中; 步骤5 :若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中,再将更新包加入到完整包内。进一步,所述特征值包括文件内容哈希值,所述文件内容哈希值是在打包过程中按照设定的哈希算法对文件内容进行计算得出的数字摘要,文件内容哈希值为特征值的主要组成部分。进一步,为了克服哈希值存在的哈希冲突问题,所述特征值中还包括其他描述文件的确定性信息,所述确定性信息由文件内某一小段原始数据、文件大小、文件最后修改日期中的一种或多种组成,文件内容哈希值和确定性信息组成特征值。进一步,所述位置信息包含更新后完整包中包内文件距离打包文件头部的偏移值和文件长度,具备相同特征值的包内文件对应相同的位置信息。进一步,所述索引信息由文件标识和文件偏移值决定组成。所述文件标识是文件名或文件名哈希值,文件标识唯一标识打包文件内的文件;所述文件偏移值反映文件在打包文件内的位置。本专利技术的有益效果是 与现有技术相比,采用本专利技术的方法对打包文件进行更新时,不同更新包中相同内容的文件由于具备相同的特征值,不会多次被放入更新包中,从而减少了包文件更新过程中的网络流量和更新的时间开销。具体实施例方式本专利技术提出了,该方法涉及文件打包过程以及更新过程,打包过程即将文件写入文件包的过程,其输出可以是一个具备完整数据的完整包,亦可以是一个仅具备增量数据的更新包;更新过程即将更新包中的文件更新至完整包的过程,更新过程中将在完整包中追加新的包内文件数据并更新包内文件索引。本专利技术的打包文件更新方法操作流程如下首先,在文件打包后的完整包中建立特征值表;然后,为每一个打包文件计算出特征值并保存到特征值表中;将更新文件打包为更新包,并比较更新文件的特征值与完整包里特征值表中的数据;若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,将更新包内容加入到完整包内,并将其更新后的位置信息与特征值记录到特征值表中;若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中,而不必包含具体的包内文件数据,再将更新包加入到完整包内。本方法的一个实现例子为设a. txt与b. txt文件已经存在与完整包中,此时需要将c. txt文件增加到更新包中。由于检测到c. txt文件与b. txt文件有相同的特征值,贝Ij此时c. txt文件的具体内容是不会被写入更新包中的,而只将c. txt的索引信息写入更新包,即“文件标识” =c. txt,“偏移值”=0x456,如下方表I。若将来更新包中有d. txt文件,而此文件的特征值与原有的a. txt、b. txt、c. txt的特征值都不相同,贝U在写入它的索引信息的同时,还需要写入d. txt的数据内容,和将d. txt文件的特征值记录入特征值表。权利要求1.,其特征在于包括以下步骤 步骤I:在文件打包后的完整包中建立特征值表; 步骤2 :为每一个打包文件计算出特征值并保存到特征值表中; 步骤3 :把要写入的更新文件打包为更新包,在更新包制作过程中,比较更新文件的特征值与完整包里特征值表中的数据; 步骤4 :若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,将更新包加入到完整包内,并将其更新后的位置信息与特征值记录到特征值表中; 步骤5 :若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中,再将更新包加入到完整包内。2.根据权利要求I所述的,其特征在于所述特征值包括文件内容哈希值,所述文件内容哈希值是在打包过程中按照设定的哈希算法对文件内容进行计算得出的数字摘要。3.根据权利要求2所述的,其特征在于所述特征值中还包括其他描述文件的确定性信息。4.根据权利要求3所述的,其特征在于所述确定性信息由文件内某一小段原始数据、文件大小、文件最后修改日期中的一种或多种组成。5.根据权利要求I所述的,其特征在于所述位置信息包含更新后完整包中包内文件距离打包文件头部的偏移值和文件长度,具备相同特征值的包内文件对应相同的位置信息。6.根据权利要求I所述的,其特征在于所述索引信息由文件标识和文件偏移值决定组成。7.根据权利要求6所述的,其特征在于所述文件标识是文件名或文件名哈希值,文件标识唯一标识打包文件内的文件。8.根据权利要求6所述的,其特征在于所述文件偏移值反映文件在打包文件内的位置。全文摘要本专利技术公开了,其操作流程如下在文件打包后的完整包中建立特征值表;然后,为每一个打包文件计算出特征值并保存到特征值表中;比较更新文件的特征值与完整包里特征值表中的数据;若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,并将其更新后的位置信息与特征值记录到特征值表中;若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中。采用本专利技术的方法对打包文件进行更新时,不同更新包中相同内容的文件不会多次被放入更新包中,从而减少了包文件更新过程中的网络流量和更新的时间开销。文档编号G06F9/445GK102937903SQ20121040658公开日2013年2月20日 申请日期2012年10月23日 优先权日2012年10月23日专利技术者陈飞舟, 吴才忠, 刘畅 申请人:珠海金山网络游戏科技有限公司, 成都西山居互动娱乐科技有限公司本文档来自技高网...

【技术保护点】
一种基于特征匹配的打包文件更新方法,其特征在于包括以下步骤:步骤1:在文件打包后的完整包中建立特征值表;步骤2:为每一个打包文件计算出特征值并保存到特征值表中;步骤3:把要写入的更新文件打包为更新包,在更新包制作过程中,比较更新文件的特征值与完整包里特征值表中的数据;步骤4:若特征值不存在于此表中,则认为完整包中尚未存在此文件,此时将文件的数据和索引信息写入更新包,将更新包加入到完整包内,并将其更新后的位置信息与特征值记录到特征值表中;步骤5:若特征值存在于特征值表中,则表明此文件已经存在于完整包中,此时仅将特征值对应的位置信息写入更新包的索引中,再将更新包加入到完整包内。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈飞舟吴才忠刘畅
申请(专利权)人:珠海金山网络游戏科技有限公司成都西山居互动娱乐科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1