掌桥专利:专业的专利平台
掌桥专利
首页

一种断点续传方法及系统

文献发布时间:2023-06-19 19:14:59


一种断点续传方法及系统

技术领域

本发明涉及数据传输技术领域,并且更具体地,涉及一种断点续传方法及系统。

背景技术

目前利用JLS协议和ZLLS协议实现文件断点续传,这种方法适用于基于Web网站浏览器方式或文件下载工具方式对文件进行下载,大文件上传因文件过大或者中途网络中断而导致失败。

发明内容

根据本发明,提供了一种断点续传方法及系统,以解决大文件上传因文件过大或者中途网络中断而导致失败的技术问题。

根据本发明的第一个方面,提供了一种断点续传方法,包括:

当多线程文件在传输过程中断时,记录断点位置,保存本地下载信息,建立临时文件来保存本地下载信息,所述本地下载信息包含各线程已下载字节数,文件的指针和文件的大小信息;

当接收到继续传输指令后,建立连接,判断临时文件是否存在本地下载信息;

如果存在,读取已下载的所述本地下载信息,根据记录的断点位置,将文件指针定位在未完成线程的断点位置,从断点处传输每个线程的剩余部分的数据。

可选地,当传输中断时,记录断点位置之前,还包括:

判断多线程文件在传输时是否中断。

可选地,所述方法还包括:

将所述多线程文件分片进行传输。

可选地,将所述多线程文件分片进行传输,包括:

每接收到一个文件分片就写入一个新建的临时文件;

当接收到文件合并请求后,将所有临时文件按照顺序合并成一个文件并删除原先的分片临时文件。

可选地,包括:将所述多线程文件分片进行传输,包括:

接收到文件开始上传请求后,建立一个临时文件;

每接收到一个文件分片就将分片内容追加到临时文件末尾,当接收到文件发送完毕的请求后,文件上传成功。

根据本发明的另一个方面,还提供了一种断点续传系统,包括:

建立临时文件夹模块,用于当多线程文件在传输过程中断时,记录断点位置,保存本地下载信息,建立临时文件来保存本地下载信息,所述本地下载信息包含各线程已下载字节数,文件的指针和文件的大小信息;

判断本地下载信息模块,用于当接收到继续传输指令后,建立连接,判断临时文件是否存在本地下载信息;

传输剩余部分数据模块,用于如果存在,读取已下载的所述本地下载信息,根据记录的断点位置,将文件指针定位在未完成线程的断点位置,从断点处传输每个线程的剩余部分的数据。

可选地,建立临时文件夹模块,还包括:

判断中断子模块,用于判断多线程文件在传输时是否中断。

可选地,所述系统还包括:

分片传输模块,用于将所述多线程文件分片进行传输。

可选地,分片传输模块,包括:

写入临时文件子模块,用于每接收到一个文件分片就写入一个新建的临时文件;

合并临时文件子模块,用于当接收到文件合并请求后,将所有临时文件按照顺序合并成一个文件并删除原先的分片临时文件。

可选地,分片传输模块,包括:

建立临时文件子模块,用于接收到文件开始上传请求后,建立一个临时文件;

追加文件分片子模块,用于每接收到一个文件分片就将分片内容追加到临时文件末尾,当接收到文件发送完毕的请求后,文件上传成功。

从而,能够实现文件的断点续传功能。基于分块上传的断点续传突破了浏览器端对于文件上传大小的限制,可以上传任意大小的文件,并且对实现文件的断点续传提供了一种新的思路,突破了目前文件上传的各种限制。解决了以往大文件上传因文件过大或者中途网络中断而导致失败的问题。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为本实施方式所述的一种断点续传方法的流程示意图;

图2为本实施方式所述的断点续传方法的实现流程示意图;

图3为本实施方式所述的一种断点续传系统的示意图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

根据本发明的第一个方面,提供了一种断点续传方法100,参考图1所示,该方法100包括:

S101:当多线程文件在传输过程中断时,记录断点位置,保存本地下载信息,建立临时文件来保存本地下载信息,所述本地下载信息包含各线程已下载字节数,文件的指针和文件的大小信息;

S102:当接收到继续传输指令后,建立连接,判断临时文件是否存在本地下载信息;

S103:如果存在,读取已下载的所述本地下载信息,根据记录的断点位置,将文件指针定位在未完成线程的断点位置,从断点处传输每个线程的剩余部分的数据。

