CN112559020A - 文件升级方法、装置、设备和介质 - Google Patents
文件升级方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN112559020A CN112559020A CN202011446212.4A CN202011446212A CN112559020A CN 112559020 A CN112559020 A CN 112559020A CN 202011446212 A CN202011446212 A CN 202011446212A CN 112559020 A CN112559020 A CN 112559020A
- Authority
- CN
- China
- Prior art keywords
- block
- differential
- original file
- new file
- file block
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种文件升级方法、装置、设备和介质,涉及计算机领域,具体为软件应用技术。升级包生成方法包括:获取升级前的原文件与升级后的新文件;将原文件按预设定长进行切分,得到至少一个原文件块;将新文件按预设定长进行切分,得到至少一个新文件块;针对至少一个新文件块中的每一个新文件块,计算该新文件块和至少一个原文件块中的第一原文件块子集中的每一个原文件块的差分数据,并生成至少一个差分块;以及针对至少一个新文件块中的每一个新文件块,在与其对应的至少一个差分块中,根据差分数据选取相应的差分块添加到升级包中。
Description
技术领域
本公开涉及计算机领域,具体为软件应用技术,特别涉及一种文件升级方法、装置、设备和介质。
背景技术
空间下载技术(Over-The-Air,OTA)是无线通信系统中与应用程序相关的信息的传输和接收的标准。目前,应用OTA技术的项目的主要成本包括内容分发网络(ContentDelivery Network,CDN)服务费用、服务器费用,以及其他产品的使用费用。其中,CDN服务的使用成本占了80%以上。
当前OTA技术普遍具有差分能力,差分技术是一种增量升级的核心技术。相比于整包升级,差分升级时下载的升级包较小,因此下载时间短,成功率高,且占用服务器和内容分发网络的空间较小。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
根据本公开的第一方面,提供了一种升级包生成方法,包括:获取升级前的原文件与升级后的新文件;将原文件按预设定长进行切分,得到至少一个原文件块;将新文件按预设定长进行切分,得到至少一个新文件块;针对至少一个新文件块中的每一个新文件块,计算该新文件块和至少一个原文件块中的第一原文件块子集中的每一个原文件块的差分数据,并生成至少一个差分块,其中,至少一个差分块中的每一个差分块与该新文件块对应,至少一个差分块与第一原文件块子集中的原文件块一一对应,至少一个差分块中的每一个差分块包括该差分块对应的新文件块和该差分块对应的原文件块的差分数据;以及针对至少一个新文件块中的每一个新文件块,在与其对应的至少一个差分块中,根据差分数据选取相应的差分块添加到升级包中。
根据本公开的第二方面,提供了一种使用上述生成方法生成的升级包对终端设备上的原文件进行升级的升级方法,包括:获取升级包;基于升级包所包括的至少一个差分块中的每一个差分块各自对应的原文件块的序号和该原文件块在终端设备中的存储位置以及终端设备的存储空间占用情况,标记可利用空间,其中,可利用空间包括至少一个不小于预设定长的存储空间;从升级包中不重复地选取一个差分块,基于差分块对应的原文件块和差分块所包括的差分数据,生成差分块对应的新文件块;以及将新文件块存储在可利用空间所包括的至少一个不小于预设定长的存储空间中的任意一个存储空间。
根据本公开的第三方面,提供了一种升级包生成装置,包括:获取单元,被配置用于获取升级前的原文件与升级后的新文件;第一切分单元,被配置用于将原文件按预设定长进行切分,得到至少一个原文件块;第二切分单元,被配置用于将新文件按预设定长进行切分,得到至少一个新文件块;差分块生成单元,被配置用于针对至少一个新文件块中的每一个新文件块,计算该新文件块和至少一个原文件块中的第一原文件块子集中的每一个原文件块的差分数据,并生成至少一个差分块;以及添加单元,被配置用于针对至少一个新文件块中的每一个新文件块,在与其对应的至少一个差分块中,根据差分数据选取相应的差分块添加到升级包中。
根据本公开的第四方面,提供了一种升级装置,包括:获取单元,被配置用于获取升级包;标记单元,被配置用于基于升级包所包括的至少一个差分块中的每一个差分块各自对应的原文件块的序号和该原文件块在终端设备中的存储位置以及终端设备的存储空间占用情况,标记可利用空间;生成单元,被配置用于从升级包中不重复地选取一个差分块,基于差分块对应的原文件块和差分块所包括的差分数据,生成差分块对应的新文件块;以及存储单元,被配置用于将新文件块存储在可利用空间所包括的至少一个不小于预设定长的存储空间中的任意一个存储空间。
根据本公开的第五方面,提供了一种计算机设备,包括:存储器、处理器以及存储在存储器上的计算机程序,其中,处理器被配置为执行计算机程序以实现上述的升级包生成方法的步骤。
根据本公开的第六方面,提供了一种计算机设备,包括:存储器、处理器以及存储在存储器上的计算机程序,其中,处理器被配置为执行计算机程序以实现上述的升级方法的步骤。
根据本公开的第七方面,提供了一种存储程序的计算机可读存储介质,程序包括指令,指令在由电子设备的处理器执行时,致使电子设备执行根据上述的升级包生成方法和升级方法。
根据本公开的第八方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序被处理器执行时实现上述的升级包生成方法和升级方法的步骤。
本公开的技术方案通过针对每一个新文件块,计算其与第一原文件块子集中的每一个原文件块的差分数据并生成相应的差分块,再根据差分数据选择合适的差分块添加到升级包中,实现了降低升级包的大小,从而能够降低升级包的传输时间,提高传输成功率,同时降低了所需要的CDN资源和服务器资源,进而能够降低CDN服务费用和服务器服务费用,节约成本。此外,通过按预设定长对原文件和新文件进行切分,能够支持终端设备在使用升级包对终端设备上保存的原文件进行升级时,能够利用不再需要的原文件块的位置存储新文件块,从而实现了在小存储空间完成差分升级。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1是示出根据示例性实施例的升级包生成方法的流程图;
图2是示出根据示例性实施例的切分文件与生成差分块的示意图;
图3是示出根据示例性实施例的差分块结构的示意图;
图4是示出根据示例性实施例的升级包生成方法的流程图;
图5是示出根据示例性实施例的升级方法的流程图;
图6是示出根据示例性实施例的升级方法的流程图;
图7是示出根据示例性实施例的将新文件块覆写在当前选取的差分块对应的原文件块在终端设备中的存储位置对应的存储空间的流程图;
图8是示出根据示例性实施例的升级包生成装置的框图;
图9-图10是示出根据示例性实施例的升级装置的框图;以及
图11是能够应用于示例性实施例的示例性计算设备的结构框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
相关技术中,现有的使用差分升级技术的升级方法需要保障终端设备的存储空间大于原文件、新文件和升级包的大小的总和。因此,现有的升级方法无法支持在存储空间小于上述三个文件大小的总和的小容量存储终端设备中完成差分升级。
为解决上述技术问题,本公开公开了一种升级包生成方法,通过按预设定长对升级前的原文件和升级后的新文件进行切分,得到大小相同的多个原文件块和新文件块,并针对每一个新文件块,遍历第一原文件块子集中的所有原文件块计算差分数据并针对这些原文件块中的每一个生成差分块,同时建立每一个差分块与原文件块和与新文件块的对应关系,进而根据差分数据从新文件块对应的多个差分块中选取一个差分块添加到升级包中。由此,通过针对每一个新文件块,计算其与第一原文件块子集中的每一个原文件块的差分数据并生成相应的差分块,再根据差分数据选择合适的差分块添加到升级包中,实现了降低升级包的大小,从而能够降低升级包的传输时间,提高传输成功率,同时降低了所需要的CDN资源和服务器资源,进而能够降低CDN服务费用和服务器服务费用,节约成本。此外,通过按预设定长对原文件和新文件进行切分,能够支持终端设备在使用升级包对终端设备上保存的原文件进行升级时,能够利用不再需要的原文件块的位置存储新文件块,从而能够实现在小存储空间完成差分升级。
本发明的应用场景可以是空中下载技术(Over-The-Air,OTA)场景,OTA场景下的终端设备进行文件升级过程可以包括:厂商上传升级包到服务平台,服务平台利用差分技术将升级包进行加工制作,完成后可以进行准备下发阶段;厂商会不定时,在OTA控制台配置不同条件的下发任务,下发任务被通过kafka推送给下发系统,每个下发任务包含对应的升级包或程序文件的CDN下载链接;设备端会周期性地去调用升级接口,传送自身的设备信息,请求升级任务;下发系统接收设备端的升级请求,会将设备传输过来的信息去匹配各个升级任务,如果匹配上,则将任务对应的信息(包括升级包或程序文件的CDN下载链接)下发给设备;以及设备收到升级任务后,会去下载任务对应的CDN链接,完成升级。
以下结合附图对本公开的升级包生成方法进行进一步描述。
图1是示出根据本公开示例性实施例的升级包生成方法的流程图。根据本公开的第一方面,如图1所示,升级包生成方法可以包括:步骤S101、获取升级前的原文件与升级后的新文件;步骤S102、将原文件按预设定长进行切分,得到至少一个原文件块;步骤S103、将新文件按预设定长进行切分,得到至少一个新文件块;步骤S104、针对至少一个新文件块中的每一个新文件块,计算该新文件块和至少一个原文件块中的第一原文件块子集中的每一个原文件块的差分数据,并生成至少一个差分块;以及步骤S105、针对至少一个新文件块中的每一个新文件块,在与其对应的至少一个差分块中,根据差分数据选取相应的差分块添加到升级包中。由此,通过针对每一个新文件块,计算其与第一原文件块子集中的每一个原文件块的差分数据并生成相应的差分块,再根据差分数据选择合适的差分块添加到升级包中,实现了降低升级包的大小,从而能够降低升级包的传输时间,提高传输成功率,同时降低了所需要的CDN资源和服务器资源,进而能够降低CDN服务费用和服务器服务费用,节约成本。此外,通过按预设定长对原文件和新文件进行切分,能够支持终端设备在使用升级包对终端设备上保存的原文件进行升级时,能够利用不再需要的原文件块的位置存储新文件块,从而实现了在小存储空间完成差分升级。
原文件和新文件例如可以是同一个计算机程序的不同版本,所述计算机程序例如可以是应用程序,也可以是硬件的固件程序,还可以是其他类型的程序,在此不做限定。通过使用升级包,可以将原文件升级到新文件。
预设定长例如可以是预先设置的固定长度,例如4KB、8KB、16KB或其他固定长度。如图2所示,在原文件2010大于预设定长200时,可以按预设定长200将原文件2010切成除最后一块外长度均为预设定长的一个或多个原文件块2011-2013,最后一块2014的长度小于等于预设定长。在新文件2020大于预设定长200时,可以按预设定长200将新文件2020切成除最后一块外长度均为预设定长的一个或多个新文件块2021-2023,最后一块2024的长度小于等于预设定长。在原文件(或新文件)小于等于预设定长时,可以不对原文件(或新文件)做切分。
预设定长的设置可以根据终端设备的内存需求来完成。示例性的,预设定长的一个具体设置为能够使得终端设备的内存的大小大于三倍预设定长,即内存可以同时存下原文件块、新文件块和差分块。示例性的,预设定长的一个具体设置为能够使得终端设备的内存的大小大于两倍预设定长,即内存可以同时存下原文件块和差分块,同时使用优化方法将新文件块复写到原文件块和差分块上。示例性的,预设定长的一个具体设置为能够使得终端设备的内存大于1.5倍预设定长,即内存同时可以存下原文件块和绝大部分情况下的差分块,同时使用优化方法将新文件块复写到原文件块和差分块上。可以理解的是,预设定长还可以有其他的设置方式,在此不做限定。
第一原文件块子集例如可以与新文件块对应的包括一个或多个原文件块的集合。示例性的,某一新文件块的序号为i,新文件块总数为N,原文件块总数为M,则与序号为i的新文件块对应的第一原文件块子集可以为序号为的原文件块,其中表示向下取整。示例性的,与序号为i的新文件块对应的第一原文件块子集可以为序号范围为的原文件块。示例性的,与序号为i的新文件块对应的第一原文件块子集可以为全部原文件块。可以理解的是,第一原文件块子集的范围越大,计算/时间成本越高,且最后生成的升级包大小越小。因此,可以基于对计算/时间成本与最后生成升级包大小的权衡来选择第一原文件块子集,在此不作限定。
差分数据例如可以是基于Xdelta3算法、BSDiff算法或Courgette算法计算原文件块和新文件块的差异而得到的。可以理解的是,可以使用其他方法计算原文件块和新文件块的差异,从而得到相应的差分数据,在此不做限定。
根据一些实施例,步骤S103中生成的至少一个差分块中的每一个差分块可以与该新文件块对应,至少一个差分块可以与第一原文件块子集中的原文件块一一对应,至少一个差分块中的每一个差分块可以包括该差分块对应的新文件块和该差分块对应的原文件块的差分数据。由此,建立起差分块与用于生成该差分块的新文件块和原文件块之间的对应关系,同时在差分块中保存有相应的差分数据。示例性的,如图2所示,针对新文件块2023,生成与每个原文件块2011-2014对应的多个差分块2031-2034。
根据一些实施例,如图3所示,差分块3000除包括差分数据3200外,还可以包括文件头3100,用于存储与该差分块对应的原文件块的序号、新文件块的序号和其所包括的差分数据的大小等信息。文件头3100具体可以包括:具有第一定长3101的第一信息3110,指示该差分块对应的新文件块的序号;具有第二定长3102的第二信息3120,指示该差分块对应的原文件块的序号;以及具有第三定长3103的第三信息3130,指示该差分块对应的新文件块和该差分块对应的原文件块的差分数据的大小。由此,通过设置储存有上述信息的文件头,能够实现快速获取上述信息,同时能够快速的找到与该差分块对应的原文件块和新文件块,从而能够提升升级方法的速度与效率。示例性的,将第一定长设置为1字节,将第二定长设置为1字节,将第三定长设置为4字节。
根据一些实施例,第一定长和第二定长可以相同。通常一次升级前后的原文件和新文件变化不大,因此原文件块数和新文件块数也不会相差很大,因此可以设置相同的第一定长和第二定长。
根据一些实施例,如图4所示,步骤S405可以为针对至少一个新文件块中的每一个新文件块,在与其对应的至少一个差分块中,选取差分数据最小的差分块添加到升级包中。图4中的步骤S401-步骤S404与图1中的步骤S101-步骤S104类似。由此,针对每一个新文件块,选取差分数据最小的差分块,能够很大程度降低由差分块构成的升级包的大小,从而能够降低升级包的传输时间,提高传输成功率,同时降低了所需要的CDN资源和服务器资源,进而能够降低CDN服务费用和服务器服务费用,节约成本。
根据一些实施例,如图4所示,升级包生成方法还可以包括:步骤S406、响应于升级包中包括有多个差分块,基于多个差分块中的每一个差分块所包括的第二信息对多个差分块进行排序。由此,通过对升级包包括的差分块基于差分块对应的原文件块的序号进行排序,使得终端设备在使用由上述方法生成的升级包进行升级时,能够快速标记可利用空间,同时能够快速实现文件块的覆写。
根据一些实施例,如图4所示,升级包生成方法还可以包括:步骤S407、经由下发系统、下发节点和内容分发网络的协同作用,将升级包发送至终端设备。由此,通过使用下发系统、下发节点和内容分发网络的内容下发方式,能够大幅提升升级包的传输速度和稳定度。此外,由于使用了差分升级技术,因此相比于在CDN节点存储完整的新文件,只在CDN节点存储升级包,能够大幅减少对CDN节点的资源需求。此外,通过使用上述多个实施例中描述的升级包生成方法,能够进一步降低对CDN节点的资源需求,从而能够降低CDN服务费用,节省成本。
根据本公开的第二方面,提供了一种使用上述生成方法生成的升级包对终端设备上的原文件进行升级的升级方法。如图5所示,升级方法可以包括:步骤S501、获取升级包;步骤S502、基于升级包所包括的至少一个差分块中的每一个差分块各自对应的原文件块的序号和该原文件块在终端设备中的存储位置以及终端设备的存储空间占用情况,标记可利用空间;步骤S503、从升级包中不重复地选取一个差分块,基于差分块对应的原文件块和差分块所包括的差分数据,生成差分块对应的新文件块;以及步骤S504、将新文件块存储在可利用空间所包括的至少一个不小于预设定长的存储空间中的任意一个存储空间。由此,通过将不再需要使用的原文件块的存储空间标记为可利用空间,使得生成的新文件块可以存储在这些可利用空间中,从而能够实现在终端设备的存储空间小于原文件、新文件和升级包的总和的情况下完成对终端设备中的原文件进行升级。
终端设备例如可以经由下发系统、下发节点和内容分发网络的协同作用,获取升级包,也可以通过其他有线或无线网络传输方式获取升级包,还可以通过拷贝的方式获取升级包,在此不做限定。
可利用空间可以为终端设备的存储空间中可以存放数据的空间。基于升级包所包括的至少一个差分块中的每一个差分块各自对应的原文件块的序号,能够得到升级过程中需要使用的原文件块和不需要使用的原文件块。可以将这些不需要使用的原文件块在终端设备的存储位置对应的存储空间标记为可利用空间,从而能够将生成的新文件块存储在这些位置。示例性的,可以使用一个长度为第二定长的数组表示不需要使用的原文件块,例如可以将该数组中索引为不需要使用的原文件块的序号的元素设置为1,其余元素设置为0。可利用空间还可以包括终端设备的存储空间中未被使用的存储空间。
根据一些实施例,如图6所示,升级方法还可以包括:步骤S604、判断升级包所包括的未被选取的差分块中是否包括与当前选取的差分块对应同一个原文件块的差分块;以及步骤S605、响应于升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将该新文件块覆写在当前选取的差分块对应的原文件块在终端设备中的存储位置对应的存储空间。图5中的步骤S501-步骤S503与图6中的步骤S601-步骤S603类似,步骤S606、响应于升级包所包括的未被选取的差分块中包括与当前选取的差分块对应同一个原文件块的差分块,将该新文件块存储在可利用空间所包括的至少一个不小于预设定长的存储空间中的任意一个存储空间与图5中的步骤S504类似。由此,通过将新文件块覆写在原文件块处,能够实现进一步减少升级方法所需的存储空间。
根据一些实施例,如图7所示,步骤S605可以包括:步骤S60501、响应于升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将当前选取的差分块对应的原文件块备份在可利用空间所包括的至少一个不小于预设定长的存储空间中的任意一个存储空间;步骤S60502、将该新文件块覆写在当前选取的差分块对应的原文件块在终端设备中的存储位置对应的存储空间;以及步骤S60503、删除备份的当前选取的差分块对应的原文件块。由此,通过在覆写前对原文件块进行备份,实现了数据保护机制,从而使得在覆写过程中出现例如断电等异常情况时,被覆写的数据不会丢失,进而可以在升级过程恢复后,使用差分块和备份的原文件块生成新文件块,再覆写到原文件块处。
根据一些实施例,如图6所示,升级方法还可以包括:步骤S607、判断升级包所包括的至少一个差分块中的每一个差分块是否已全部被选取;以及步骤S608、响应于升级包所包括的至少一个差分块尚未全部被选取,基于升级包所包括的至少一个差分块中未被选取的一个或多个差分块各自对应的原文件块的序号和该原文件块在终端设备中的存储位置以及终端设备的存储空间占用情况,更新可利用空间。由此,在仍有差分包未被选取的情况下,更新可利用空间,从而保证每次选取差分块时,所有能够使用的存储空间都被标记为可利用空间。
根据一些实施例,如图6所示,升级方法还可以包括:步骤S609、响应于升级包所包括的至少一个差分块中的每一个差分块均已被选取,基于终端设备上存储的所有新文件块中的每一个新文件块的序号和该新文件块的存储位置以及终端设备的存储空间占用情况,将所有新文件块整理为按新文件块的序号排列的连续文件。由此,通过在升级过程完成后对所有新文件块按序号进行排序,使得新文件成为连续文件,从而使得不支持读取非连续存储的文件的终端设备可以读取该新文件。
根据本公开的第三方面,还提供一种升级包生成装置。如图8所示,升级包生成装置800可以包括:获取单元801,被配置用于获取升级前的原文件与升级后的新文件;第一切分单元802,被配置用于将原文件按预设定长进行切分,得到至少一个原文件块;第二切分单元803,被配置用于将新文件按预设定长进行切分,得到至少一个新文件块;差分块生成单元804,被配置用于针对至少一个新文件块中的每一个新文件块,计算该新文件块和至少一个原文件块中的第一原文件块子集中的每一个原文件块的差分数据,并生成至少一个差分块;以及添加单元805,被配置用于针对至少一个新文件块中的每一个新文件块,在与其对应的至少一个差分块中,根据差分数据选取相应的差分块添加到升级包中。
升级包生成装置800的模块801-模块805的操作分别与前面描述的步骤S101-步骤S105的操作类似,在此不做赘述。
根据本公开的第四方面,提供了一种升级装置。如图9所示,升级装置900可以包括:获取单元901,被配置用于获取升级包;标记单元902,被配置用于基于升级包所包括的至少一个差分块中的每一个差分块各自对应的原文件块的序号和该原文件块在终端设备中的存储位置以及终端设备的存储空间占用情况,标记可利用空间;生成单元903,被配置用于从升级包中不重复地选取一个差分块,基于差分块对应的原文件块和差分块所包括的差分数据,生成差分块对应的新文件块;以及存储单元904,被配置用于将新文件块存储在可利用空间所包括的至少一个不小于预设定长的存储空间中的任意一个存储空间。
根据一些实施例,如图10所示,升级装置1000还可以包括:排序单元1006,被配置用于响应于所述升级包所包括的至少一个差分块中的每一个差分块均已被选取,基于所述终端设备上存储的所有新文件块中的每一个新文件块的序号和该新文件块的存储位置以及所述终端设备的存储空间占用情况,将所述所有新文件块整理为按所述序号排列的连续文件。图10中的模块1001-1003、1005分别和图9中的模块901-904类似。
根据一些实施例,如图10所示,升级装置1000还可以包括:覆写单元1004,还被配置用于响应于所述升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将所述新文件块覆写在所述当前选取的差分块对应的原文件块在所述终端设备中的存储位置对应的存储空间。
升级装置1000的模块1001-模块1006的操作分别前面描述的步骤S601-步骤S603、步骤S605、步骤S606、步骤S609的操作类似,在此不做赘述。
根据本公开的第五方面,提供了一种计算机设备,包括:存储器、处理器以及存储在存储器上的计算机程序,其中,处理器被配置为执行计算机程序以实现上述的升级包生成方法的步骤。
根据本公开的第六方面,提供了一种计算机设备,包括:存储器、处理器以及存储在存储器上的计算机程序,其中,处理器被配置为执行计算机程序以实现上述的升级方法的步骤。
根据本公开的第七方面,提供一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行根据上述的升级包生成和升级方法。
参见图11所示,现将描述计算设备11000,其是可以应用于本公开的各方面的硬件设备(电子设备)的示例。计算设备11000可以是被配置为执行处理和/或计算的任何机器,可以是但不限于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数字助理、机器人、智能电话、车载计算机或其任何组合。上述升级包生成和升级方法可以全部或至少部分地由计算设备11000或类似设备或系统实现。
计算设备11000可以包括(可能经由一个或多个接口)与总线11002连接或与总线11002通信的元件。例如,计算设备11000可以包括总线11002、一个或多个处理器11004、一个或多个输入设备11006以及一个或多个输出设备11008。一个或多个处理器11004可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。输入设备11006可以是能向计算设备11000输入信息的任何类型的设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或遥控器。输出设备11008可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。计算设备11000还可以包括非暂时性存储设备11010或者与非暂时性存储设备11010连接,非暂时性存储设备可以是非暂时性的并且可以实现数据存储的任何存储设备,并且可以包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁介质,光盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器和/或任何其他存储器芯片或盒、和/或计算机可从其读取数据、指令和/或代码的任何其他介质。非暂时性存储设备11010可以从接口拆卸。非暂时性存储设备11010可以具有用于实现上述方法和步骤的数据/程序(包括指令)/代码。计算设备11000还可以包括通信设备11012。通信设备11012可以是使得能够与外部设备和/或与网络通信的任何类型的设备或系统,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算设备11000还可以包括工作存储器11014,其可以是可以存储对处理器11004的工作有用的程序(包括指令)和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器和/或只读存储器设备。
软件要素(程序)可以位于工作存储器11014中,包括但不限于操作系统11016、一个或多个应用程序11018、驱动程序和/或其他数据和代码。用于执行上述方法和步骤的指令可以被包括在一个或多个应用程序11018中,并且上述升级包生成和升级方法可以通过由处理器11004读取和执行一个或多个应用程序11018的指令来实现。更具体地,上述升级包生成和升级方法中,步骤S101-步骤S105和步骤S501-步骤S504可以例如通过处理器11004执行具有步骤S101-步骤S105和步骤S501-步骤S504的指令的应用程序11018而实现。此外,上述升级包生成和升级方法中的其它步骤可以例如通过处理器11004执行具有执行相应步骤中的指令的应用程序11018而实现。软件要素(程序)的指令的可执行代码或源代码可以存储在非暂时性计算机可读存储介质(例如上述存储设备11010)中,并且在执行时可以被存入工作存储器11014中(可能被编译和/或安装)。软件要素(程序)的指令的可执行代码或源代码也可以从远程位置下载。
还应该理解,可以根据具体要求而进行各种变型。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现特定元件。例如,所公开的方法和设备中的一些或全部可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
还应该理解,前述方法可以通过服务器-客户端模式来实现。例如,客户端可以接收用户输入的数据并将所述数据发送到服务器。客户端也可以接收用户输入的数据,进行前述方法中的一部分处理,并将处理所得到的数据发送到服务器。服务器可以接收来自客户端的数据,并且执行前述方法或前述方法中的另一部分,并将执行结果返回给客户端。客户端可以从服务器接收到方法的执行结果,并例如可以通过输出设备呈现给用户。
还应该理解,计算设备11000的组件可以分布在网络上。例如,可以使用一个处理器执行一些处理,而同时可以由远离该一个处理器的另一个处理器执行其他处理。计算系统11000的其他组件也可以类似地分布。这样,计算设备11000可以被解释为在多个位置执行处理的分布式计算系统。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (20)
1.一种升级包生成方法,包括:
获取升级前的原文件与升级后的新文件;
将所述原文件按预设定长进行切分,得到至少一个原文件块;
将所述新文件按所述预设定长进行切分,得到至少一个新文件块;
针对所述至少一个新文件块中的每一个新文件块,计算该新文件块和所述至少一个原文件块中的第一原文件块子集中的每一个原文件块的差分数据,并生成至少一个差分块,其中,所述至少一个差分块中的每一个差分块与该新文件块对应,所述至少一个差分块与所述第一原文件块子集中的原文件块一一对应,所述至少一个差分块中的每一个差分块包括该差分块对应的新文件块和该差分块对应的原文件块的差分数据;以及
针对所述至少一个新文件块中的每一个新文件块,在与其对应的所述至少一个差分块中,根据差分数据选取相应的差分块添加到所述升级包中。
2.如权利要求1所述的生成方法,其中,所述至少一个差分块中的每一个差分块还包括文件头,
其中,所述文件头包括:
具有第一定长的第一信息,所述第一信息指示该差分块对应的新文件块的序号;
具有第二定长的第二信息,所述第二信息指示该差分块对应的原文件块的序号;以及
具有第三定长的第三信息,所述第三信息指示该差分块对应的新文件块和该差分块对应的原文件块的差分数据的大小。
3.如权利要求2所述的生成方法,其中,所述生成方法还包括:
响应于所述升级包中包括有多个差分块,基于所述多个差分块中的每一个差分块所包括的所述第二信息对所述多个差分块进行排序。
4.如权利要求2所述的生成方法,其中,所述第一定长和所述第二定长相同。
5.如权利要求1所述的生成方法,其中,针对所述至少一个新文件块中的每一个新文件块,在与其对应的所述至少一个差分块中,选取差分数据最小的差分块添加到所述升级包中。
6.如权利要求1-5中任一项所述的生成方法,其中,所述生成方法还包括:
经由下发系统、下发节点和内容分发网络的协同作用,将所述升级包发送至终端设备。
7.一种使用如权利要求1-6中任一项所述的生成方法生成的升级包对终端设备上的原文件进行升级的升级方法,包括:
获取所述升级包;
基于所述升级包所包括的至少一个差分块中的每一个差分块各自对应的原文件块的序号和该原文件块在所述终端设备中的存储位置以及所述终端设备的存储空间占用情况,标记可利用空间,其中,所述可利用空间包括至少一个不小于预设定长的存储空间;
从所述升级包中不重复地选取一个差分块,基于所述差分块对应的原文件块和所述差分块所包括的差分数据,生成所述差分块对应的新文件块;以及
将所述新文件块存储在所述可利用空间所包括的至少一个不小于所述预设定长的存储空间中的任意一个存储空间。
8.如权利要求7所述的升级方法,其中,所述升级方法还包括:
响应于所述升级包所包括的至少一个差分块中的每一个差分块均已被选取,基于所述终端设备上存储的所有新文件块中的每一个新文件块的序号和该新文件块的存储位置以及所述终端设备的存储空间占用情况,将所述所有新文件块整理为按所述序号排列的连续文件。
9.如权利要求7所述的升级方法,其中,所述升级方法还包括:
响应于所述升级包所包括的至少一个差分块尚未全部被选取,基于所述升级包所包括的至少一个差分块中未被选取的一个或多个差分块各自对应的原文件块的序号和该原文件块在所述终端设备中的存储位置以及所述终端设备的存储空间占用情况,更新可利用空间。
10.如权利要求7所述的升级方法,其中,所述升级方法还包括:
响应于所述升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将所述新文件块覆写在所述当前选取的差分块对应的原文件块在所述终端设备中的存储位置对应的存储空间。
11.如权利要求10所述的升级方法,其中,所述响应于所述升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将所述新文件块存储在所述当前选取的差分块对应的原文件块在所述终端设备中的存储位置对应的存储空间包括:
响应于所述升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将所述当前选取的差分块对应的原文件块备份在所述可利用空间所包括的至少一个不小于所述预设定长的存储空间中的任意一个存储空间;
将所述新文件块覆写在所述当前选取的差分块对应的原文件块在所述终端设备中的存储位置对应的存储空间;以及
删除备份的所述当前选取的差分块对应的原文件块。
12.一种升级包生成装置,包括:
获取单元,被配置用于获取升级前的原文件与升级后的新文件;
第一切分单元,被配置用于将所述原文件按预设定长进行切分,得到至少一个原文件块;
第二切分单元,被配置用于将所述新文件按所述预设定长进行切分,得到至少一个新文件块;
差分块生成单元,被配置用于针对所述至少一个新文件块中的每一个新文件块,计算该新文件块和所述至少一个原文件块中的第一原文件块子集中的每一个原文件块的差分数据,并生成至少一个差分块;以及
添加单元,被配置用于针对所述至少一个新文件块中的每一个新文件块,在与其对应的所述至少一个差分块中,根据差分数据选取相应的差分块添加到所述升级包中。
13.一种升级装置,包括:
获取单元,被配置用于获取升级包;
标记单元,被配置用于基于所述升级包所包括的至少一个差分块中的每一个差分块各自对应的原文件块的序号和该原文件块在所述终端设备中的存储位置以及所述终端设备的存储空间占用情况,标记可利用空间;
生成单元,被配置用于从所述升级包中不重复地选取一个差分块,基于所述差分块对应的原文件块和所述差分块所包括的差分数据,生成所述差分块对应的新文件块;以及
存储单元,被配置用于将所述新文件块存储在所述可利用空间所包括的至少一个不小于所述预设定长的存储空间中的任意一个存储空间。
14.如权利要求13所述的升级装置,其中,所述升级装置还包括:
排序单元,被配置用于响应于所述升级包所包括的至少一个差分块中的每一个差分块均已被选取,基于所述终端设备上存储的所有新文件块中的每一个新文件块的序号和该新文件块的存储位置以及所述终端设备的存储空间占用情况,将所述所有新文件块整理为按所述序号排列的连续文件。
15.如权利要求13所述的升级装置,其中,所述升级装置还包括:
覆写单元,还被配置用于响应于所述升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将所述新文件块覆写在所述当前选取的差分块对应的原文件块在所述终端设备中的存储位置对应的存储空间。
16.如权利要求15所述的升级装置,其中,所述覆写单元包括:
备份子单元,被配置用于响应于所述升级包所包括的未被选取的差分块中不包括与当前选取的差分块对应同一个原文件块的差分块,将所述当前选取的差分块对应的原文件块备份在所述可利用空间所包括的至少一个不小于所述预设定长的存储空间中的任意一个存储空间;
覆写子单元,被配置用于将所述新文件块覆写在所述当前选取的差分块对应的原文件块在所述终端设备中的存储位置对应的存储空间;以及
删除子单元,被配置用于删除备份的所述当前选取的差分块对应的原文件块。
17.一种计算机设备,包括:
存储器、处理器以及存储在所述存储器上的计算机程序,
其中,所述处理器被配置为执行所述计算机程序以实现权利要求1-6中任一项所述的方法的步骤。
18.一种计算机设备,包括:
存储器、处理器以及存储在所述存储器上的计算机程序,
其中,所述处理器被配置为执行所述计算机程序以实现权利要求7-11中任一项所述的方法的步骤。
19.一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,致使所述电子设备执行根据权利要求1-11中任一项所述的方法。
20.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1-11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011446212.4A CN112559020A (zh) | 2020-12-08 | 2020-12-08 | 文件升级方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011446212.4A CN112559020A (zh) | 2020-12-08 | 2020-12-08 | 文件升级方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559020A true CN112559020A (zh) | 2021-03-26 |
Family
ID=75061196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011446212.4A Pending CN112559020A (zh) | 2020-12-08 | 2020-12-08 | 文件升级方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559020A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116166298A (zh) * | 2023-03-16 | 2023-05-26 | 北京百度网讯科技有限公司 | 一种固件升级方法、装置、设备及存储介质 |
WO2024037006A1 (zh) * | 2022-08-17 | 2024-02-22 | 荣耀终端有限公司 | 升级包的生成方法、安装方法、设备及存储介质 |
-
2020
- 2020-12-08 CN CN202011446212.4A patent/CN112559020A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024037006A1 (zh) * | 2022-08-17 | 2024-02-22 | 荣耀终端有限公司 | 升级包的生成方法、安装方法、设备及存储介质 |
CN116166298A (zh) * | 2023-03-16 | 2023-05-26 | 北京百度网讯科技有限公司 | 一种固件升级方法、装置、设备及存储介质 |
CN116166298B (zh) * | 2023-03-16 | 2024-03-01 | 北京百度网讯科技有限公司 | 一种固件升级方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210124573A1 (en) | Firmware upgrade method and apparatus, and terminal | |
US20150220326A1 (en) | Mobile Terminal and Software Upgrade Method Thereof | |
CN110347383B (zh) | 跨平台桌面应用的前端开发方法及装置 | |
CN112559020A (zh) | 文件升级方法、装置、设备和介质 | |
CN102591909A (zh) | 在去重复存储系统中提供增强的可扩展性的系统及方法 | |
EP1755039B1 (en) | Feedback linker for increased delta performance | |
US20130111458A1 (en) | Method and system for on-demand patch generation and management | |
CN109376126B (zh) | 一种文件或文件夹处理方法、移动终端及存储介质 | |
US10346256B1 (en) | Client side cache for deduplication backup systems | |
CN108875035B (zh) | 分布式文件系统的数据存储方法及相关设备 | |
CN113805929A (zh) | 一种基于蓝牙传输的实时系统fota升级方法及相关设备 | |
CN110543327A (zh) | 业务组件复用方法、装置、计算机设备及存储介质 | |
CN114064073A (zh) | 软件版本升级方法、装置、计算机设备和存储介质 | |
EP3698253A1 (en) | System and method for managing program memory on a storage device | |
CN112256670A (zh) | 数据迁移方法、终端设备及可读存储介质 | |
CN105119944A (zh) | 一种应用的启动方法和相关装置 | |
CN112395337A (zh) | 一种数据导出方法和装置 | |
CN106254440A (zh) | 一种ap的升级方法和装置 | |
CN112527276B (zh) | 一种可视化编程工具中的数据更新方法、装置及终端设备 | |
CN110362319A (zh) | 应用管理方法及装置、计算机装置和计算机可读存储介质 | |
CN114253589A (zh) | 补丁加载方法,补丁压缩方法以及相关设备 | |
CN105867961A (zh) | 系统升降级的方法和装置 | |
CN105302853A (zh) | 一种实现数据重构的方法和装置 | |
EP2590073A1 (en) | Method and system for on-demand patch generation and management | |
WO2017158663A1 (ja) | データ生成装置、組込端末、ファームウェア更新システム及びデータ生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |