CN103399804A - 一种远程打包文件修复的方法及*** - Google Patents
一种远程打包文件修复的方法及*** Download PDFInfo
- Publication number
- CN103399804A CN103399804A CN2013103278809A CN201310327880A CN103399804A CN 103399804 A CN103399804 A CN 103399804A CN 2013103278809 A CN2013103278809 A CN 2013103278809A CN 201310327880 A CN201310327880 A CN 201310327880A CN 103399804 A CN103399804 A CN 103399804A
- Authority
- CN
- China
- Prior art keywords
- packaging file
- data
- data segment
- service end
- local
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种远程打包文件修复的方法及***,当从服务端下载的本地打包文件损坏时,通过校验数据检测出本地打包文件中损坏的数据段,再根据修正数据从服务端的原始打包文件中下载与本地打包文件中损坏的数据段相对应的原数据段,并将此原数据段覆盖写入至本地打包文件中,完成对本地打包文件的修复。修复过程避免了重新对原始打包文件的下载,减少了流量从而节省时间,并避免了重新下载过程可能产生的数据传输错误及下载后的再次解压错误。
Description
技术领域
本发明涉及打包文件的修复,特别是一种远程打包文件修复的方法及***。
背景技术
在文件的传输、下载、存储等过程中,经常会遇到打包文件。由于打包文件减少了原文件的大小,通过服务端下载相关的打包文件时,就节省了时间,提高了效率,在对打包文件加密后,也可以保证文件的安全,并且打包文件被下载或存储后,相应地节省了存储空间。
打包文件在带来方便的同时,也有一些相应的缺点。服务端一般以打包的形式存储客户端打包文件,客户端打包文件被用户接收后,在对客户端打包文件解压时,通常会发生无法打开、解压错误等问题,这些问题可能是由于磁盘读写时断电、传输或解压错误等导致的,一旦这些问题发生,相应的客户端打包文件就无法使用,如果原打包文件可以重新从服务端重新下载,则可以避免文件的丢失或损坏,但重新下载费时并占用网络流量,且无法避免重复性的传输及解压错误。
发明内容
为解决上述问题,本发明的目的在于提供一种远程打包文件修复方法及***,通过下载校验、修正数据对打包文件进行修复,避免从服务端重新下载原打包文件,节省时间,减少流量,且防止了重复性的传输及解压错误。
本发明解决其问题所采用的技术方案是:
一种远程打包文件修复的方法,所述打包文件为从服务端获取的本地打包文件,包括:
校验步骤,从服务端下载校验数据,通过校验数据检测本地打包文件是否正确;
修正步骤,当通过校验数据检测出本地打包文件错误时,从服务端下载修正数据,并根据修正数据对本地打包文件进行修复。
所述方法还包括校验数据和修正数据生成的步骤,对服务端的原始打包文件中的数据段进行扫描生成校验数据和修正数据,所述原始打包文件为服务端存储的与本地打包文件相对应的原始文件。
所述服务端的原始打包文件发生变化时,重新生成原始打包文件的校验数据和修正数据。
所述对服务端的原始打包文件中的数据段进行扫描生成的校验数据包括服务端原始打包文件的数据段校验码、数据段大小及数据段偏移值,所述数据段大小及数据段偏移值用于定位本地打包文件中的数据段从而生成本地打包文件的数据段校验码,所述原始打包文件的数据段校验码用于与生成的本地打包文件的数据段校验码进行对比,以判断本地打包文件中的数据段是否正确,从而确定本地打包文件是否正确。
所述从服务端下载修正数据时,仅下载判断出的本地打包文件中错误数据段所对应的修正数据。
所述对服务端的原始打包文件中的数据段进行扫描生成的修正数据包括服务端原始打包文件中的数据段地址及对应的数据段偏移值,根据修正数据中服务端原始打包文件中的数据段地址及对应的数据段偏移值,从服务端的原始打包文件中下载所述错误数据段所对应的原数据段,并将此原数据段覆盖写入至本地打包文件中发生错误的数据段的位置实现对打包文件的修复。
所述修正数据所包括的服务端原始打包文件中的数据段地址为相对地址。
一种远程打包文件修复的***,所述打包文件为从服务端获取的本地打包文件,包括:
校验模块,用于从服务端下载校验数据,通过校验数据检测本地打包文件是否正确;
修正模块,用于当通过校验数据检测出本地打包文件错误时,从服务端下载修正数据,并根据修正数据对本地打包文件进行修复。
所述***还包括数据生成模块,用于对服务端的原始打包文件中的数据段进行扫描生成校验数据和修正数据,所述原始打包文件为服务端存储的与本地打包文件相对应的原始文件。
所述服务端的原始打包文件发生变化时,重新生成原始打包文件的校验数据和修正数据。
所述对服务端的原始打包文件中的数据段进行扫描生成的校验数据包括服务端原始打包文件的数据段校验码、数据段大小及数据段偏移值,所述数据段大小及数据段偏移值用于定位本地打包文件中的数据段从而生成本地打包文件的数据段校验码,所述原始打包文件的数据段校验码用于与生成的本地打包文件的数据段校验码进行对比,以判断本地打包文件中的数据段是否正确,从而确定本地打包文件是否正确。
所述从服务端下载修正数据时,仅下载判断出的本地打包文件中错误数据段所对应的修正数据。
所述对服务端的原始打包文件中的数据段进行扫描生成的修正数据包括服务端原始打包文件中的数据段地址及对应的数据段偏移值,根据修正数据中服务端原始打包文件中的数据段地址及对应的数据段偏移值,从服务端的原始打包文件中下载所述错误数据段所对应的原数据段,并将此原数据段覆盖写入至本地打包文件中发生错误的数据段的位置实现对打包文件的修复。
所述修正数据所包括的服务端原始打包文件中的数据段地址为相对地址。
本发明的有益效果是:
本发明采用一种远程打包文件修复的方法及***,当打包文件解压错误时,直接从服务端下载校验数据对打包文件进行校验,从而检测出相应的错误数据段,再下载修正数据,对错误的数据段进行修正,无须重新下载原打包文件,节省时间和流量,同时避免了重复下载时的数据传输错误及下载后的再次解压错误。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明所述方法流程图;
图2是本发明所述客户端打包文件存储时的数据示意图;
图3是本发明所述服务端存储的原打包文件、校验数据及修正数据示意图;
图4是本图3中所述校验数据放大图;
图5是本图3中所述修正数据放大图;
图6是本发明所述***的结构图。
具体实施方式
用户在下载打包文件时,对应的,在服务端保存有用户需要下载的文件,此文件即为原始打包文件(或基准文件),当用户将此文件下载到客户端机器后,理论上,对应的客户端机器存储有与基准文件一致的本地打包文件,但此本地打包文件在解压时,经常会产生解压错误,通过本发明所述方法,可以对此本地打包文件进行修复,使此本地打包文件与基准文件保持一致。
所述服务端具有校验数据与修正数据,所述校验数据与修正数据由服务端的修复数据生成器生成,所述修复数据生成器为服务端中用于对基准文件扫描并记录扫描信息的程序。修复数据生成器在接收基准文件后,以基准文件为参数,对基准文件进行扫描生成对应的校验数据与修正数据。基准文件一般以数据段的方式存储,修复数据生成器以数据段为单位从低地址到高地址依次扫描基准文件中的第一个数据段,扫描的过程中,修复数据生成器会计算并记录每个数据段的校验码信息,并将记录的数据段校验码、数据段大小、数据段偏移值写入至校验数据,同时将记录的基准文件中数据段的地址、数据段偏移值写入至修正数据。需要说明的是,当基准文件发生变化时,修复数据生成器根据基准文件会重新生成校验数据与修正数据。
当本地打包文件出现解压错误时,此本地打包文件的客户端修复器会与服务端建立连接,对本地打包文件进行修复,所述客户端修复器是客户端用于对本地打包文件进行修复的程序。参见图1所示的流程图,客户端修复器在连接服务端后,会下载服务端的校验数据。参照图2所示用户下载后的本地打包文件数据示意图,同时参照图3所示对应的服务端存储的基准文件、校验数据与修正数据示意图,基准文件与本地打包文件以相同的数据段进行存储。客户端修复器下载校验数据后,会对本地打包文件进行扫描,参照图4所示的校验数据,校验数据包括数据段校验码、数据段大小及数据段偏移值,客户端修复器根据校验数据提供的数据段大小及数据段偏移值对本地打包文件进行扫描,计算出本地打包文件中每一数据段的校验码,并将计算出的每一数据段的校验码与校验数据中的数据段校验码进行对比,若某一数据段的校验码对比错误时,则说明此数据段已经损坏,若经对比,所有的校验码相同,则说明本地打包文件没有损坏。
当发现数据段有损坏时,客户端修复器重新连接服务端,从服务端下载修正数据,参照图5所示的修正数据,修正数据包含基准文件中的数据段地址及对应的数据段偏移值,为了减少修正数据的空间,所述数据段地址为相对地址。客户修复器根据修正数据,计算检测出的错误数据段在基准文件中的位置及偏移值,下载基准文件中检测出的错误数据段所对应的原数据段,并将下载的原数据段覆盖写入本地打包文件中的对应位置,完成对本地打包文件的的修复。客户端修复器从服务端下载修正数据时,可以仅下载检测出的错误数据段所对应的修正数据,并不需要下载全部的修正数据,以减少下载流量从而节省时间。
通过对本发明所述方法,在本地打包文件损坏时,不需要重新下载,减少流量并节省时间,同时也避免了重新下载时的传输错误及下载后的再次解压错误。
本发明公开了一种远程打包文件修复的***,参照6所示,包括数据生成模块、校验模块及修正模块。所述数据生成模块用于通过服务端的数据修复生成器对服务端的基准文件中的数据段进行扫描生成校验数据和修正数据,所述数据修复生成器是服务端中用于对基准文件中的数据段扫描并记录扫描信息的程序,所述基准文件为服务端存储的与本地打包文件相对应的下载文件。数据修复生成器对基准文件的每个数据段进行扫描,生成对应的校验数据与修正数据,所述校验数据包含基准文件中每个数据段的数据段校验码、数据段大小及数据段偏移值,修正数据包含基准文件中每个数据段的地址及偏移值。若基准文件发生变化时,数据修复生成器会根据基准文件重新生成对应的校验数据与修正数据。所述校验模块从服务端下载校验数据后,根据校验数据中包含的基准文件的数据段大小及数据段偏移值定位本地打包文件的数据段,并生成与本地打包文件相对应的数据段校验码,之后,校验模块将基准文件的数据段校验码与生成的本地打包文件的数据段校验码进行对比,以判断本地打包文件中的数据段是否正确,从而确定本地打包文件是否正确。若本地打包文件中的数据段错误时,则说明本地打包文件损坏,修正模块则从服务端下载修正数据,修正模块可以仅下载本地打包文件中错误数据段所对应的修正数据,以减少流量从而节省时间,之后,修正模块根据修正数据所包含的服务端基准文件中的数据段地址及对应的数据段偏移值,从服务端的基准文件中下载所述本地文件中的错误数据段所对应的原数据段,并将此原数据段覆盖写入至本地打包文件中发生错误的数据段的位置,以完成对打包文件的修复。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
Claims (14)
1.一种远程打包文件修复的方法,所述打包文件为从服务端获取的本地打包文件,其特征在于,包括:
校验步骤,从服务端下载校验数据,通过校验数据检测本地打包文件是否正确;
修正步骤,当通过校验数据检测出本地打包文件错误时,从服务端下载修正数据,并根据修正数据对本地打包文件进行修复。
2.根据权利要求1所述的一种远程打包文件修复的方法,其特征在于,还包括校验数据和修正数据生成的步骤,对服务端的原始打包文件中的数据段进行扫描生成校验数据和修正数据,所述原始打包文件为服务端存储的与本地打包文件相对应的原始文件。
3.根据权利要求2所述的一种远程打包文件修复的方法,其特征在于,所述服务端的原始打包文件发生变化时,重新生成原始打包文件的校验数据和修正数据。
4.根据权利要求2所述的一种远程打包文件修复的方法,其特征在于,所述对服务端的原始打包文件中的数据段进行扫描生成的校验数据包括服务端原始打包文件的数据段校验码、数据段大小及数据段偏移值,所述数据段大小及数据段偏移值用于定位本地打包文件中的数据段从而生成本地打包文件的数据段校验码,所述原始打包文件的数据段校验码用于与生成的本地打包文件的数据段校验码进行对比,以判断本地打包文件中的数据段是否正确,从而确定本地打包文件是否正确。
5.根据权利要求4所述的一种远程打包文件修复的方法,其特征在于,所述修正步骤中从服务端下载修正数据时,仅下载判断出的本地打包文件中错误数据段所对应的修正数据。
6.根据权利要求2所述的一种远程打包文件修复的方法,其特征在于,所述对服务端的原始打包文件中的数据段进行扫描生成的修正数据包括服务端原始打包文件中的数据段地址及对应的数据段偏移值,根据修正数据中服务端原始打包文件中的数据段地址及对应的数据段偏移值,从服务端的原始打包文件中下载所述错误数据段所对应的原数据段,并将此原数据段覆盖写入至本地打包文件中发生错误的数据段的位置实现对打包文件的修复。
7.根据权利要求6所述的一种远程打包文件修复的方法,其特征在于,所述修正数据所包括的服务端原始打包文件中的数据段地址为相对地址。
8.一种远程打包文件修复的***,所述打包文件为从服务端获取的本地打包文件,其特征在于,包括:
校验模块,用于从服务端下载校验数据,通过校验数据检测本地打包文件是否正确;
修正模块,用于当通过校验数据检测出本地打包文件错误时,从服务端下载修正数据,并根据修正数据对本地打包文件进行修复。
9.根据权利要求8所述的一种远程打包文件修复的***,其特征在于,还包括数据生成模块,用于对服务端的原始打包文件中的数据段进行扫描生成校验数据和修正数据,所述原始打包文件为服务端存储的与本地打包文件相对应的原始文件。
10.根据权利要求9所述的一种远程打包文件修复的***,其特征在于,所述服务端的原始打包文件发生变化时,重新生成原始打包文件的校验数据和修正数据。
11.根据权利要求9所述的一种远程打包文件修复的***,其特征在于,所述对服务端的原始打包文件中的数据段进行扫描生成的校验数据包括服务端原始打包文件的数据段校验码、数据段大小及数据段偏移值,所述数据段大小及数据段偏移值用于定位本地打包文件中的数据段从而生成本地打包文件的数据段校验码,所述原始打包文件的数据段校验码用于与生成的本地打包文件的数据段校验码进行对比,以判断本地打包文件中的数据段是否正确,从而确定本地打包文件是否正确。
12.根据权利要求11所述的一种远程打包文件修复的***,其特征在于,所述修正模块从服务端下载修正数据时,仅下载判断出的本地打包文件中错误数据段所对应的修正数据。
13.根据权利要求9所述的一种远程打包文件修复的***,其特征在于,所述对服务端的原始打包文件中的数据段进行扫描生成的修正数据包括服务端原始打包文件中的数据段地址及对应的数据段偏移值,根据修正数据中服务端原始打包文件中的数据段地址及对应的数据段偏移值,从服务端的原始打包文件中下载所述错误数据段所对应的原数据段,并将此原数据段覆盖写入至本地打包文件中发生错误的数据段的位置实现对打包文件的修复。
14.根据权利要求13所述的一种远程打包文件修复的***,其特征在于,所述修正数据所包括的服务端原始打包文件中的数据段地址为相对地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103278809A CN103399804A (zh) | 2013-07-31 | 2013-07-31 | 一种远程打包文件修复的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103278809A CN103399804A (zh) | 2013-07-31 | 2013-07-31 | 一种远程打包文件修复的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103399804A true CN103399804A (zh) | 2013-11-20 |
Family
ID=49563437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103278809A Pending CN103399804A (zh) | 2013-07-31 | 2013-07-31 | 一种远程打包文件修复的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103399804A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739971A (zh) * | 2016-01-20 | 2016-07-06 | 网易(杭州)网络有限公司 | 校验文件的生成、使用方法及装置 |
CN106650473A (zh) * | 2016-12-01 | 2017-05-10 | 中国工商银行股份有限公司 | 校验多文件封装包的方法及***、发送装置、接收装置 |
CN109254954A (zh) * | 2018-09-13 | 2019-01-22 | 政采云有限公司 | 文件处理方法和装置、计算设备及存储介质 |
CN114548079A (zh) * | 2022-01-26 | 2022-05-27 | 深圳联想懂的通信有限公司 | 一种文本显示方法、装置及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070186066A1 (en) * | 2006-02-03 | 2007-08-09 | Emc Corporation | Fast verification of computer backup data |
CN101458645A (zh) * | 2007-12-11 | 2009-06-17 | 英业达股份有限公司 | 计算机操作***与其软件的文件数据修复***及其方法 |
CN101795293A (zh) * | 2010-01-27 | 2010-08-04 | 浪潮(北京)电子信息产业有限公司 | 一种文件的下载方法、***及发送装置、检测装置 |
CN102053880A (zh) * | 2011-01-07 | 2011-05-11 | 杭州电子科技大学 | 一种基于内容的Rar文件雕复方法 |
CN102609326A (zh) * | 2012-01-17 | 2012-07-25 | 大唐移动通信设备有限公司 | 一种数据下载处理方法及装置 |
CN102937903A (zh) * | 2012-10-23 | 2013-02-20 | 珠海金山网络游戏科技有限公司 | 一种基于特征匹配的打包文件更新方法 |
-
2013
- 2013-07-31 CN CN2013103278809A patent/CN103399804A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070186066A1 (en) * | 2006-02-03 | 2007-08-09 | Emc Corporation | Fast verification of computer backup data |
CN101458645A (zh) * | 2007-12-11 | 2009-06-17 | 英业达股份有限公司 | 计算机操作***与其软件的文件数据修复***及其方法 |
CN101795293A (zh) * | 2010-01-27 | 2010-08-04 | 浪潮(北京)电子信息产业有限公司 | 一种文件的下载方法、***及发送装置、检测装置 |
CN102053880A (zh) * | 2011-01-07 | 2011-05-11 | 杭州电子科技大学 | 一种基于内容的Rar文件雕复方法 |
CN102609326A (zh) * | 2012-01-17 | 2012-07-25 | 大唐移动通信设备有限公司 | 一种数据下载处理方法及装置 |
CN102937903A (zh) * | 2012-10-23 | 2013-02-20 | 珠海金山网络游戏科技有限公司 | 一种基于特征匹配的打包文件更新方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739971A (zh) * | 2016-01-20 | 2016-07-06 | 网易(杭州)网络有限公司 | 校验文件的生成、使用方法及装置 |
CN105739971B (zh) * | 2016-01-20 | 2019-03-08 | 网易(杭州)网络有限公司 | 校验文件的生成、使用方法及装置 |
CN106650473A (zh) * | 2016-12-01 | 2017-05-10 | 中国工商银行股份有限公司 | 校验多文件封装包的方法及***、发送装置、接收装置 |
CN109254954A (zh) * | 2018-09-13 | 2019-01-22 | 政采云有限公司 | 文件处理方法和装置、计算设备及存储介质 |
CN109254954B (zh) * | 2018-09-13 | 2020-06-09 | 政采云有限公司 | 文件处理方法和装置、计算设备及存储介质 |
CN114548079A (zh) * | 2022-01-26 | 2022-05-27 | 深圳联想懂的通信有限公司 | 一种文本显示方法、装置及可读存储介质 |
CN114548079B (zh) * | 2022-01-26 | 2023-05-16 | 广东联想懂的通信有限公司 | 一种文本显示方法、装置及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032377B (zh) | 通信模块软件升级方法、***及通信模块 | |
CN106843957B (zh) | ***固件升级方法及装置 | |
CN100562857C (zh) | 校验数据的方法和装置 | |
CN108021410A (zh) | 一种智能家电设备的固件升级方法及*** | |
CN103399804A (zh) | 一种远程打包文件修复的方法及*** | |
CN103631721A (zh) | 一种隔离内存中坏块的方法及*** | |
CN105740088A (zh) | 闪存数据纠错方法及装置 | |
CN101944051A (zh) | 片上多备份的高可靠嵌入式***固件及其工作方法 | |
CN103024438B (zh) | 一种机顶盒及其生产测试方法、*** | |
CN110083360A (zh) | 一种应用程序代码的编译方法、装置、设备及存储介质 | |
CN105280240A (zh) | 一种Nand Flash参数的读取方法 | |
CN102402470A (zh) | 闪存程序自动纠错修复方法及装置 | |
CN113590161B (zh) | 内存可控的nb-iot模组差分升级方法及*** | |
CN103279401B (zh) | 一种访问存储器的方法及装置 | |
CN109766140A (zh) | 一种机顶盒启动异常的定位方法及装置 | |
CN108170461A (zh) | 差分升级包生成方法、差分升级方法及装置 | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
CN107368383B (zh) | 一种汽车控制器配置文件校验方法及设备 | |
CN103425932A (zh) | 签名校验方法和终端设备 | |
CN102520223A (zh) | 用于电能表的软件抗干扰方法 | |
CN103685471A (zh) | 一种以独占方式对软件客户端进行更新的方法及*** | |
CN103778114A (zh) | 文件修复***和方法 | |
CN104898985A (zh) | 存储装置、控制器以及数据写入方法 | |
CN109324810A (zh) | 物联网设备升级包的制作方法及*** | |
CN112948819B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131120 |