具体地,参考图2所示,断点续传实质是记录线程上一次下载断开的位置,并在下一次建立连接后直接从上次传输中断的位置继续传输。断点续传的关键问题有两点:传输中断时,记录断点,保存本地的下载信息,需要建立临时文件来保存本地下载信息,多线程下载信息包含各线程已下载字节数,文件的指针和文件的大小等信息。当传输中断时,多个线程断点下载信息会记录在临时文件中,并将文件指针指向已下载文件的末尾。续传,指任务恢复连接后,系统检查本地下载信息,首先判断本地是否存在所下载的文件,如果存在,读取已下载文件的下载信息,系统会根据记录的断点位置,自动将指针定位在未完成线程的断点位置,自动从断点处传输每个线程的剩余部分的数据,这需要在客户端向服务器发送请求。

在前端分片传输过程中,分片大小是一定的,分片越小,请求越多,开销越大;分片越大,灵活度越小,分片上传的优势就会相对越不明显。所以,分片大小可以根据实际情况设置一个合适的值。

在服务器端,文件分片的合并存在2种策略。一种是传完一起合并,即在服务器端每接收到一个文件分片就写入一个新建的临时文件,当接收到文件合并请求后开始将所有临时文件按照顺序合并成一个文件并删除原先的分片临时文件。另外一种策略是边传边合并,即在服务器端接收到文件开始上传请求后,建立一个临时文件,服务器端每接收到一个文件分片就将该分片内容追加到临时文件末尾,当接收到文件发送完毕的请求后,文件上传成功。这种方法解决了Web端等待时间过长的问题,但是在文件续传过程中,临时文件中会存有多余的数据,形成垃圾文件。通过在服务器端设置缓冲区,并使用文件实时合并方式解决用户等待响应时间过长的问题,同时使用文件校验保证了最后合并文件的正确性,从而提高了Web端大文件断点续传的用户体验。

从而,能够实现文件的断点续传功能。基于分块上传的断点续传突破了浏览器端对于文件上传大小的限制,可以上传任意大小的文件,并且对实现文件的断点续传提供了一种新的思路,突破了目前文件上传的各种限制。解决了以往大文件上传因文件过大或者中途网络中断而导致失败的问题。

可选地,可选地,当传输中断时,记录断点位置之前,还包括:

判断多线程文件在传输时是否中断。

可选地,所述方法还包括:

将所述多线程文件分片进行传输。

可选地,将所述多线程文件分片进行传输,包括:

每接收到一个文件分片就写入一个新建的临时文件;

当接收到文件合并请求后,将所有临时文件按照顺序合并成一个文件并删除原先的分片临时文件。

可选地,包括:将所述多线程文件分片进行传输,包括:

接收到文件开始上传请求后,建立一个临时文件;

每接收到一个文件分片就将分片内容追加到临时文件末尾,当接收到文件发送完毕的请求后,文件上传成功。

从而,能够实现文件的断点续传功能。基于分块上传的断点续传突破了浏览器端对于文件上传大小的限制,可以上传任意大小的文件,并且对实现文件的断点续传提供了一种新的思路,突破了目前文件上传的各种限制。解决了以往大文件上传因文件过大或者中途网络中断而导致失败的问题。

根据本发明的另一个方面,还提供了一种断点续传系统300,参考图3所示,该系统300包括:

建立临时文件夹模块310,用于当多线程文件在传输过程中断时,记录断点位置,保存本地下载信息,建立临时文件来保存本地下载信息,所述本地下载信息包含各线程已下载字节数,文件的指针和文件的大小信息;

判断本地下载信息模块320,用于当接收到继续传输指令后,建立连接,判断临时文件是否存在本地下载信息;

传输剩余部分数据模块330,用于如果存在,读取已下载的所述本地下载信息,根据记录的断点位置,将文件指针定位在未完成线程的断点位置,从断点处传输每个线程的剩余部分的数据。

可选地,建立临时文件夹模块310,还包括:

判断中断子模块,用于判断多线程文件在传输时是否中断。

可选地,所述系统还包括:

分片传输模块,用于将所述多线程文件分片进行传输。

可选地,分片传输模块,包括:

写入临时文件子模块,用于每接收到一个文件分片就写入一个新建的临时文件;

合并临时文件子模块,用于当接收到文件合并请求后,将所有临时文件按照顺序合并成一个文件并删除原先的分片临时文件。

可选地,分片传输模块,包括:

建立临时文件子模块,用于接收到文件开始上传请求后,建立一个临时文件;

追加文件分片子模块,用于每接收到一个文件分片就将分片内容追加到临时文件末尾,当接收到文件发送完毕的请求后,文件上传成功。

本发明的实施例的一种断点续传系统300与本发明的另一个实施例的一种断点续传方法100相对应,在此不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种支持断点续传的数据抽取方法及系统
  • 一种计算机系统休眠方法和一种计算机系统
  • 一种断点续传的方法和具有断点续传功能的诊断设备
  • 一种基于安卓系统的多线程断点续传下载系统及方法
技术分类

06120115847299