文件传输方法、版本升级方法及装置制造方法及图纸

技术编号:33996474 阅读:24 留言:0更新日期:2022-07-02 11:00
本公开提供了一种文件传输方法、版本升级方法及装置。所述文件传输方法包括:在接收到由客户端发送的版本升级请求之后,获取所述版本升级请求对应的旧版本文件和新版本文件;对所述旧版本文件和所述新版本文件进行差分处理,生成差分版本文件;根据设定文件块大小,对所述差分版本文件进行分块处理,得到所述差分版本文件对应的多个分块版本文件;对所述多个分块版本文件进行压缩处理,生成多个分块压缩文件;对所述多个分块压缩文件进行整合处理,生成升级文件;将所述升级文件传输至客户端,以由所述客户端对所述升级文件进行分块解压处理,得到版本升级文件。本公开可以降低文件传输失败的概率,降低网络数据传输量,提高文件传输速度。件传输速度。件传输速度。

【技术实现步骤摘要】
文件传输方法、版本升级方法及装置


[0001]本公开的实施例涉及版本文件处理
,尤其涉及一种文件传输方法、版本升级方法及装置。

技术介绍

[0002]在单片机等嵌入式设备的生命周期中,OTA(Over

The

Air Technology,空中下载技术)作为一个重要的功能,能够将设备软件不断升级,满足用户对产品的需求;在单片机的开发环境下,对内存的使用有严格的要求,并且对于升级的稳定性需要严格把控,如果升级不当,很可能导致系统宕机等无法恢复的情况发生。
[0003]在OTA功能开发中,多数情况下,是通过将升级文件全量传输到单片机本地,并在本地的BootLoader中设置跳转指令,实现整个OTA过程,这种方式在单片机中的应用范围比较广,但是也存在升级文件过大,升级不够稳定的情况;另外一种方式是将全量升级文件压缩后传输,这样可以缩减升级文件的大小至原来的60%

70%,相比第一种方案升级文件更小,效率更高;第三种方式是将本地文件和新版本文件进行差分,并将差分文件传输到设备端,在设备端进行文件还原,实现升级过程。
[0004]通过全量的方式进行文件进行文件更新存在以下风险:
[0005]1、嵌入式设备所处的网络环境往往不是很稳定,文件过大的话,接收失败的概率大,从而导致更新失败;
[0006]2、全量更新的时间长,对于低功耗设备来讲,会缩短电池的使用寿命,影响用户体验;
[0007]3、对于单片机等MCU来讲,对空间有严格限制(<50k),传统的压缩算法(Bzip\Bz2\Zip)占用空间较大,无法在本地完成解压。
[0008]如果通过差分形式实现OTA,现有的常用算法是BsDiff,BsDiff算法是一个差量更新算法,主要由差分算法(Diff/Patch)和压缩算法(Bz2)两部分组成。首先运行Diff算法后产生patch包,并由Bz2压缩,由于Diff算法本身特点,生成的patch包具有高度冗余的数据,Bz2对这种数据具有极强的压缩能力,对于客户端来讲,主要将patch压缩包通过Bz2解压,旧文件和patch解压包通过Patch算法合成新文件。
[0009]BsDiff的Diff算法是在服务端进行,所以有足够的空间,但是对于单片机等小内存芯片来讲,空间不足,难以运行Patch算法和Bz2算法。

技术实现思路

