CN108270871A - 一种客户端的文件分块下载方法和装置 - Google Patents
一种客户端的文件分块下载方法和装置 Download PDFInfo
- Publication number
- CN108270871A CN108270871A CN201810093503.6A CN201810093503A CN108270871A CN 108270871 A CN108270871 A CN 108270871A CN 201810093503 A CN201810093503 A CN 201810093503A CN 108270871 A CN108270871 A CN 108270871A
- Authority
- CN
- China
- Prior art keywords
- download
- request
- section
- interval
- server
- 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
Classifications
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种客户端的文件分块下载方法和装置。该方法为:客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,具体包括:当接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间;向服务器发送当前下载请求;接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据;执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作。通过上述方法,解决了相关技术中文件分块下载方法的用户体验不佳的问题,进而达到了提升用户体验的效果。
Description
技术领域
本申请涉及文件下载领域,具体而言,涉及一种客户端的文件分块下载方法和装置。
背景技术
在通过客户端下载文件时,传统的下载方式为单连接下载,而由于在某些情况下,单个连接的下载速度会受到限制,因此现有技术中,多通过分块下载的方式来实现一个文件的多连接下载,进而摆脱当前网络环境对单个连接的现在速度的限制。现有技术中实现分块下载的方法为按照固定比例将目标文件对应的数据分为多个部分,通过多个连接分别对上述多个部分的数据进行下载,全部下载结束后再将多个部分的数据进行拼接。然而,由于用户在下载文件时,目标文件大小不一,而当目标文件过大时,按照固定比例将上述目标文件对应的数据分为多个部分后,每一个部分的数据量依旧很大,进而导致在将下载数据写入磁盘时磁针的移动距离过长,导致磁盘损耗较大,同时上述每个部分的数据量越大,下载完成后将各部分数据进行拼接的时间越长。因此上述原因导致了现有技术中文件分块下载方法的用户体验不佳。
针对相关技术中文件分块下载方法的用户体验不佳的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种客户端的文件分块下载方法,以解决相关技术中文件分块下载方法的用户体验不佳的问题。
根据本申请的一个方面,提供了一种客户端的文件分块下载方法。客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,该方法包括:当接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间,其中,第一区间为当前下载请求对应的目标文件下载区间;向服务器发送当前下载请求;接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据;执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作;其中,多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,第一个下载请求在下载程序开始运行时发送至服务器。
进一步地,当前下载进度中最大未下载区间位于第二区间之中,第二区间为第二下载请求对应的目标文件下载区间,第二下载请求在当前下载请求之前发送至服务器,第二写入操作为将第二区间数据写入存储单元的操作,第二区间数据为服务器返回的与第二区间对应的数据;该方法还包括:当第二区间数据中除第一区间数据外的其他数据被写入存储单元后,停止第二写入操作,同时向服务器发送停止信息,其中,停止信息用于停止服务器发送第二区间数据。
进一步地,由虚拟分块列表记录所述存储单元中所述目标文件的存储进度,其中,虚拟分块列表为根据目标文件的大小来预先建立的,客户端从虚拟分块列表中获取目标文件的当前下载进度中最大未下载区间。
进一步地,该方法还包括:当多个下载请求中的任意一个结束之后,客户端向服务器发送新的下载请求,下载请求的总数保持不变。
进一步地,根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间包括:获取最大未下载区间的起始位置;将最大未下载区间的起始位置与预设偏移量相加,得到位于最大未下载区间的起始位置之后的偏移位置;将偏移位置到最大未下载区间的结尾位置之间的区间确定为第一区间。
根据本申请的另一方面,提供了一种客户端的文件分块下载装置。客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,该装置包括:获取单元,用于在接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;截取单元,用于根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间,其中,第一区间为当前下载请求对应的目标文件下载区间;第一发送单元,用于向服务器发送当前下载请求;接收单元,用于接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据;执行单元,用于执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作;其中,多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,第一个下载请求在下载程序开始运行时发送至服务器。
进一步地,当前下载进度中最大未下载区间位于第二区间之中,第二区间为第二下载请求对应的目标文件下载区间,第二下载请求在当前下载请求之前发送至服务器,第二写入操作为将第二区间数据写入存储单元的操作,第二区间数据为服务器返回的与第二区间对应的数据;该装置还包括:停止单元,用于在第二区间数据中除第一区间数据外的其他数据被写入存储单元后,停止第二写入操作,同时向服务器发送停止信息,其中,停止信息用于停止服务器发送第二区间数据。
进一步地,该装置还包括虚拟分块列表,用于记录存储单元中目标文件的存储进度,其中,虚拟分块列表为根据目标文件的大小来预先建立的,第一区间数据被写入到虚拟分块列表中与第一区间对应的位置中,客户端从虚拟分块列表中获取目标文件的当前下载进度中最大未下载区间。
进一步地,该装置还包括:第二发送单元,用于在多个下载请求中的任意一个结束之后,客户端向服务器发送新的下载请求,下载请求的总数保持不变。
进一步地,截取单元包括:获取模块,用于获取最大未下载区间的起始位置;相加模块,用于将最大未下载区间的起始位置与预设偏移量相加,得到位于最大未下载区间的起始位置之后的偏移位置;确定模块,用于将偏移位置到最大未下载区间的结尾位置之间的区间确定为第一区间。
本申请通过以下方法:客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,具体包括:当接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间,其中,第一区间为当前下载请求对应的目标文件下载区间;向服务器发送当前下载请求;接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据;执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作;其中,多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,第一个下载请求在下载程序开始运行时发送至服务器,解决了相关技术中文件分块下载方法的用户体验不佳的问题,进而达到了提升用户体验的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的客户端的文件分块下载方法的流程图;以及
图2是根据本申请实施例提供的客户端的文件分块下载装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请的实施例,提供了一种客户端的文件分块下载方法。
图1是根据本申请实施例的客户端的文件分块下载方法的流程图。如图1所示,该方法为客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,包括以下步骤:
步骤S101,当接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间。
需要说明的是,客户端每次向服务器发送下载请求时,服务器都会返回请求响应,当上述请求响应为请求成功响应时,证明该次下载请求成功,可以正常下载该次下载请求对应的目标文件。上述获取目标文件的当前下载进度中最大未下载区间的时间设置在接收到与上一次下载请求相对应的响应为请求成功响应时的原因在于,获取目标文件的当前下载进度中最大未下载区间是为了设置当前将要发送的下载请求对应的区间,进而将该当前下载请求发送至服务器,上述实施方式可使上述多个下载请求的发送间隔紧密,保证用户使用该方法进行分块下载时的流畅度。
例如,当客户端发出http下载请求时,服务器返回的响应报文中包括“200”,则证明当前即将发送的下载请求的上一次下载请求成功,进而在收到该响应报文后,即获取目标文件的当前下载进度中最大未下载区间。
步骤S102,根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间,其中,第一区间为当前下载请求对应的目标文件下载区间。
需要说明的是,上述多个下载请求中,除第一个下载请求外,其余下载请求中都包括下载区间标识,下载区间标识用于确定其对应的下载请求所建立的客户端与服务器之间的连接负责下载目标文件的对应区间的数据。上述实施方式中,是在发送当前下载申请之前,根据当前下载进度中的最大未下载区间来确定上述下载区间标识所对应的下载区间。上述当前下载请求可为上述多个下载请求中除了第一个下载请求以外的任意一个下载请求。
例如,上述下载请求为http请求,则上述下载请求的下载区间标识为http请求中的range字段,该range字段的内容为其对应的下载请求所请求下载的目标文件的对应区间数据。而该range字段中的内容对应的区间为根据预设规则截取当前下载进度中最大未下载区间的子区间。
可选的,根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间包括:获取最大未下载区间的起始位置;将最大未下载区间的起始位置与预设偏移量相加,得到位于最大未下载区间的起始位置之后的偏移位置;将偏移位置到最大未下载区间的结尾位置之间的区间确定为第一区间。
需要说明的是,上述预设偏移量为根据目标文件的大小计算得到的,进而可使上述文件的分块下载方法能够适用于不同大小的文件的下载。
可选的,根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间还包括:按照特定比例从上述最大未下载区间中截取一个连续子区间作为第一区间,其中,上述连续子区间的结尾与上述最大未下载区间的结尾重合。
步骤S103,向服务器发送当前下载请求。
步骤S104,接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据。
需要说明的是,服务器在接收到客户端发送的下载请求并返回请求成功响应之后,会继续向客户端发送上述下载请求所请求下载的数据,具体为该下载请求中的下载区间标识中所标记的区间对应的目标文件的数据。
步骤S105,执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作。
需要说明的是,客户端在接收到上述第一区间数据之后,通过写操作将上述第一区间数据写入存储单元中的预定位置,当客户端接收完成全部上述第一区间数据,同时将全部上述第一区间数据写入存储单元中后,上述当前下载请求所请求的下载内容全部下载完成,该当前下载请求结束。
可选的,由虚拟分块列表记录存储单元中目标文件的存储进度,其中,虚拟分块列表为根据目标文件的大小来预先建立的,客户端从虚拟分块列表中获取目标文件的当前下载进度中最大未下载区间。
需要说明的是,由于目标文件的下载进度是通过已下载的文件大小来计算的,因此上述虚拟分块列表的建立与目标文件的大小相对应,将上述虚拟列表分成固定大小的多个单元,例如将上述单元的大小设置为2M,进而以2M为单位对上述目标文件进行下载,并将下载的内容写入存储单元,上述虚拟分块列表的每个单元记录其对应的存储空间中是否被写入了目标文件中对应的数据,进而可通过获取虚拟分块列表中单元的记录来判断当前目标文件的下载进度以及未下载的区间。
其中,多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,第一个下载请求在下载程序开始运行时发送至服务器。
需要说明的是,在上述实施例发送的第一个下载请求中不包括下载区间标识,该下载请求对应的目标文件下载区间也不是通过按照上述预定规则截取最大未下载区间的子区间来确定的,而是默认为该下载请求对应的目标文件下载区间为整个目标文件。
例如,上述第一下载请求为http请求,当http请求中不包括range字段时,该请求对应的下载区间默认为是目标文件的开头到结尾。
需要说明的是,上述多个下载请求中除了第一个下载请求之外的其他请求是在其前一个请求对应的响应为成功响应时,截取当前下载进度中最大未下载区间的子区间作为其对应的下载区间后,发送至服务器,而第一个下载请求则是在下载程勋开始运行时发送至服务器,与上述多个下载请求中的其他下载请求发送的条件不同。在发送之后,上述第一个下载请求和上述多个下载请求中的其他下载请求对应的下载过程相同。
可选的,当前下载进度中最大未下载区间位于第二区间之中,第二区间为第二下载请求对应的目标文件下载区间,第二下载请求在当前下载请求之前发送至服务器,第二写入操作为将第二区间数据写入存储单元的操作,第二区间数据为服务器返回的与第二区间对应的数据;该方法还包括:当第二区间数据中除第一区间数据外的其他数据被写入存储单元后,停止第二写入操作,同时向服务器发送停止信息,其中,停止信息用于停止服务器发送第二区间数据。
需要说明的是,由于当前下载请求对应的目标文件下载区间,即第一区间为通过预设规则从当前下载进度中的最大未下载区间中截取的子区间,而由于该当前下载请求不是第一个下载请求,因此当前下载进度中的最大未下载区间必然位于某个在当前下载请求之前发送的下载请求,即上述第二下载请求所对应的目标文件下载区间,由于在确定上述第一区间之后当前下载请求建立的客户端与服务器的连接负责下载第一区间对应的目标文件数据,因此上述第二下载请求建立的客户端与服务器的连接仅需负责上述第二区间中除第一区间数据外的数据的下载。由于网速的限制,当上述当前下载请求发送后,服务器还没完成第二区间数据的发送,同时客户端也没有完成将第二区间数据写入存储单元的操作,因此,在第二区间数据中除第一区间数据外的其他数据被写入存储单元后,便可停止对第二区间数据的使用,同时向服务器发送停止信息,使服务器停止向客户端发送上述第二区间数据中剩余的与第一区间数据对应的数据。
可选的,当多个下载请求中的任意一个结束之后,客户端向服务器发送新的下载请求,下载请求的总数保持不变。
需要说明的是,上述多个下载请求中的任意一个下载请求的结束有两种情况,一种是客户端将该下载请求所对应的区间数据全部接收完成并全部写入到存储单元,则该请求结束,一种是客户端将该请求对应的区间中未被设置为其他请求对应区间的部分对应的数据全部接收完成并全部写入到存储单元,则该请求也会结束。
需要说明的是,通过下载请求建立的用于下载上述目标文件的连接的数量为固定的,因此,当上述多个下载请求中的任意一个结束,上述客户端向服务器发送新的下载请求,上述新的下载请求对应的目标文件下载区间的确定方法与上述多个下载请求中除上述第一个下载请求外的其他下载请求对应的目标文件下载区间的确定方法一致。
本申请实施例提供的客户端的文件分块下载方法,通过客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,该方法包括:当接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间,其中,第一区间为当前下载请求对应的目标文件下载区间;向服务器发送当前下载请求;接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据;执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作;其中,多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,解决了相关技术中文件分块下载方法的用户体验不佳的问题,进而达到了提升用户体验的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种客户端的文件分块下载装置,需要说明的是,本申请实施例的客户端的文件分块下载装置可以用于执行本申请实施例所提供的用于客户端的文件分块下载方法。以下对本申请实施例提供的客户端的文件分块下载装置进行介绍。
图2是根据本申请实施例的客户端的文件分块下载装置的示意图。客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,如图2所示,该装置包括:获取单元10、截取单元20、第一发送单元30、接收单元40和执行单元50。
具体地,获取单元10,用于在接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;截取单元20,用于根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间,其中,第一区间为当前下载请求对应的目标文件下载区间;第一发送单元30,用于向服务器发送当前下载请求;接收单元40,用于接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据;执行单元50,用于执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作;其中,多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件。
可选的,当前下载进度中最大未下载区间位于第二区间之中,第二区间为第二下载请求对应的目标文件下载区间,第二下载请求在当前下载请求之前发送至服务器,第二写入操作为将第二区间数据写入存储单元的操作,第二区间数据为服务器返回的与第二区间对应的数据;该装置还包括:停止单元,用于在第二区间数据中除第一区间数据外的其他数据被写入存储单元后,停止第二写入操作,同时向服务器发送停止信息,其中,停止信息用于停止服务器发送第二区间数据。
可选的,该装置还包括虚拟分块列表,用于记录存储单元中所述目标文件的存储进度,其中,虚拟分块列表为根据目标文件的大小来预先建立的,第一区间数据被写入到虚拟分块列表中与第一区间对应的位置中,客户端从虚拟分块列表中获取目标文件的当前下载进度中最大未下载区间。
可选的,该装置还包括:第二发送单元,用于在多个下载请求中的任意一个结束之后,客户端向服务器发送新的下载请求,下载请求的总数保持不变。
可选的,截取单元20包括:获取模块,用于获取最大未下载区间的起始位置;相加模块,用于将最大未下载区间的起始位置与预设偏移量相加,得到位于最大未下载区间的起始位置之后的偏移位置;确定模块,用于将偏移位置到最大未下载区间的结尾位置之间的区间确定为第一区间。
本申请实施例提供的客户端的文件分块下载装置,通过客户端依次向服务器发送预设数量的多个下载请求,根据多个下载请求对目标文件进行分块下载,获取单元10在接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;截取单元20根据预设规则截取当前下载进度中最大未下载区间的子区间作为第一区间,其中,第一区间为当前下载请求对应的目标文件下载区间;第一发送单元30向服务器发送当前下载请求;接收单元40接收服务器返回的与当前下载请求对应的请求成功响应和目标文件中与第一区间对应的第一区间数据;执行单元50执行第一写入操作,其中,第一写入操作为将第一区间数据写入存储单元的操作;其中,多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,解决了相关技术中文件分块下载方法的用户体验不佳的问题,进而达到了提升用户体验的效果。
客户端的文件分块下载装置包括处理器和存储器,上述获取单元10、截取单元20、第一发送单元30、接收单元40和执行单元50等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来使提升用户体验。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种客户端的文件分块下载方法,其特征在于,所述客户端依次向服务器发送预设数量的多个下载请求,根据所述多个下载请求对目标文件进行分块下载,所述方法包括:
当接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;
根据预设规则截取所述当前下载进度中最大未下载区间的子区间作为第一区间,其中,所述第一区间为当前下载请求对应的目标文件下载区间;
向服务器发送所述当前下载请求;
接收所述服务器返回的与所述当前下载请求对应的请求成功响应和目标文件中与所述第一区间对应的第一区间数据;
执行第一写入操作,其中,所述第一写入操作为将所述第一区间数据写入存储单元的操作;
其中,所述多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,所述第一个下载请求在下载程序开始运行时发送至所述服务器。
2.根据权利要求1所述的方法,其特征在于,所述当前下载进度中最大未下载区间位于第二区间之中,所述第二区间为第二下载请求对应的目标文件下载区间,所述第二下载请求在所述当前下载请求之前发送至所述服务器,第二写入操作为将第二区间数据写入所述存储单元的操作,所述第二区间数据为所述服务器返回的与所述第二区间对应的数据;所述方法还包括:
当所述第二区间数据中除所述第一区间数据外的其他数据被写入所述存储单元后,停止所述第二写入操作,同时向所述服务器发送停止信息,其中,所述停止信息用于停止所述服务器发送所述第二区间数据。
3.根据权利要求1所述的方法,其特征在于,由虚拟分块列表记录所述存储单元中所述目标文件的存储进度,其中,所述虚拟分块列表为根据所述目标文件的大小来预先建立的,所述客户端从所述虚拟分块列表中获取所述目标文件的当前下载进度中最大未下载区间。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述多个下载请求中的任意一个结束之后,所述客户端向所述服务器发送新的下载请求,所述下载请求的总数保持不变。
5.根据权利要求1所述的方法,其特征在于,根据预设规则截取所述当前下载进度中最大未下载区间的子区间作为第一区间包括:
获取所述最大未下载区间的起始位置;
将所述最大未下载区间的起始位置与预设偏移量相加,得到位于所述最大未下载区间的起始位置之后的偏移位置;
将所述偏移位置到所述最大未下载区间的结尾位置之间的区间确定为所述第一区间。
6.一种客户端的文件分块下载装置,其特征在于,所述客户端依次向服务器发送预设数量的多个下载请求,根据所述多个下载请求对目标文件进行分块下载,所述装置包括:
获取单元,用于在接收到与上一次下载请求相对应的响应为请求成功响应时,获取目标文件的当前下载进度中最大未下载区间;
截取单元,用于根据预设规则截取所述当前下载进度中最大未下载区间的子区间作为第一区间,其中,所述第一区间为当前下载请求对应的目标文件下载区间;
第一发送单元,用于向服务器发送所述当前下载请求;
接收单元,用于接收所述服务器返回的与所述当前下载请求对应的请求成功响应和目标文件中与所述第一区间对应的第一区间数据;
执行单元,用于执行第一写入操作,其中,所述第一写入操作为将所述第一区间数据写入存储单元的操作;
其中,所述多个下载请求中的第一个下载请求对应的目标文件下载区间默认为整个目标文件,所述第一个下载请求在下载程序开始运行时发送至所述服务器。
7.根据权利要求6所述的装置,其特征在于,所述当前下载进度中最大未下载区间位于第二区间之中,所述第二区间为第二下载请求对应的目标文件下载区间,所述第二下载请求在所述当前下载请求之前发送至所述服务器,第二写入操作为将第二区间数据写入所述存储单元的操作,所述第二区间数据为所述服务器返回的与所述第二区间对应的数据;所述装置还包括:
停止单元,用于在所述第二区间数据中除所述第一区间数据外的其他数据被写入所述存储单元后,停止所述第二写入操作,同时向所述服务器发送停止信息,其中,所述停止信息用于停止所述服务器发送所述第二区间数据。
8.根据权利要求1所述的装置,其特征在于,所述装置还包括虚拟分块列表,用于记录所述存储单元中所述目标文件的存储进度,其中,所述虚拟分块列表为根据所述目标文件的大小来预先建立的,所述客户端从所述虚拟分块列表中获取所述目标文件的当前下载进度中最大未下载区间。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二发送单元,用于在所述多个下载请求中的任意一个结束之后,所述客户端向所述服务器发送新的下载请求,所述下载请求的总数保持不变。
10.根据权利要求6所述的装置,其特征在于,所述截取单元包括:
获取模块,用于获取所述最大未下载区间的起始位置;
相加模块,用于将所述最大未下载区间的起始位置与预设偏移量相加,得到位于所述最大未下载区间的起始位置之后的偏移位置;
确定模块,用于将所述偏移位置到所述最大未下载区间的结尾位置之间的区间确定为所述第一区间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810093503.6A CN108270871A (zh) | 2018-01-29 | 2018-01-29 | 一种客户端的文件分块下载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810093503.6A CN108270871A (zh) | 2018-01-29 | 2018-01-29 | 一种客户端的文件分块下载方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108270871A true CN108270871A (zh) | 2018-07-10 |
Family
ID=62777231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810093503.6A Pending CN108270871A (zh) | 2018-01-29 | 2018-01-29 | 一种客户端的文件分块下载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108270871A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600453A (zh) * | 2019-02-18 | 2019-04-09 | 广州卓远虚拟现实科技有限公司 | 一种分布式虚拟现实内容分发方法和系统 |
CN110597764A (zh) * | 2019-10-10 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种文件管理方法及装置 |
CN110740171A (zh) * | 2019-09-26 | 2020-01-31 | 苏州浪潮智能科技有限公司 | 一种数据分片传输方法与装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140250158A1 (en) * | 2011-11-18 | 2014-09-04 | Tencent Technology (Shenzhen) Company Limited | Method and device for obtaining file |
CN106027582A (zh) * | 2015-09-16 | 2016-10-12 | 展视网(北京)科技有限公司 | 一种内容相关的并行下载方法和装置 |
CN106550042A (zh) * | 2016-11-23 | 2017-03-29 | 广州优视网络科技有限公司 | 多线程下载方法和装置及计算设备 |
CN106961454A (zh) * | 2016-01-08 | 2017-07-18 | 广州优视网络科技有限公司 | 文件下载方法、装置及终端设备 |
-
2018
- 2018-01-29 CN CN201810093503.6A patent/CN108270871A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140250158A1 (en) * | 2011-11-18 | 2014-09-04 | Tencent Technology (Shenzhen) Company Limited | Method and device for obtaining file |
CN106027582A (zh) * | 2015-09-16 | 2016-10-12 | 展视网(北京)科技有限公司 | 一种内容相关的并行下载方法和装置 |
CN106961454A (zh) * | 2016-01-08 | 2017-07-18 | 广州优视网络科技有限公司 | 文件下载方法、装置及终端设备 |
CN106550042A (zh) * | 2016-11-23 | 2017-03-29 | 广州优视网络科技有限公司 | 多线程下载方法和装置及计算设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600453A (zh) * | 2019-02-18 | 2019-04-09 | 广州卓远虚拟现实科技有限公司 | 一种分布式虚拟现实内容分发方法和系统 |
CN110740171A (zh) * | 2019-09-26 | 2020-01-31 | 苏州浪潮智能科技有限公司 | 一种数据分片传输方法与装置 |
CN110740171B (zh) * | 2019-09-26 | 2022-12-02 | 苏州浪潮智能科技有限公司 | 一种数据分片传输方法与装置 |
CN110597764A (zh) * | 2019-10-10 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种文件管理方法及装置 |
CN110597764B (zh) * | 2019-10-10 | 2024-05-07 | 深圳前海微众银行股份有限公司 | 一种文件下载、版本管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287839A (zh) | 一种页面加载方法和设备 | |
CN109933593B (zh) | 资产数据记载方法、装置及设备 | |
CN104503745B (zh) | 一种生成应用渠道包的方法和装置 | |
CN108270871A (zh) | 一种客户端的文件分块下载方法和装置 | |
CN107451136A (zh) | 数据核对方法及装置 | |
CN113344567B (zh) | 一种聚合码的支付页面的访问方法、装置、设备及介质 | |
CN107133162A (zh) | 一种测试方法及装置 | |
CN108520077A (zh) | 一种避免重复下载的方法和装置 | |
CN110175910A (zh) | 处理授信服务请求的方法、装置和电子设备 | |
CN107067559A (zh) | 一种实现充电桩互联充电的方法和装置 | |
CN107276970A (zh) | 一种解绑、绑定方法和装置 | |
CN109032820A (zh) | 应用程序版本兼容的处理方法及装置 | |
CN112561510A (zh) | 缴费系统、方法、装置、设备及存储介质 | |
CN108427635A (zh) | 快速测试web页面的方法、服务器及计算机可读存储介质 | |
CN105095310B (zh) | 数据处理方法、第一服务器、第二服务器和数据处理系统 | |
CN108021594A (zh) | 一种网页展示方法、装置及系统 | |
CN107231305B (zh) | 一种路由代理及缓存管理方法和装置 | |
CN108564352A (zh) | 电子资源信息的处理方法及装置 | |
CN108306961A (zh) | 一种文件分块下载方法和装置 | |
CN106775499B (zh) | 一种对公共存储空间进行合理化暴露的方法、暴露控制系统及一种云存储系统 | |
CN106407109A (zh) | 一种实现推广信息控制的自动化测试方法及装置 | |
CN109587198A (zh) | 图文信息推送方法及装置 | |
CN114022136A (zh) | 一种用于算力交易的方法、设备与系统 | |
CN109461088A (zh) | 一种保全工单的分单方法、装置、介质和电子设备 | |
CN110365772A (zh) | 消息推送方法及装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 514000 Fifth Floor, World Business Center, Meizhou City, Guangdong Province Applicant after: GUANGDONG 115 TECHNOLOGY CO., LTD. Address before: 523808 6th Floor, Building 17, Songkeyuan, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province Applicant before: GUANGDONG 115 TECHNOLOGY CO., LTD. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180710 |