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.一种数据文件提供服务器,其特征在于,包括:
分块获取模块,用于获取新版本数据文件,以及根据所述新版本数据文件获取所述新版本数据文件对应的多个文件分块;
校验值计算模块,用于根据所述多个文件分块分别计算各个文件分块的新版本分块校验值;
配置文件提供模块,用于将所述各个文件分块的新版本分块校验值、所述新版本数据文件对应的文件名称和下载地址都写入配置文件中,以及向客户端提供所述配置文件,以使所述客户端根据所述配置文件完成增量更新。
12.根据权利要求11所述的数据文件提供服务器,其特征在于,所述配置文件提供模块,还用于向客户端提供所述配置文件之前,获取所述新版本数据文件对应的新版本号,和/或下载策略,所述下载策略包括:所述新版本数据文件需要采用强制更新还是可选更新;将所述新版本数据文件对应的新版本号,和/或下载策略写入到所述配置文件中。
13.根据权利要求11所述的数据文件提供服务器,其特征在于,所述分块获取模块,具体用于按照分块大小对所述新版本数据文件进行平分,得到总分块个数为L/size的文件分块,其中,L表示所述新版本数据文件的文件长度,size表示所述分块大小;如果L%size不等于0,则将L%size所得的余数对应的文件分块保存到校验表中,其中,%表示L对size进行取模。
14.根据权利要求13所述的数据文件提供服务器,其特征在于,所述校验值计算模块,具体用于分别计算所述总分块个数为L/size中每个文件分块的新版本分块校验值,并将计算出的新版本分块校验值保存到所述校验表中;
所述配置文件提供模块,具体用于将所述校验表、所述新版本数据文件对应的文件名称和下载地址都写入配置文件中。
15.根据权利要求11至14中任一项所述的数据文件提供服务器,其特征在于,所述校验值计算模块,具体用于根据所述多个文件分块分别计算各个文件分块的新版本弱校验值和新版本强校验值。
16.一种客户端,其特征在于,包括:
文件解析模块,用于获取数据文件提供服务器提供的配置文件,以及从所述配置文件中解析出新版本数据文件对应的文件名称和下载地址、所述新版数据文件中多个文件分块的新版本分块校验值;
窗口数据选择模块,用于根据所述文件名称获取当前版本数据文件,以及使用与所述文件分块的分块大小相等的滑动窗口从所述当前版本数据文件中选择出所述滑动窗口滑动至不同位置所对应的窗口数据块;
校验值判断模块,用于根据选择出的所述窗口数据块计算所述窗口数据块的当前版本分块校验值,以及判断所述当前版本分块校验值是否与所述新版本分块校验值相同;
校验结果处理模块,用于若所述当前版本分块校验值与所述新版本分块校验值相同,获取相同校验值对应的窗口数据块相对于所述当前版本数据文件的偏移量,并继续判断所述滑动窗口滑动至下一个位置时对应的窗口数据块的当前版本分块校验值是否与所述新版本分块校验值相同;若所述当前版本分块校验值与所述新版本分块校验值不相同,继续判断所述滑动窗口滑动至下一个位置时对应的窗口数据块的当前版本分块校验值是否与所述新版本分块校验值相同;
数据块合并模块,用于当所述滑动窗口滑动至最后一个位置对应的窗口数据块的当前版本分块校验值判断完毕之后,创建新版本数据文件对应的临时文件,对于所述临时文件中匹配到所述相同校验值的分块,则根据所述偏移量从所述当前版本数据文件获取到重复数据块,对于所述临时文件中没有匹配到所述相同校验值的分块,根据所述下载地址从所述数据文件提供服务器下载到差异数据块,将所述临时文件中的差异数据块和重复数据块进行合并,得到增量更新数据文件。
17.根据权利要求16所述的客户端,其特征在于,所述客户端还包括:版本号分析模块,用于所述窗口数据选择模块根据所述文件名称获取当前版本数据文件之后,从所述配置文件中解析出所述新版本数据文件对应的新版本号;获取所述当前版本数据文件对应的当前版本号;对比所述新版本号和所述当前版本号,若所述新版本号和所述当前版本号不相同,触发执行所述窗口数据选择模块。
18.根据权利要求16所述的客户端,其特征在于,所述客户端还包括:下载策略应用模块,用于所述文件解析模块获取数据文件提供服务器提供的配置文件之后,从所述配置文件中解析出所述新版本数据文件对应的下载策略,所述下载策略包括:所述新版本数据文件需要采用强制更新还是可选更新;若所述下载策略为强制更新,触发执行所述窗口数据选择模块;若所述下载策略为可选更新,发送更新提示消息,根据用户发送的更新指示确定是否继续执行所述窗口数据选择模块。
19.根据权利要求16所述的客户端,其特征在于,所述数据块合并模块,具体用于从所述配置文件中解析出分块剩余数据,所述分块剩余数据包括:所述新版本数据文件中L%size所得的余数对应的文件分块,L表示所述新版本数据文件的文件长度,size表示分块大小,%表示L对size进行取模;将所述差异校验值对应的差异数据块、所述相同校验值对应的重复数据块、所述分块剩余数据进行合并,得到增量更新数据文件。
20.根据权利要求16至19中任一项所述的客户端,其特征在于,所述新版本分块校验值包括:新版本弱校验值和新版本强校验值;
所述校验值判断模块,包括:
弱校验处理模块,用于根据所述窗口数据块计算所述窗口数据块的当前版本弱校验值,以及判断所述当前版本弱校验值是否存在于所述新版本弱校验值对应的哈希过滤表中;若所述当前版本弱校验值不存在于所述哈希过滤表中,确定所述当前版本分块校验值与所述新版本分块校验值不相同;
强校验处理模块,用于若所述当前版本弱校验值存在于所述哈希过滤表中,根据所述窗口数据块计算所述窗口数据块的当前版本强校验值,判断所述当前版本强校验值是否与所述新版本强校验值相等,若所述当前版本强校验值与所述新版本强校验值相等,确定所述当前版本分块校验值与所述新版本分块校验值相同,若所述当前版本强校验值与所述新版本强校验值不相等,确定所述当前版本分块校验值与所述新版本分块校验值不相同。
21.一种数据文件的增量更新系统,其特征在于,包括:如权利要求11至15中任一项所述的数据文件提供服务器和如权利要求16至20中任一项所述的客户端。