[0010]本公开的实施例提供一种文件传输方法、版本升级方法及装置,用以降低文件传输失败的概率,降低网络数据传输量,提高文件传输速度。
[0011]根据本公开的实施例的第一方面,提供了一种文件传输方法,应用于服务器,包括:
[0012]在接收到由客户端发送的版本升级请求之后,获取所述版本升级请求对应的旧版
本文件和新版本文件;
[0013]对所述旧版本文件和所述新版本文件进行差分处理,生成差分版本文件;
[0014]根据设定文件块大小,对所述差分版本文件进行分块处理,得到所述差分版本文件对应的多个分块版本文件;
[0015]对所述多个分块版本文件进行压缩处理,生成多个分块压缩文件;
[0016]对所述多个分块压缩文件进行整合处理,生成升级文件;
[0017]将所述升级文件传输至客户端,以由所述客户端对所述升级文件进行分块解压处理,得到版本升级文件。
[0018]可选地,在所述根据设定文件块大小,对所述差分版本文件进行分块处理,得到所述差分版本文件对应的多个分块版本文件之前,还包括:
[0019]获取预先保存的所述客户端对应的预留文件内存;
[0020]根据所述预留文件内存,确定所述设定文件块大小。
[0021]可选地,在所述对所述旧版本文件和所述新版本文件进行差分处理,生成差分版本文件之后,还包括:
[0022]对所述差分版本文件添加校验值,生成所述差分版本文件对应的文件校验值;
[0023]在所述根据设定文件块大小,对所述差分版本文件进行分块处理,得到所述差分版本文件对应的多个分块版本文件之后,还包括:
[0024]对所述多个分块版本文件添加校验值,生成所述多个分块版本文件对应的文件块校验值;
[0025]在所述将所述升级文件传输至客户端之前,还包括:
[0026]将所述文件校验值和所述文件块校验值发送至所述客户端。
[0027]可选地,所述对所述多个分块版本文件进行压缩处理,生成多个分块压缩文件,包括:
[0028]获取所述多个分块版本文件的文件块长度;
[0029]根据所述文件块长度和所述文件块校验值,对所述多个分块版本文件进行压缩处理,生成所述多个分块压缩文件。
[0030]根据本公开的实施例的第二方面,提供了一种版本升级方法,应用于客户端,包括:
[0031]接收由服务器发送的升级文件;
[0032]根据设定文件块大小,对所述升级文件进行分块解压缩处理,得到所述升级文件对应的分块版本文件;
[0033]根据多个所述分块版本文件,生成差分版本文件;
[0034]对所述差分版本文件和本地与所述差分版本文件对应的原版本文件进行整合处理,生成新版本文件;
[0035]根据所述新版本文件进行版本升级。
[0036]可选地,在所述接收由服务器发送的升级文件之前,还包括:
[0037]接收并缓存由所述服务器发送的文件校验值和文件块校验值;
[0038]在所述根据设定文件块大小,对所述升级文件进行解压缩处理,得到所述升级文件对应的分块版本文件之后,还包括:
[0039]获取所述多个分块版本文件的文件块大小;
[0040]对所述多个分块版本文件进行校验处理,生成所述多个分块版本文件对应的目标块校验值;
[0041]在所述文件块大小与设定文件块大小匹配,且所述目标块校验值与所述文件块校验值匹配的情况下,确定所述多个分块版本文件校验成功;
[0042]在所述文件块大小与所述设定文件块大小不匹配,或所述目标块校验值与所述文件块校验值不匹配的情况下,确定所述多个分块版本文件校验失败;
[0043]在所述根据多个所述分块版本文件,生成差分版本文件之后,还包括:
[0044]在确定所述多个分块版本文件校验成功的情况下,对所述差分版本文件进行校验处理,生成所述差分版本文件对应的目标文件校验值;
[0045]在所述目标文件校验值与所述文件校验值匹配的情况下,确定所述差分版本文件校验成功。
[0046]根据本公开的实施例的第三方面,提供了一种文件传输装置,应用于服务器,包括:
[0047]版本文件获取模块,用于在接收到由客户端发送的版本升级请求之后,获取所述版本升级请求对应的旧版本文件和新版本文件;
[0048]差分文件生成模块,用于对所述旧版本文件和所述新版本文件进行差分处理,生成差分版本文件;
[0049本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件传输方法,应用于服务器,其特征在于,包括:在接收到由客户端发送的版本升级请求之后,获取所述版本升级请求对应的旧版本文件和新版本文件;对所述旧版本文件和所述新版本文件进行差分处理,生成差分版本文件;根据设定文件块大小,对所述差分版本文件进行分块处理,得到所述差分版本文件对应的多个分块版本文件;对所述多个分块版本文件进行压缩处理,生成多个分块压缩文件;对所述多个分块压缩文件进行整合处理,生成升级文件;将所述升级文件传输至客户端,以由所述客户端对所述升级文件进行分块解压处理,得到版本升级文件。2.根据权利要求1所述的方法,其特征在于,在所述根据设定文件块大小,对所述差分版本文件进行分块处理,得到所述差分版本文件对应的多个分块版本文件之前,还包括:获取预先保存的所述客户端对应的预留文件内存;根据所述预留文件内存,确定所述设定文件块大小。3.根据权利要求1所述的方法,其特征在于,在所述对所述旧版本文件和所述新版本文件进行差分处理,生成差分版本文件之后,还包括:对所述差分版本文件添加校验值,生成所述差分版本文件对应的文件校验值;在所述根据设定文件块大小,对所述差分版本文件进行分块处理,得到所述差分版本文件对应的多个分块版本文件之后,还包括:对所述多个分块版本文件添加校验值,生成所述多个分块版本文件对应的文件块校验值;在所述将所述升级文件传输至客户端之前,还包括:将所述文件校验值和所述文件块校验值发送至所述客户端。4.根据权利要求1所述的方法,其特征在于,所述对所述多个分块版本文件进行压缩处理,生成多个分块压缩文件,包括:获取所述多个分块版本文件的文件块长度;根据所述文件块长度和所述文件块校验值,对所述多个分块版本文件进行压缩处理,生成所述多个分块压缩文件。5.一种版本升级方法,应用于客户端,其特征在于,包括:接收由服务器发送的升级文件;根据设定文件块大小,对所述升级文件进行分块解压缩处理,得到所述升级文件对应的分块版本文件;根据多个所述分块版本文件,生成差分版本文件;对所述差分版本文件和本地与所述差分版本文件对应的原版本文件进行整合处理,生成新版本文件;根据所述新版本文件进行版本升级。6.根据权利要求5所述的方法,其特征在于,在所述接收由服务器发送的升级文件之前,还包括:接收并缓存由所述服务器发送的文件校验值和文件块校验值;
在所述根据设定文件块大小,对所述升级文件进行解压缩处理,得到所述升级文件对应的分块版本文件之后,还包括:获取所述多个分块版本文件的文件块大小;对所...

【专利技术属性】
技术研发人员:陈浩宇李国梁孙洋
申请(专利权)人:北京三快在线科技有限公司
类型:发明
国别省市:

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

1