本發(fā)明專利技術(shù)公開了一種基于特征匹配的打包文件更新方法,其操作流程如下:在文件打包后的完整包中建立特征值表;然后,為每一個(gè)打包文件計(jì)算出特征值并保存到特征值表中;比較更新文件的特征值與完整包里特征值表中的數(shù)據(jù);若特征值不存在于此表中,則認(rèn)為完整包中尚未存在此文件,此時(shí)將文件的數(shù)據(jù)和索引信息寫入更新包,并將其更新后的位置信息與特征值記錄到特征值表中;若特征值存在于特征值表中,則表明此文件已經(jīng)存在于完整包中,此時(shí)僅將特征值對(duì)應(yīng)的位置信息寫入更新包的索引中。采用本發(fā)明專利技術(shù)的方法對(duì)打包文件進(jìn)行更新時(shí),不同更新包中相同內(nèi)容的文件不會(huì)多次被放入更新包中,從而減少了包文件更新過(guò)程中的網(wǎng)絡(luò)流量和更新的時(shí)間開銷。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及一種打包文件更新方法,尤其涉及。
技術(shù)介紹
現(xiàn)有軟件客戶端資源通常采用打包方式存儲(chǔ),從而獲得傳輸方便、資源保密、以及更加快速訪問(wèn)速度等優(yōu)點(diǎn)。在對(duì)打包文件進(jìn)行更新的過(guò)程中,傳統(tǒng)更新過(guò)程將需要更新的增量數(shù)據(jù)文件打包到更新包中,并以追加和覆蓋的方式替換掉打包文件中需要更新的包內(nèi)文件。然而在更新較為平凡的打包文件中,常會(huì)出現(xiàn)具備相同內(nèi)容的文件被反復(fù)更新的現(xiàn)象。已經(jīng)更新至客戶端打包文件中的相同內(nèi)容的文件,可能多次出現(xiàn)在不同版本的更新包 中并被反復(fù)更新,這樣會(huì)使得更新包體積變大,并增加在線更新過(guò)程中的網(wǎng)絡(luò)流量增和更新時(shí)間的開銷。
技術(shù)實(shí)現(xiàn)思路
為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,本專利技術(shù)的目的在于提供,減少打包文件更新過(guò)程中的內(nèi)容傳輸,節(jié)省更新時(shí)間。本專利技術(shù)所采用的技術(shù)方案是,,包括以下步驟 步驟I:在文件打包后的完整包中建立特征值表; 步驟2 :為每一個(gè)打包文件計(jì)算出特征值并保存到特征值表中; 步驟3 :把要寫入的更新文件打包為更新包,在更新包制作過(guò)程中,比較更新文件的特征值與完整包里特征值表中的數(shù)據(jù); 步驟4:若特征值不存在于此表中,則認(rèn)為完整包中尚未存在此文件,此時(shí)將文件的數(shù)據(jù)和索引信息寫入更新包,將更新包加入到完整包內(nèi),并將其更新后的位置信息與特征值記錄到特征值表中; 步驟5 :若特征值存在于特征值表中,則表明此文件已經(jīng)存在于完整包中,此時(shí)僅將特征值對(duì)應(yīng)的位置信息寫入更新包的索引中,再將更新包加入到完整包內(nèi)。進(jìn)一步,所述特征值包括文件內(nèi)容哈希值,所述文件內(nèi)容哈希值是在打包過(guò)程中按照設(shè)定的哈希算法對(duì)文件內(nèi)容進(jìn)行計(jì)算得出的數(shù)字摘要,文件內(nèi)容哈希值為特征值的主要組成部分。進(jìn)一步,為了克服哈希值存在的哈希沖突問(wèn)題,所述特征值中還包括其他描述文件的確定性信息,所述確定性信息由文件內(nèi)某一小段原始數(shù)據(jù)、文件大小、文件最后修改日期中的一種或多種組成,文件內(nèi)容哈希值和確定性信息組成特征值。進(jìn)一步,所述位置信息包含更新后完整包中包內(nèi)文件距離打包文件頭部的偏移值和文件長(zhǎng)度,具備相同特征值的包內(nèi)文件對(duì)應(yīng)相同的位置信息。進(jìn)一步,所述索引信息由文件標(biāo)識(shí)和文件偏移值決定組成。所述文件標(biāo)識(shí)是文件名或文件名哈希值,文件標(biāo)識(shí)唯一標(biāo)識(shí)打包文件內(nèi)的文件;所述文件偏移值反映文件在打包文件內(nèi)的位置。本專利技術(shù)的有益效果是 與現(xiàn)有技術(shù)相比,采用本專利技術(shù)的方法對(duì)打包文件進(jìn)行更新時(shí),不同更新包中相同內(nèi)容的文件由于具備相同的特征值,不會(huì)多次被放入更新包中,從而減少了包文件更新過(guò)程中的網(wǎng)絡(luò)流量和更新的時(shí)間開銷。具體實(shí)施例方式本專利技術(shù)提出了,該方法涉及文件打包過(guò)程以及更新過(guò)程,打包過(guò)程即將文件寫入文件包的過(guò)程,其輸出可以是一個(gè)具備完整數(shù)據(jù)的完整包,亦可以是一個(gè)僅具備增量數(shù)據(jù)的更新包;更新過(guò)程即將更新包中的文件更新至完整包的過(guò)程,更新過(guò)程中將在完整包中追加新的包內(nèi)文件數(shù)據(jù)并更新包內(nèi)文件索引。本專利技術(shù)的打包文件更新方法操作流程如下首先,在文件打包后的完整包中建立特征值表;然后,為每一個(gè)打包文件計(jì)算出特征值并保存到特征值表中;將更新文件打包為更新包,并比較更新文件的特征值與完整包里特征值表中的數(shù)據(jù);若特征值不存在于此表中,則認(rèn)為完整包中尚未存在此文件,此時(shí)將文件的數(shù)據(jù)和索引信息寫入更新包,將更新包內(nèi)容加入到完整包內(nèi),并將其更新后的位置信息與特征值記錄到特征值表中;若特征值存在于特征值表中,則表明此文件已經(jīng)存在于完整包中,此時(shí)僅將特征值對(duì)應(yīng)的位置信息寫入更新包的索引中,而不必包含具體的包內(nèi)文件數(shù)據(jù),再將更新包加入到完整包內(nèi)。本方法的一個(gè)實(shí)現(xiàn)例子為設(shè)a. txt與b. txt文件已經(jīng)存在與完整包中,此時(shí)需要將c. txt文件增加到更新包中。由于檢測(cè)到c. txt文件與b. txt文件有相同的特征值,貝Ij此時(shí)c. txt文件的具體內(nèi)容是不會(huì)被寫入更新包中的,而只將c. txt的索引信息寫入更新包,即“文件標(biāo)識(shí)” =c. txt,“偏移值”=0x456,如下方表I。若將來(lái)更新包中有d. txt文件,而此文件的特征值與原有的a. txt、b. txt、c. txt的特征值都不相同,貝U在寫入它的索引信息的同時(shí),還需要寫入d. txt的數(shù)據(jù)內(nèi)容,和將d. txt文件的特征值記錄入特征值表。權(quán)利要求1.,其特征在于包括以下步驟 步驟I:在文件打包后的完整包中建立特征值表; 步驟2 :為每一個(gè)打包文件計(jì)算出特征值并保存到特征值表中; 步驟3 :把要寫入的更新文件打包為更新包,在更新包制作過(guò)程中,比較更新文件的特征值與完整包里特征值表中的數(shù)據(jù); 步驟4 :若特征值不存在于此表中,則認(rèn)為完整包中尚未存在此文件,此時(shí)將文件的數(shù)據(jù)和索引信息寫入更新包,將更新包加入到完整包內(nèi),并將其更新后的位置信息與特征值記錄到特征值表中; 步驟5 :若特征值存在于特征值表中,則表明此文件已經(jīng)存在于完整包中,此時(shí)僅將特征值對(duì)應(yīng)的位置信息寫入更新包的索引中,再將更新包加入到完整包內(nèi)。2.根據(jù)權(quán)利要求I所述的,其特征在于所述特征值包括文件內(nèi)容哈希值,所述文件內(nèi)容哈希值是在打包過(guò)程中按照設(shè)定的哈希算法對(duì)文件內(nèi)容進(jìn)行計(jì)算得出的數(shù)字摘要。3.根據(jù)權(quán)利要求2所述的,其特征在于所述特征值中還包括其他描述文件的確定性信息。4.根據(jù)權(quán)利要求3所述的,其特征在于所述確定性信息由文件內(nèi)某一小段原始數(shù)據(jù)、文件大小、文件最后修改日期中的一種或多種組成。5.根據(jù)權(quán)利要求I所述的,其特征在于所述位置信息包含更新后完整包中包內(nèi)文件距離打包文件頭部的偏移值和文件長(zhǎng)度,具備相同特征值的包內(nèi)文件對(duì)應(yīng)相同的位置信息。6.根據(jù)權(quán)利要求I所述的,其特征在于所述索引信息由文件標(biāo)識(shí)和文件偏移值決定組成。7.根據(jù)權(quán)利要求6所述的,其特征在于所述文件標(biāo)識(shí)是文件名或文件名哈希值,文件標(biāo)識(shí)唯一標(biāo)識(shí)打包文件內(nèi)的文件。8.根據(jù)權(quán)利要求6所述的,其特征在于所述文件偏移值反映文件在打包文件內(nèi)的位置。全文摘要本專利技術(shù)公開了,其操作流程如下在文件打包后的完整包中建立特征值表;然后,為每一個(gè)打包文件計(jì)算出特征值并保存到特征值表中;比較更新文件的特征值與完整包里特征值表中的數(shù)據(jù);若特征值不存在于此表中,則認(rèn)為完整包中尚未存在此文件,此時(shí)將文件的數(shù)據(jù)和索引信息寫入更新包,并將其更新后的位置信息與特征值記錄到特征值表中;若特征值存在于特征值表中,則表明此文件已經(jīng)存在于完整包中,此時(shí)僅將特征值對(duì)應(yīng)的位置信息寫入更新包的索引中。采用本專利技術(shù)的方法對(duì)打包文件進(jìn)行更新時(shí),不同更新包中相同內(nèi)容的文件不會(huì)多次被放入更新包中,從而減少了包文件更新過(guò)程中的網(wǎng)絡(luò)流量和更新的時(shí)間開銷。文檔編號(hào)G06F9/445GK102937903SQ20121040658公開日2013年2月20日 申請(qǐng)日期2012年10月23日 優(yōu)先權(quán)日2012年10月23日專利技術(shù)者陳飛舟, 吳才忠, 劉暢 申請(qǐng)人:珠海金山網(wǎng)絡(luò)游戲科技有限公司, 成都西山居互動(dòng)娛樂(lè)科技有限公司本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種基于特征匹配的打包文件更新方法,其特征在于包括以下步驟:步驟1:在文件打包后的完整包中建立特征值表;步驟2:為每一個(gè)打包文件計(jì)算出特征值并保存到特征值表中;步驟3:把要寫入的更新文件打包為更新包,在更新包制作過(guò)程中,比較更新文件的特征值與完整包里特征值表中的數(shù)據(jù);步驟4:若特征值不存在于此表中,則認(rèn)為完整包中尚未存在此文件,此時(shí)將文件的數(shù)據(jù)和索引信息寫入更新包,將更新包加入到完整包內(nèi),并將其更新后的位置信息與特征值記錄到特征值表中;步驟5:若特征值存在于特征值表中,則表明此文件已經(jīng)存在于完整包中,此時(shí)僅將特征值對(duì)應(yīng)的位置信息寫入更新包的索引中,再將更新包加入到完整包內(nèi)。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:陳飛舟,吳才忠,劉暢,
申請(qǐng)(專利權(quán))人:珠海金山網(wǎng)絡(luò)游戲科技有限公司,成都西山居互動(dòng)娛樂(lè)科技有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。