【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种数据文件的增量更新方法和服务器、客户端以及系统。
技术介绍
在客户端进行软件更新时,需要通过互联网从服务器端下载该软件的新版本安装包,客户端需要为新版本安装包的下载付出相应的下载时间及流量。然而新版本安装包中的文件和客户端已安装的版本的安装包中的文件有较大部分是没有变化的,因此客户端付出的下载时间和流量中较大部分是为这些相同的文件付出的。而增量更新方式仅需要从服务器端下载与客户端已安装的版本不同的补丁包,减少了客户端下载付出的时间和流量,因此,增量更新方法成为重要的更新方法。现有技术中采用的增量更新方法为:服务器端将新版本安装包进行压缩,将压缩后的新版本安装包分别与各个压缩后的历史版本安装包生成新版本与该历史版本对应的补丁包,找出压缩后的新版本安装包中与该压缩后的历史版本安装包中不同的多个文件,将各个不同的文件打包生成一个补丁包。例如现有技术提供的bsDiff/bsPatch方案中,存在执行速度慢、内存占用高的缺点。具体的,bsDiff执行速度比较慢,且生成增量补丁包时对内存消耗十分巨大,bsDiff在生成N与M大小的补丁包时需要消耗MAX(17*N,9*N+M)+O(1)的内存空间。其中,N是指原始数据文件,M是指补丁包大小,当生成超过100M文件的补丁包需要专门使用64位的bsDiff工具。又如,bsPatch执行速度也比较慢,在进行补丁升级时需要消耗内存为N+M,这个内存消耗量并不适用于移动设备。比如Android版本中的游戏资源包超过200M大小,在游戏运行时进行打补丁操作,会容易耗尽移动设备的内存。现有 ...
【技术保护点】
一种数据文件的增量更新方法,其特征在于,包括:获取新版本数据文件,以及根据所述新版本数据文件获取所述新版本数据文件对应的多个文件分块;根据所述多个文件分块分别计算各个文件分块的新版本分块校验值;将所述各个文件分块的新版本分块校验值、所述新版本数据文件对应的文件名称和下载地址都写入配置文件中,以及向客户端提供所述配置文件,以使所述客户端根据所述配置文件完成增量更新。
【技术特征摘要】
1.一种数据文件的增量更新方法,其特征在于,包括:获取新版本数据文件,以及根据所述新版本数据文件获取所述新版本数据文件对应的多个文件分块;根据所述多个文件分块分别计算各个文件分块的新版本分块校验值;将所述各个文件分块的新版本分块校验值、所述新版本数据文件对应的文件名称和下载地址都写入配置文件中,以及向客户端提供所述配置文件,以使所述客户端根据所述配置文件完成增量更新。2.根据权利要求1所述的方法,其特征在于,所述向客户端提供所述配置文件之前,所述方法还包括:获取所述新版本数据文件对应的新版本号,和/或下载策略,所述下载策略包括:所述新版本数据文件需要采用强制更新还是可选更新;将所述新版本数据文件对应的新版本号,和/或下载策略写入到所述配置文件中。3.根据权利要求1所述的方法,其特征在于,所述根据所述新版本数据文件获取所述新版本数据文件对应的多个文件分块,包括:按照分块大小对所述新版本数据文件进行平分,得到总分块个数为L/size的文件分块,其中,L表示所述新版本数据文件的文件长度,size表示所述分块大小;如果L%size不等于0,则将L%size所得的余数对应的文件分块保存到校验表中,其中,%表示L对size进行取模。4.根据权利要求3所述的方法,其特征在于,所述根据所述多个文件分块分别计算各个文件分块的新版本分块校验值,包括:分别计算所述总分块个数为L/size中每个文件分块的新版本分块校验值,并将计算出的新版本分块校验值保存到所述校验表中;所述将所述各个文件分块的新版本分块校验值、所述新版本数据文件对应的文件名称和下载地址都写入配置文件中,包括:将所述校验表、所述新版本数据文件对应的文件名称和下载地址都写入配置文件中。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述多个文件分块分别计算各个文件分块的新版本分块校验值,包括:根据所述多个文件分块分别计算各个文件分块的新版本弱校验值和新版本强校验值。6.一种数据文件的增量更新方法,其特征在于,包括:获取数据文件提供服务器提供的配置文件,以及从所述配置文件中解析出新版本数据文件对应的文件名称和下载地址、所述新版数据文件中多个文件分块的新版本分块校验值;根据所述文件名称获取当前版本数据文件,以及使用与所述文件分块的分块大小相等的滑动窗口从所述当前版本数据文件中选择出所述滑动窗口滑动至不同位置所对应的窗口数据块;根据选择出的所述窗口数据块计算所述窗口数据块的当前版本分块校验值,以及判断所述当前版本分块校验值是否与所述新版本分块校验值相同;若所述当前版本分块校验值与所述新版本分块校验值相同,获取相同校验值对应的窗口数据块相对于所述当前版本数据文件的偏移量,并继续判断所述滑动窗口滑动至下一个位置时对应的窗口数据块的当前版本分块校验值是否与所述新版本分块校验值相同;若所述当前版本分块校验值与所述新版本分块校验值不相同,继续判断所述滑动窗口滑动至下一个位置时对应的窗口数据块的当前版本分块校验值是否与所述新版本分块校验值相同;当所述滑动窗口滑动至最后一个位置对应的窗口数据块的当前版本分块校验值判断完毕之后,创建新版本数据文件对应的临时文件,对于所述临时文件中匹配到所述相同校验值的分块,则根据所述偏移量从所述当前版本数据文件获取到重复数据块,对于所述临时文件中没有匹配到所述相同校验值的分块,根据所述下载地址从所述数据文件提供服务器下载到差异数据块,将所述临时文件中的差异数据块和重复数据块进行合并,得到增量更新数据文件。7.根据权利要求6所述的方法,其特征在于,所述根据所述文件名称获取当前版本数据文件之后,所述方法还包括:从所述配置文件中解析出所述新版本数据文件对应的新版本号;获取所述当前版本数据文件对应的当前版本号;对比所述新版本号和所述当前版本号,若所述新版本号和所述当前版本号不相同,触发执行如下步骤:使用与所述文件分块的分块大小相等的滑动窗口从所述当前版本数据文件中选择出所述滑动窗口滑动至不同位置所对应的窗口数据块。8.根据权利要求6所述的方法,其特征在于,所述获取数据文件提供服务器提供的配置文件之后,所述方法还包括:从所述配置文件中解析出所述新版本数据文件对应的下载策略,所述下载策略包括:所述新版本数据文件需要采用强制更新还是可选更新;若所述下载策略为强制更新,触发执行如下步骤:根据所述文件名称获取当前版本数据文件;若所述下载策略为可选更新,发送更新提示消息,根据用户发送的更新指示确定是否继续执行如下步骤:根据所述文件名称获取当前版本数据文件。9.根据权利要求6所述的方法,其特征在于,所述将所述临时文件中的差异数据块和重复数据块进行合并,得到增量更新数据文件,包括:从所述配置文件中解析出分块剩余数据,所述分块剩余数据包括:所述新版本数据文件中L%size所得的余数对应的文件分块,L表示所述新版本数据文件的文件长度,size表示分块大小,%表示L对size进行取模;将所述差异数据块、所述重复数据块、所述分块剩余数据进行合并,得到增量更新数据文件。10.根据权利要求6至9中任一项所述的方法,其特征在于,所述新版本分块校验值包括:新版本弱校验值和新版本强校验值;所述判断所述当前版本分块校验值是否与所述新版本分块校验值相同,包括:根据所述窗口数据块计算所述窗口数据块的当前版本弱校验值,以及判断所述当前版本弱校验值是否存在于所述新版本弱校验值对应的哈希过滤表中;若所述当前版本弱校验值不存在于所述哈希过滤表中,确定所述当前版本分块校验值与所述新版本分块校验值不相同;若所述当前版本弱校验值存在于所述哈希过滤表中,根据所述窗口数据块计算所述窗口数据块的当前版本强校验值,判断所述当前版本强校验值是否与所述新版本强校验值相等,若所述当前版本强校验值与所述新版本强校验值相等,确定所述当前版本分块校验值与所述新版本分块校验值相同,若所述当前版本强校验值与所述新版本强校验值不相等,确定所述当前版本分块校验值与所述新版本分块校验值不相同。11.一种数据文件提供服务器,其特征在于...
【专利技术属性】
技术研发人员:赵超,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。