数据下载的方法及装置与流程

文档序号:33477953发布日期:2023-03-15 11:00阅读:57来源:国知局
数据下载的方法及装置与流程

1.本发明涉及大数据技术领域,尤其涉及数据下载方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.现有技术中,客户端软件利用网络从网络侧下载数据时,有时用户上传下载文件需要历时数小时,如遇到碰到网络故障导致下载中断,不具备断点续传的功能的服务器或者软件只能通过不断重新访问,并且,每次访问都会返回整个文件,既耗内存又耗带宽,更不利的是,无法进行有效的加载进度控制,缺乏灵活的下载管理。


技术实现要素:

4.本发明实施例提供一种数据下载的方法,包括:
5.对数据下载的事件进行监听;
6.若监听到数据下载中断,则记录当前下载中断的位置;
7.响应于接收到的继续下载的请求,在http请求头中记录所述下载中断的位置和数据结束的位置,并发送http请求,以请求从所述下载中断的位置继续下载。
8.所述下载中断的位置为当前已下载数据在整个所述数据中的长度位置;
9.在http请求头中记录所述下载中断的位置和数据末尾的位置,包括:
10.在http请求头的range字段中设置请求下载内容的起始点和终止点;
11.所述起始点为当前已下载数据在整个待下载的数据中的长度位置;
12.所述终止点为所述数据结束的位置。
13.发送http请求,以请求从所述下载中断的位置继续下载,包括:
14.为http请求,创建nsurl connection方法;
15.通过所述nsurl connection方法发送异步下载请求,以继续下载。
16.通过所述nsurl connection方法发送异步下载请求,包括:
17.通过设置所述nsurl connection方法的代理方法,发送异步下载请求;
18.监听所述nsurl connection方法的代理方法。
19.所述方法还包括:
20.响应于接收到的暂停下载的请求,通过nsurl connection方法发送取消下载方法,并清空。
21.所述方法还包括:
22.将下载的数据和中断后继续下载的数据,均存入系统沙盒预设的地址中。
23.通过非进程的本地存储,将下载的数据和中断后继续下载的数据存储于系统沙盒中。
24.本发明实施例还提供一种数据下载的装置,包括:
25.监听模块,用于对数据下载的事件进行监听;
26.记录模块,用于若监听到数据下载中断,则记录当前下载中断的位置;
27.接收模块,用于接收继续下载的请求;
28.下载处理模块,用于响应于接收到的继续下载的请求,在http请求头中记录所述下载中断的位置和数据结束的位置,并发送http请求,以请求从所述下载中断的位置继续下载。
29.发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据下载的方法。
30.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据下载的方法。
31.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据下载的方法。
32.本发明实施例提供的数据下载的方法及装置,对下载事件进行监听,若出现数据下载中断,则记录下载中断的位置,当接收到继续下载的请求时,可以根据所记录的下载中断的位置和数据结束的位置,发送http请求,以实现从上一次下载中断的位置继续下载,可实现从中断的位置处继续下载,可实现在准确的位置继续下载,保证了数据下载的完整性,避免重复下载整个数据文件造成的资源不必要的占用,提高了数据下载的效率,并且,是否启动继续下载可以基于用户请求来触发,可实现用户对断点下载操作更灵活的控制。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
34.图1为本发明实施例中数据下载的方法的流程图;
35.图2为本发明实施例中发送nsurl connection异步请求(get-代理)并监听代理方法的流程的流程图;
36.图3为本发明实施例中数据下载的装置的结构框图;
37.图4为本发明实施例提供的人机交互界面的示例图;
38.图5为本发明实施例中的计算机设备示意图。
具体实施方式
39.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
40.发明人在发明过程中注意到,现有数据下载的过程中,若网络中断后即重新请求返回整个数据文件的方法,既耗内存又耗带宽,并且会导致下载效率低下。
41.针对上述问题,本发明实施例提供了一种数据下载的方法,参照图1所示,包括下
述步骤:
42.s11、对数据下载的事件进行监听;
43.s12、若监听到数据下载中断,则记录当前下载中断的位置;
44.s13、响应于接收到的继续下载的请求,在http请求头中记录下载中断的位置和数据结束的位置,并发送http请求,以请求从所述下载中断的位置继续下载。
45.上述步骤s11-s13步骤的执行主体可以是各类数据的请求下载方,比如浏览器、各类app、客户端等,本发明实施例对于此不做限定。
46.断点下载,需要保证下载的整个数据的完整性,因此,需要记录准确的中断位置,以保证下一次请求的连续性。
47.下载中断的位置为当前已下载数据在整个所述数据中的长度位置;相应地,上述s13步骤中,在http请求头中记录下载中断的位置和数据结束的位置的步骤,例如可以在http请求头的range字段中设置请求下载内容的起始点和终止点;其中:
48.起始点为当前已下载数据在整个待下载的数据中的长度位置;
49.终止点为数据结束的位置。
50.http请求头的range用于从服务器中获取大文件的某个部分的内容,需要获取所请求的内容的起始点和终止点的字节,例如:
51.byte=42570~2047799,即中断位置为42570字节,需要从42570字节以后开始,继续下载直至2047799字节结束。
52.在本发明实施例中,上述步骤s13中,可通过下述方式发送http请求:
53.为http请求,创建nsurl connection(nsurl连接)方法;
54.通过所述nsurl connection方法发送异步下载请求,以继续下载。
55.nsurl connection(nsurl连接)方法的作用主要是负责发送请求,建立数据请求方(例如客户端)与数据源方(例如服务器)连接,将请求发送给数据源方,并收集来自数据源方比如服务器响应的数据。
56.进一步地,上述异步下载请求的处理方式,引入了代理方法(代理对象),发送下载请求方(数据请求方)把请求交给代理对象,由代理对象向数据源方(比如服务器)发起请求,接收、解析服务器响应的数据,并把数据存储于请求方本地。异步下载请求的方式,使下载请求方不用等待数据源方处理请求,例如浏览器不用重新加载整个页面来展示服务器响应的数据,在异步请求发送的过程中下载请求方还能进行其它的操作,不会处于锁死或者等待的状态,从一个异步下载请求发送到获取响应结果的期间,发送下载请求方还可以进行其它的操作,从而提高整体的处理效率,同时也意味者并行发送多个请求也是可行的。
57.上述步骤s13中,发送http请求,以请求从所述下载中断的位置继续下载,具体可通过下述方式实现:
58.为http请求,创建nsurl connection方法;
59.通过所述nsurl connection方法发送异步下载请求,以继续下载,通常在该方法中解析数据源方(比如服务器)返回的数据。
60.具体地,通过设置所述nsurl connection方法的代理方法,发送异步下载请求;
61.监听所述nsurl connection方法的代理方法。
62.发送nsurl connection异步请求(get-代理)并监听代理方法的流程,参照图2所
示,包括下述步骤:
63.s21、确定请求路径;
64.s22、创建请求对象;
65.s23、创建nsurl connection对象并设置代理;
66.s24、使用nsurl connection data delegate协议,并实现相应的代理方法;
67.s25、在代理方法中监听网络请求的响应。
68.上述代理方法调用的时机可以有下述几种:
69.1.当接收到服务器响应的时候调用该代理方法;
70.2.当接收到数据的时候调用,该代理方法可能会被调用多次;
71.3.当服务端返回的数据接收完毕之后调用该代理方法
72.4.当请求错误的时候调用(比如请求超时)
73.在具体实施时,本发明实施例可提供实现断点下载相关的开始暂停操作的人机交互界面,该界面例如可以是各类进度条,用户可以通过在界面上设置的开始继续下载按钮,或者暂停下载的按钮,触发重新下载操作,或者暂停重新下载的操作。一个界面的示例可参照图4所示。
74.当用户在人机交互界面上,点击暂停下载的请求时,请求下载方响应于接收到的暂停请求,通过nsurl connection方法发送取消下载方法,此时,可以中止下载从数据源获取数据的过程。
75.较佳地,例如可以将下载的数据以及中断后继续下载的数据,通过沙盒的方式存储,例如将下载的数据均写入系统沙盒(sandbox)预设的地址中,即使出现网络中断导致重新下载,也可以保证下载的数据的完整性和安全性。
76.较佳地,为了保证下载的数据不会由于进程消失而中断,在发明实施例中,通过非进程的本地存储,将下载的数据和中断后继续下载的数据存储于系统沙盒中。
77.本发明实施例中还提供了一种数据装置,如下面的实施例所述。由于该装置解决问题的原理与数据下载的方法相似,因此该装置的实施可以参见数据下载的方法的实施,重复之处不再赘述。
78.本发明实施例提供了一种数据下载的装置,参照图3所示,包括:
79.监听模块31,用于对数据下载的事件进行监听;
80.记录模块32,用于若监听到数据下载中断,则记录当前下载中断的位置;
81.接收模块33,用于接收继续下载的请求;
82.下载处理模块34,用于响应于接收到的继续下载的请求,在http请求头中记录所述下载中断的位置和数据结束的位置,并发送http请求,以请求从所述下载中断的位置继续下载。
83.本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述的数据下载的方法。
84.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述的数据下载的方法。
85.本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程
序,所述计算机程序被处理器执行时实现前述数据下载的方法。
86.在实施本发明实施例提供的技术方案时,可以按如下方式实施。
87.图5为计算机设备示意图,如图所示,计算机设备中包括:
88.处理器500,用于读取存储器520中的程序,执行下列过程:
89.对数据下载的事件进行监听;
90.若监听到数据下载中断,则记录当前下载中断的位置;
91.响应于接收到的继续下载的请求,在http请求头中记录所述下载中断的位置和数据结束的位置,并发送http请求,以请求从所述下载中断的位置继续下载;
92.收发机510,用于在处理器500的控制下接收和发送数据。
93.其中,在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
94.本发明实施例提供的数据下载的方法及装置,对下载事件进行监听,若出现数据下载中断,则记录下载中断的位置,当接收到继续下载的请求时,可以根据所记录的下载中断的位置和数据结束的位置,发送http请求,以实现从上一次下载中断的位置继续下载,可实现从中断的位置处继续下载,可实现在准确的位置继续下载,保证了数据下载的完整性,避免重复下载整个数据文件造成的资源不必要的占用,提高了数据下载的效率,并且,是否启动继续下载可以基于用户请求来触发,可实现用户对断点下载操作更灵活的控制。
95.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
96.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
97.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
98.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
99.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1