一种文件下载方法、系统及装置与流程

文档序号:29853655发布日期:2022-04-30 08:41阅读:87来源:国知局
一种文件下载方法、系统及装置与流程

1.本发明涉及数据传输技术领域,特别是涉及一种文件下载方法、系统及装置。


背景技术:

2.用户通过安装于用户端的浏览器可以向应用服务器发起下载文件的请求,应用服务器可以协助用户端从文件服务器中下载文件,但浏览器往往对同步下载文件的数量具有限制,难以对多个文件同步进行下载。
3.现有技术中,在用户通过浏览器同步下载多个文件的情况下,应用服务器在接收到浏览器发送的文件请求后,可以先从文件服务器中获取用户所请求的文件,再对文件进行压缩,生成一个压缩文件之后,再向用户发送压缩后的压缩文件。从而可以在浏览器对同步下载文件的数量具有限制的情况下,用户端能够通过浏览器一次性下载各个文件。但应用服务器在向用户端发送文件之前,需要先对各个文件进行压缩得到压缩文件,压缩文件会占用应用服务器的存储资源,造成存储资源的浪费。


技术实现要素:

4.本发明实施例的目的在于提供一种文件下载方法、系统及装置,以减少应用服务器存储资源的浪费。具体技术方案如下:
5.在本发明实施例的第一方面,首先提供了一种文件下载方法,应用于应用服务器,所述方法包括:
6.在获取用户端发送的、请求下载目标文件的第一文件请求后,根据所述目标文件的第一数据量以及所述目标文件的文件名长度,预测待生成的压缩文件的第二数据量,以及各目标文件在所述压缩文件中的偏移量,其中,所述压缩文件为:对目标文件进行压缩等级为0的压缩后得到的,所述偏移量为:目标文件的首字节在所述压缩文件中的位置;
7.向所述用户端发送所述第二数据量,以使得所述用户端确定将获得到的压缩文件的第二数据量;
8.以文件流的形式从存储文件的文件服务器中获取目标文件的数据;
9.基于所述第一数据量、文件名长度以及所述偏移量,生成所述压缩文件的文件片段,所述文件片段包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
10.向所述用户端发送所述文件片段与目标文件的数据,以使得所述用户端基于所接收的文件片段与数据生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
11.第二方面,本发明实施例提供了一种文件下载方法,应用于用户端,所述方法包括:
12.向应用服务器发送请求下载目标文件的第一文件请求;
13.获得所述应用服务器发送的、预测得到的待获得的压缩文件的第二数据量,其中,所述压缩文件为:对所述目标文件进行压缩等级为0的压缩后得到的;
14.接收所述应用服务器发送的目标文件的数据以及文件片段,其中,所述文件片段中包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
15.基于接收到的数据与文件片段,生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
16.第三方面,本发明实施例提供了一种文件下载系统,所述系统包含用户端与应用服务器;
17.所述用户端,用于向应用服务器发送请求下载目标文件的第一文件请求;
18.所述应用服务器,用于根据所述目标文件的第一数据量以及所述目标文件的文件名长度,预测待生成的压缩文件的第二数据量,以及各目标文件在所述压缩文件中的偏移量;向所述用户端发送所述第二数据量;以文件流的形式从存储文件的文件服务器中获取目标文件的数据;基于所述第一数据量、文件名长度以及所述偏移量,生成所述压缩文件的文件片段;向所述用户端发送所述文件片段与目标文件的数据,其中,所述压缩文件为:对目标文件进行压缩等级为0的压缩后得到的,所述偏移量为:目标文件的首字节在所述压缩文件中的位置,所述文件片段包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
19.所述用户端,用于基于接收到的数据与文件片段,生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
20.第四方面,本发明实施例提供了一种文件下载装置,应用于应用服务器,所述装置包括:
21.数据量预测模块,用于在获取用户端发送的、请求下载目标文件的第一文件请求后,根据所述目标文件的第一数据量以及所述目标文件的文件名长度,预测待生成的压缩文件的第二数据量,以及各目标文件在所述压缩文件中的偏移量,其中,所述压缩文件为:对目标文件进行压缩等级为0的压缩后得到的,所述偏移量为:目标文件的首字节在所述压缩文件中的位置;
22.数据量发送模块,用于向所述用户端发送所述第二数据量,以使得所述用户端确定将获得到的压缩文件的第二数据量;
23.第一数据获取模块,用于以文件流的形式从存储文件的文件服务器中获取目标文件的数据;
24.第一片段生成模块,用于基于所述第一数据量、文件名长度以及所述偏移量,生成所述压缩文件的文件片段,所述文件片段包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
25.第一数据发送模块,用于向所述用户端发送所述文件片段与目标文件的数据,以使得所述用户端基于所接收的文件片段与数据生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
26.第五方面,本发明实施例提供了一种文件下载装置,应用于用户端,所述装置包括:
27.第一请求发送模块,用于向应用服务器发送请求下载目标文件的第一文件请求;
28.数据量获得模块,用于获得所述应用服务器发送的、预测得到的待获得的压缩文件的第二数据量,其中,所述压缩文件为:对所述目标文件进行压缩等级为0的压缩后得到
的;
29.第一数据接收模块,用于接收所述应用服务器发送的目标文件的数据以及文件片段,其中,所述文件片段中包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
30.第一文件生成模块,用于基于接收到的数据与文件片段,生成包含所述目标文件的压缩文件。
31.第六方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
32.存储器,用于存放计算机程序;
33.处理器,用于执行存储器上所存放的程序时,实现第一方面或第二方面任一所述的方法步骤。
34.第七方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面任一所述的方法步骤。
35.第八方面,在本发明实施例的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面任一所述的方法步骤。
36.本发明实施例提供的一种文件下载方法,应用于应用服务器,在获取用户端发送的、请求下载目标文件的第一文件请求后,根据所述目标文件的第一数据量以及目标文件的文件名长度,预测待生成的对目标文件进行压缩等级为0的压缩后得到的压缩文件的第二数据量,以及各目标文件的首字节在所述压缩文件中的位置。并且向用户端发送第二数据量,以使得用户端确定将下载到的压缩文件的第二数据量。再以文件流的形式从存储文件的文件服务器中获取目标文件的数据,基于第一数据量、文件名长度以及偏移量,生成压缩文件的文件片段,并向用户端发送文件片段与目标文件的数据,以使得用户端基于所接收的文件片段与数据生成包含目标文件的压缩文件,完成目标文件的下载过程。
37.由以上可见,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
39.图1为本发明实施例中提供的第一种文件下载方法的流程示意图;
40.图2为本发明实施例中提供的一种压缩文件的数据结构示意图;
41.图3为本发明实施例中提供的第二种文件下载方法的流程示意图;
42.图4为本发明实施例中提供的第三种文件下载方法的流程示意图;
43.图5为本发明实施例中提供的第四种文件下载方法的流程示意图;
44.图6为本发明实施例提供的一种文件下载系统的结构示意图;
45.图7为本发明实施例提供的第五种文件下载方法的流程示意图;
46.图8为本发明实施例提供的第六种文件下载方法的流程示意图;
47.图9为本发明实施例提供的第一种文件下载装置的结构示意图;
48.图10为本发明实施例提供的第二种文件下载装置的结构示意图;
49.图11为本发明实施例提供的一种电子设备的结构示意图;
50.图12为本发明实施例提供的另一种电子设备的结构示意图。
具体实施方式
51.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
52.现有技术中,在应用服务器向用户端传输文件的过程中会浪费应用服务器大量的存储资源,为解决这一问题,本发明实施例提供了一种文件下载方法、系统及装置。
53.本发明实施例提供了一种文件下载方法,应用于应用服务器,上述方法包括:
54.在获取用户端发送的、请求下载目标文件的第一文件请求后,根据上述目标文件的第一数据量以及上述目标文件的文件名长度,预测待生成的压缩文件的第二数据量,以及各目标文件在上述压缩文件中的偏移量,其中,上述压缩文件为:对目标文件进行压缩等级为0的压缩后得到的,上述偏移量为:目标文件的首字节在上述压缩文件中的位置;
55.向上述用户端发送上述第二数据量,以使得上述用户端确定将获得到的压缩文件的第二数据量;
56.以文件流的形式从存储文件的文件服务器中获取目标文件的数据;
57.基于上述第一数据量、文件名长度以及上述偏移量,生成上述压缩文件的文件片段,上述文件片段包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
58.向上述用户端发送上述文件片段与目标文件的数据,以使得上述用户端基于所接收的文件片段与数据生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
59.由以上可见,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的
数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
60.参见图1,为本发明实施例提供的第一种文件下载方法的流程示意图,应用于应用服务器,上述方法包括以下步骤s101-s105。
61.s101:在获取用户端发送的、请求下载目标文件的第一文件请求后,根据上述目标文件的第一数据量以及上述目标文件的文件名长度,预测待生成的压缩文件的第二数据量,以及各目标文件在上述压缩文件中的偏移量。
62.其中,上述压缩文件为:对目标文件进行压缩等级为0的压缩后得到的,上述偏移量为:目标文件的首字节在上述压缩文件中的位置。
63.具体的,用户端可以通过安装于自身的浏览器应用程序向应用服务器发送上述第一文件请求。上述第一文件请求中可以包含目标文件的编号,应用服务器在获取用户端发送的第一文件请求后,可以依据目标文件的编号从文件服务器中获取目标文件的文件信息,其中,上述文件信息内包含目标文件的第一数据量以及目标文件的文件名长度。
64.其中,压缩文件中包含目标文件的数据与文件片段,压缩文件是对目标文件进行压缩等级为0的压缩后得到的,相当于压缩文件中包含的目标文件的数据为未经过压缩的目标文件的数据本身。上述压缩文件可以为现有技术中任一格式的文件,例如,上述压缩文件可以为zip格式的文件。
65.另外,上述文件片段包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头。上述文件头与目标文件一一对应,每一文件头中包含所对应的目标文件的压缩等级、目标文件生成时间、压缩目标文件时使用的压缩算法、目标文件名长度、压缩前目标文件的数据量、压缩后目标文件的数据量、目标文件的文件名等。除目标文件的文件名之外,文件头中包含的其他信息均为固定长度的信息,文件头中包含的文件名信息与目标文件实际的文件名相关为可变长度的信息,具体取值为上述文件名长度。针对每一目标文件,基于文件头中各个信息的数据量便可以确定该目标文件的文件头的数据量,将上述数据量与第一数据量相加便可以得到该目标文件的数据与该目标文件对应的文件头在压缩文件中所占用的数据量的总和,可以成为该目标文件在压缩文件中的数据量。
66.此外,压缩文件的文件尾中记录有各个目标文件的文件名长度、各个目标文件的文件名以及各个目标文件在压缩文件中的偏移量等信息,除目标文件的文件名之外的信息均为固定长度的信息,因此基于上述文件名长度与各项信息的固定长度便可以计算得到文件尾的数据量。
67.将文件尾的数据量与各个目标文件在压缩文件中的数据量相加,便可以预测得到
压缩文件的第二数据量。
68.本发明的另一个实施例中,每一目标文件的文件头与目标文件的数据在压缩文件中相邻,文件头在目标文件前端,每一目标文件对应的文件头与该目标文件的数据可以被共称为一个数据组合,各个目标文件的数据组合在压缩文件中彼此相邻依次排列,文件尾位于所有目标文件的文件组合之后。基于此,可以确定各个目标文件在压缩文件中的偏移量。上述偏移量可以以字节为单位。
69.参见图2,为本发明实施例提供的一种压缩文件的数据结构示意图。
70.由图可见,该压缩文件中包含n个目标文件的数据,每一目标文件的数据之前包含一个该目标文件对应的文件头,在压缩文件尾部包含一个文件尾。文件头中包含目标文件的文件名长度、目标文件的文件名、目标文件的压缩等级、目标文件生成时间、压缩目标文件时使用的压缩算法、压缩前目标文件的数据量、压缩后目标文件的数据量等信息。
71.其中,由于本发明实施例中压缩文件的压缩等级为0,因此压缩前目标文件的数据量与压缩有目标文件的数据量相等,均为目标文件的第一数据量。
72.目标文件的数据被分为不同的数据组,每一数据组对应一个压缩头,数据组与压缩头共同存储于压缩文件中。如图所示,第1个目标文件的数据被划分为m个不同的数据组。
73.文件尾包含各个目标文件的文件名长度、文件名、偏移量等信息。
74.图2中仅对第1个目标文件的文件头以及第1个目标文件的数据在压缩文件中的数据结构进行了详细展示,其他目标文件的数据结构可以参见第1个目标文件的数据结构,图中并未详示。
75.具体的,按照排列顺序,第一个目标文件的偏移量为第一个目标文件对应的文件头的字节数,第二个目标文件偏移量为第一个目标文件的数据组合的字节数与第二个目标文件对应的文件头的字节数之和,依次类推。
76.此外,在压缩文件中,每一目标文件的数据可以被分为多个数据组分别存储,每一数据组中包含的数据的数据量相同,每一数据组之前还包含一个与该数据组对应的压缩头,压缩头为固定长度的信息,因此在计算每一目标文件在压缩文件中的数据量时,还需要加入压缩头的数据量,例如,在zip格式的压缩文件中,每一数据组中包含的数据的数据量为65531字节,压缩头的数据量为5字节。
77.s102:向上述用户端发送上述第二数据量,以使得上述用户端确定将获得到的压缩文件的第二数据量。
78.具体的,用户端在获得上述第二数据量之后可以判断自身的存储空间能够完全存储上述压缩文件,若用户端能够存储上述压缩文件,则可以预留大小为第二数据量的存储空间存储上述压缩文件。
79.除此之外,应用服务器还可以向用户端发送二进制文件类型。
80.s103:以文件流的形式从存储文件的文件服务器中获取目标文件的数据。
81.具体的,应用服务器可以向文件服务器发送获取目标文件的请求,文件服务器可以以文件流的形式向应用服务器反馈目标文件的数据。以文件流的形式向应用服务器发送数据,应用服务器以文件流的形式对目标文件的数据进行处理,并不需要一次性存储大量的数据,可以减少对应用服务器的内存与硬盘资源的消耗。
82.其中,文件流是一种以先进先出的方式传输文件中包含的数据的文件通道,文件
服务器可以以输入流的形式,按照各个字节在目标文件中的前后顺序依次读取目标文件中包含的字节,并按照先进先出的顺序,也就是先读取先发送的顺序,将所读取的字节发送至应用服务器,应用服务器在获取到文件服务器发送的字节之后,可以将获取的字节转发至用户端。
83.本发明的一个实施例中,针对每一目标文件,上述文件服务器可以按照数据从前到后的顺序,从目标文件中位于首部的数据开始向应用服务器发送数据。
84.本发明的另一个实施例中,针对每一目标文件,上述文件服务器也可以对目标文件进行分片,也就是将目标文件划分为不同的数据片,对于每一数据片可以按照数据从前到后的顺序,从该数据片中位于首位的数据开始向应用服务器发送数据,该目标文件的不同数据片的数据可以同步传输。
85.另外,各个目标文件的数据可以同步传输。
86.s104:基于上述第一数据量、文件名长度以及上述偏移量,生成上述压缩文件的文件片段。
87.具体的,上述文件片段中包含文件头与文件尾,文件头与文件尾中包含的信息可以参见上文步骤s101处所示的内容,在此不再赘述。
88.s105:向上述用户端发送上述文件片段与目标文件的数据,以使得上述用户端基于所接收的文件片段与数据生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
89.具体的,应用服务器也可以以文件流的形式向用户端发送上述文件片段与目标文件的数据。在接收到文件片段与目标文件的数据之后,用户端可以基于文件片段内文件头与文件尾中包含的信息,确定待生成的压缩包中各个目标文件的数据所在的位置,并按照上述位置将所接收到的目标文件的数据写入压缩报文中,从而生成压缩文件。用户端可以对上述压缩文件进行解压从而得到上述目标文件,也就是用户端获得了上述压缩文件便相当于完成了目标文件的下载过程。
90.另外,由于应用服务器不对目标文件的数据进行处理,相当于直接将目标文件的数据转发给用户端。因此若针对每一目标文件,上述文件服务器对目标文件进行分片再发送数据,则相当于应用服务器同样以分片的形式向用户端发送数据。
91.再者,在上述压缩文件为zip格式、rar格式等格式的文件的情况下,压缩文件中除了目标文件的数据与文件片段之外,针对每一目标文件,上述压缩文件中还包含该目标文件的校验码,以使得设备在对zip格式的压缩文件进行解压处理之前可以基于上述校验码对压缩文件中包含的目标文件的数据进行校验,在确定目标文件的数据不存在缺失或错误的情况下,再对压缩文件进行解压。因此,为了使得用户端能够生成上述压缩文件,还需要向用户端发送上述校验码。则在上述步骤s105之前,还需要执行步骤a。
92.具体的,上述zip格式与rar格式的压缩文件中包含的校验码均为crc32(cyclic redundancy check32,循环冗余校验32)校验码。
93.步骤a:从上述文件服务器中获取上述目标文件的校验码。
94.具体的,文件服务器可以采用现有技术中用于计算得到crc32校验码的方式对目标文件进行计算,得到目标文件的校验码。
95.文件服务器可以在接收到应用服务器发送的针对目标文件的文件请求之后,再生
成并向应用服务器反馈目标文件的校验码。也可以预先计算自身存储的各个文件的校验码,将计算得到的校验码存储于自身的存储空间内,在接收到应用服务器发送的针对目标文件的文件请求之后,可以直接向应用程序反馈上述目标文件的校验码。
96.在接收到校验码之后,可以通过以下步骤b实现上述步骤s105。
97.步骤b:向上述用户端发送上述目标文件的数据、文件片段以及上述校验码,以使得上述用户端基于所接收的数据、文件片段以及校验码生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
98.由以上可见,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
99.参见图3,为本发明实施例提供的第二种文件下载方法的流程示意图,与前述图1所示的实施例相比,在应用服务器向上述用户端发送上述文件片段与目标文件的数据的过程中断后,上述方法还包括以下步骤s106-s110。
100.具体的,上述过程中断可能是由于用户端暂停下载数据、用户端与应用服务器之间的网络连接断开等原因导致的。
101.s106:接收上述用户端发送的表示继续下载上述目标文件的第二文件请求。
102.其中,上述第二文件请求中携带有上述用户端已接收到的数据的第三数据量。
103.具体的,针对每一目标文件,上述第二文件请求中可以携带有用户端已接收到的、该目标文件的数据的子数据量。若应用服务器以分片的形式向用户端发送目标文件的数据,则针对每一目标文件,上述第二文件请求中可以携带有用户端已经接收到的每一分片的数据。
104.s107:基于上述第三数据量、第一数据量以及文件名长度,确定上述用户端已接收到的数据在上述压缩文件中的位置。
105.其中,针对每一目标文件,上述位置可以以已接收到的该目标文件的数据中位于最尾端的字节在压缩文件中的偏移量的形式表示。
106.本发明的一个实施例中,基于上述文件名长度,可以计算得到每一目标文件对应的文件头的长度,并基于各个目标文件的第一数据量,确定各个目标文件的数据在压缩文件中的偏移量。
107.在应用服务器未对目标文件的数据进行分片的情况下,针对每一目标文件,计算
该目标文件的偏移量与用户端已接收到的该目标文件的数据量之和,得到用户端已接收到的数据在上述压缩文件中的位置。
108.在应用服务器对目标文件的数据进行分片的情况下,针对每一目标文件,可以基于该目标文件的偏移量与各个数据分片的数据量,计算每一数据分片的起始字节在压缩文件中的位置,再基于用户段已接收到的、属于该数据分片的目标文件的数据量,得到用户端已接收到的数据在上述压缩文件中的位置。
109.s108:基于所确定的位置,以文件流的形式从上述文件服务器获取上述目标文件中包含的、上述用户端未获得的数据。
110.具体的,在目标文件中,位于压缩文件中所确定的位置处的字节之前的其他字节为用户端已获取到的数据,位于压缩文件中所确定的位置处的字节之后的其他字节为用户端未获取到的数据。则在确定用户端已获取到的数据之后,应用服务器可以向文件服务器发送携带有用户端已获取到的数据中位于尾端的字节在目标文件中的位置的获取请求,文件服务器在接收到获取请求后可以向应用服务器反馈位于该位置之后的字节。
111.s109:基于上述第一数据量、文件名长度以及上述偏移量,生成上述用户端未获得的、上述压缩文件的文件片段。
112.具体的,生成文件片段的方式与前述步骤s104所示的实施例相似,对此不再赘述。
113.s110:向上述用户端发送上述文件片段与目标文件的数据,以使得上述用户端基于中断前与中断后接收到的文件片段与数据生成压缩文件,完成上述目标文件的下载过程。
114.具体的,用户端生成压缩文件的方式与前述步骤s105所示的实施例相似,对此不再赘述。
115.由以上可见,现有技术中对目标文件进行压缩等级不为0的压缩,应用服务器难以预测压缩文件中包含的各类信息,因此在应用服务器向用户端发送数据的过程中断之后,应用服务器难以基于上述信息确定用户端已经接收到的目标文件的数据,因此也就难以继续向用户端发送其还未获得的数据。而本发明实施例中生成的压缩文件是对目标文件进行压缩等级为0的压缩之后生成的,因此压缩生成压缩文件之后,压缩文件内包含的目标文件的数据量等于目标文件原本的数据量,因此在对目标文件进行压缩之前,应用服务器可以直接预测得到各个目标文件在压缩文件中的偏移量、各个目标文件在压缩文件中的数据量等信息。因此,在应用服务器向用户端发送数据的过程中断之后,基于已经预测得到各类信息以及用户端反馈的第三数据量,应用服务器可以确定用户端已经接收到的目标文件的数据,从而可以继续向用户端发送其还未获得的数据,使得本发明实施例支持文件下载过程中断后继续下载。
116.另外,由于本实施例支持在文件传输中断后继续传输,因此在应用服务器执行步骤s102将第二数据量发送给用户端时,还可以向用户端反馈自身支持断点续传的信息。
117.本发明的一个实施例中,以压缩文件是zip格式的文件为例,简述文件下载的过程。
118.应用服务器在接收到用户端发送的第一文件请求后,可以先基于第一文件请求所请求的目标文件的第一数据量、目标文件的文件名长度,预测待生成的压缩文件的第二数据量。其中,zip格式的压缩文件中除了存储文件头与目标文件的数据之外,针对每一目标
文件还存储有一个在解压时用于校验目标文件是否完整的校验码。针对每一目标文件,该目标文件的校验码存储于该目标文件的数据之后、下一个目标文件的文件头之前。zip格式的压缩文件中每一校验码的长度为4字节,在预测压缩文件的第二数据量时,需要考虑校验码的长度。
119.示例性的,本实施例中预测得到的压缩文件的第二数据量可以为4gb,其中包含两个目标文件,目标文件1占用的总数据量为1gb,目标文件2占用的总数据量为3gb。
120.应用服务器先以文件流的形式从文件服务器中获取目标文件1的数据再获取目标文件2的数据,并将所获取的数据、所生成的文件片段以及目标文件的校验码。
121.若在应用服务器向上述用户端发送上述文件片段、目标文件的数据以及校验码的过程中发生了中断,在中断前应用服务器已经向用户端发送了2gb的数据,说明目标文件1的相关数据已经传输完成,包括目标文件1本身的数据、文件头以及校验码,目标文件2的相关数据传输了1gb。
122.在传输过程发生中断之后,终端可以再次向应用服务器发送第二文件请求,以继续获取目标文件,上述第二文件请求中携带有用户端已经接收到的数据的第三数据量,即2gb。
123.在接收到第二文件请求之后,应用服务器可以确定目标文件1的相关数据已经传输完毕,目标文件2的相关数据已经传输了1gb,应用服务器可以确定目标文件2的文件头的数据量,例如,目标文件2的文件头的数据量可以为2mb,则说明已经传输的、目标文件2的本身的数据从目标文件2的首部开始共计1022mb,应用服务器需要从目标文件2中已经传输的1022mb的数据之后的一个字节开始,继续获取目标文件2中剩余的数据,并向用户端转发,从而完成目标文件1与目标文件2断点续传的过程。
124.与前述应用于应用服务器的文件下载方法相对应,本发明实施例还提供了一种应用于用户端的文件下载方法。
125.参见图4,为本发明实施例提供的第三种文件下载方法的流程示意图,应用于用户端,上述方法包括以下步骤s401-s404。
126.s401:向应用服务器发送请求下载目标文件的第一文件请求。
127.s402:获得上述应用服务器发送的、预测得到的待获得的压缩文件的第二数据量。
128.其中,上述压缩文件为:对上述目标文件进行压缩等级为0的压缩后得到的。
129.s403:接收上述应用服务器发送的目标文件的数据以及文件片段。
130.其中,上述文件片段中包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头。
131.s404:基于接收到的数据与文件片段,生成包含上述目标文件的压缩文件,完成上述目标文件的下载。
132.由以上可见,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应
用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
133.参见图5,为本发明实施例提供的第四种文件下载方法的流程示意图,与前述图4所示的实施例相比,在接收上述应用服务器发送的目标文件的数据以及文件片段的过程中断后,上述方法还包括以下步骤s405-s407。
134.s405:向上述应用服务器发送表示继续下载上述目标文件的第二文件请求。
135.其中,上述第二文件请求中携带有上述用户端已接收到的数据的第三数据量。
136.s406:接收上述应用服务器发送的、还未获得的目标文件的数据以及文件片段。
137.s407:基于中断前与中断后接收到的数据与文件片段生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
138.由以上可见,现有技术中对目标文件进行压缩等级不为0的压缩,应用服务器难以预测压缩文件中包含的各类信息,因此在应用服务器向用户端发送数据的过程中断之后,应用服务器难以基于上述信息确定用户端已经接收到的目标文件的数据,因此也就难以继续向用户端发送其还未获得的数据。而本发明实施例中生成的压缩文件是对目标文件进行压缩等级为0的压缩之后生成的,因此压缩生成压缩文件之后,压缩文件内包含的目标文件的数据量等于目标文件原本的数据量,因此在对目标文件进行压缩之前,应用服务器可以直接预测得到各个目标文件在压缩文件中的偏移量、各个目标文件在压缩文件中的数据量等信息。因此,在应用服务器向用户端发送数据的过程中断之后,基于已经预测得到各类信息以及用户端反馈的第三数据量,应用服务器可以确定用户端已经接收到的目标文件的数据,从而可以继续向用户端发送其还未获得的数据,使得本发明实施例支持文件下载过程中断后继续下载。
139.本发明的一个实施例中,上述步骤s404可以通过以下步骤c实现。
140.步骤c:接收上述应用服务器发送的目标文件的数据、文件片段以及目标文件的校验码。
141.上述步骤s404可以通过以下步骤d实现。
142.步骤d:基于接收到的数据、文件片段以及校验码生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
143.具体的,本发明实施例提供的应用于用户端的文件下载方法中用户端和应用服务器所执行的步骤可以参见前述应用于应用服务器的文件下载方法所示的实施例,在此不再赘述。
144.与前述文件下载方法相对应,本发明实施例还提供了一种文件下载系统。
145.参见图6,为本发明实施例提供的一种文件下载系统的结构示意图,上述系统包含用户端601与应用服务器602。
146.参见图7,为本发明实施例提供的第五种文件下载方法的流程示意图,上述方法包
括以下步骤s701-s707。
147.s701:上述用户端601向应用服务器602发送请求下载目标文件的第一文件请求。
148.s702:上述应用服务器602根据上述目标文件的第一数据量以及上述目标文件的文件名长度,预测待生成的压缩文件的第二数据量,以及各目标文件在上述压缩文件中的偏移量。
149.其中,上述压缩文件为:对目标文件进行压缩等级为0的压缩后得到的,上述偏移量为:目标文件的首字节在上述压缩文件中的位置。
150.s703:上述应用服务器602向上述用户端601发送上述第二数据量。
151.s704:上述应用服务器602以文件流的形式从存储文件的文件服务器中获取目标文件的数据。
152.s705:上述应用服务器602基于上述第一数据量、文件名长度以及上述偏移量,生成上述压缩文件的文件片段。
153.其中,上述文件片段包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头。
154.s706:上述应用服务器602向上述用户端601发送上述文件片段与目标文件的数据。
155.s707:上述用户端601基于接收到的数据与文件片段,生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
156.由以上可见,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
157.参见图8,为本发明实施例提供的第六种文件下载方法的流程示意图,在上述应用服务器602与用户端601之间目标文件的数据以及文件片段的传输过程中断后,与前述图7所示的实施例相比,还包括以下步骤s708-s713。
158.s708:上述用户端601向上述应用服务器602发送表示继续下载上述目标文件的第二文件请求。
159.其中,上述第二文件请求中携带有上述用户端已接收到的数据的第三数据量。
160.s709:上述应用服务器602基于上述第三数据量、第一数据量以及文件名长度,确定上述用户端已接收到的数据在上述压缩文件中的位置。
161.s710:上述应用服务器602基于所确定的位置,以文件流的形式从上述文件服务器获取上述目标文件中包含的、上述用户端601未获得的数据。
162.s711:上述应用服务器602基于上述第一数据量、文件名长度以及上述偏移量,生成上述用户端601未获得的、上述压缩文件的文件片段。
163.s712:上述应用服务器602向上述用户端601发送上述文件片段与目标文件的数据。
164.s713:上述用户端601基于中断前与中断后接收到的数据与文件片段生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
165.由以上可见,现有技术中对目标文件进行压缩等级不为0的压缩,应用服务器难以预测压缩文件中包含的各类信息,因此在应用服务器向用户端发送数据的过程中断之后,应用服务器难以基于上述信息确定用户端已经接收到的目标文件的数据,因此也就难以继续向用户端发送其还未获得的数据。而本发明实施例中生成的压缩文件是对目标文件进行压缩等级为0的压缩之后生成的,因此压缩生成压缩文件之后,压缩文件内包含的目标文件的数据量等于目标文件原本的数据量,因此在对目标文件进行压缩之前,应用服务器可以直接预测得到各个目标文件在压缩文件中的偏移量、各个目标文件在压缩文件中的数据量等信息。因此,在应用服务器向用户端发送数据的过程中断之后,基于已经预测得到各类信息以及用户端反馈的第三数据量,应用服务器可以确定用户端已经接收到的目标文件的数据,从而可以继续向用户端发送其还未获得的数据,使得本发明实施例支持文件下载过程中断后继续下载。
166.本发明的一个实施例中,上述应用服务器602,还用于:
167.从上述文件服务器中获取上述目标文件的校验码;
168.上述应用服务器602,具体用于向上述用户端601发送上述目标文件的数据、文件片段以及上述校验码;
169.上述用户端601,具体用于基于接收到的数据、文件片段以及校验码生成包含上述目标文件的压缩文件,完成上述目标文件的下载过程。
170.与前述应用于应用服务器的文件下载方法相对应,本发明实施例还提供了一种应用于应用服务器的文件下载装置。
171.参见图9,为本发明实施例提供的第一种文件下载装置的结构示意图,应用于应用服务器,所述装置包括:
172.数据量预测模块901,用于在获取用户端发送的、请求下载目标文件的第一文件请求后,根据所述目标文件的第一数据量以及所述目标文件的文件名长度,预测待生成的压缩文件的第二数据量,以及各目标文件在所述压缩文件中的偏移量,其中,所述压缩文件为:对目标文件进行压缩等级为0的压缩后得到的,所述偏移量为:目标文件的首字节在所述压缩文件中的位置;
173.数据量发送模块902,用于向所述用户端发送所述第二数据量,以使得所述用户端确定将获得到的压缩文件的第二数据量;
174.第一数据获取模块903,用于以文件流的形式从存储文件的文件服务器中获取目标文件的数据;
175.第一片段生成模块904,用于基于所述第一数据量、文件名长度以及所述偏移量,
生成所述压缩文件的文件片段,所述文件片段包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
176.第一数据发送模块905,用于向所述用户端发送所述文件片段与目标文件的数据,以使得所述用户端基于所接收的文件片段与数据生成包含所述目标文件的压缩文件,完成上述目标文件的下载过程。
177.由以上可见,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
178.本发明的一个实施例中,在向所述用户端发送所述文件片段与目标文件的数据的过程中断后,上述装置还包括:
179.请求接收模块,用于接收所述用户端下载的表示继续获取所述目标文件的第二文件请求,其中,所述第二文件请求中携带有所述用户端已接收到的数据的第三数据量;
180.位置确定模块,用于基于所述第三数据量、第一数据量以及文件名长度,确定所述用户端已接收到的数据在所述压缩文件中的位置;
181.第二数据获取模块,用于基于所确定的位置,以文件流的形式从所述文件服务器获取所述目标文件中包含的、所述用户端未获得的数据;
182.第二片段生成模块,用于基于所述第一数据量、文件名长度以及所述偏移量,生成所述用户端未获得的、所述压缩文件的文件片段;
183.第二数据发送模块,用于向所述用户端发送所述文件片段与目标文件的数据,以使得所述用户端基于中断前与中断后接收到的文件片段与数据生成压缩文件,完成所述目标文件的下载过程。
184.由以上可见,现有技术中对目标文件进行压缩等级不为0的压缩,应用服务器难以预测压缩文件中包含的各类信息,因此在应用服务器向用户端发送数据的过程中断之后,应用服务器难以基于上述信息确定用户端已经接收到的目标文件的数据,因此也就难以继续向用户端发送其还未获得的数据。而本发明实施例中生成的压缩文件是对目标文件进行压缩等级为0的压缩之后生成的,因此压缩生成压缩文件之后,压缩文件内包含的目标文件的数据量等于目标文件原本的数据量,因此在对目标文件进行压缩之前,应用服务器可以直接预测得到各个目标文件在压缩文件中的偏移量、各个目标文件在压缩文件中的数据量等信息。因此,在应用服务器向用户端发送数据的过程中断之后,基于已经预测得到各类信
息以及用户端反馈的第三数据量,应用服务器可以确定用户端已经接收到的目标文件的数据,从而可以继续向用户端发送其还未获得的数据,使得本发明实施例支持文件下载过程中断后继续下载。
185.本发明的一个实施例中,所述装置还包括:
186.校验码获得模块,用于从所述文件服务器中获取所述目标文件的校验码;
187.所述第一数据发送模块905,具体用于:
188.向所述用户端发送所述目标文件的数据、文件片段以及所述校验码,以使得所述用户端基于所接收的数据、文件片段以及校验码生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
189.与前述应用于用户端的文件下载方法相对应,本发明实施例还提供了一种应用于用户端的文件下载装置。
190.参见图10,为本发明实施例提供的第二种文件下载装置的结构示意图,应用于用户端,上述装置包括:
191.第一请求发送模块1001,用于向应用服务器发送请求下载目标文件的第一文件请求;
192.数据量获得模块1002,用于获得所述应用服务器发送的、预测得到的待获得的压缩文件的第二数据量,其中,所述压缩文件为:对所述目标文件进行压缩等级为0的压缩后得到的;
193.第一数据接收模块1003,用于接收所述应用服务器发送的目标文件的数据以及文件片段,其中,所述文件片段中包含:用于描述目标文件在压缩文件中位置的文件尾、分别描述不同目标文件的文件头;
194.文件生成模块1004,用于基于接收到的数据与文件片段,生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
195.由以上可见,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
196.本发明的一个实施例中,在接收所述应用服务器发送的目标文件的数据以及文件片段的过程中断后,上述装置还包括:
197.第二请求发送模块,向所述应用服务器发送表示继续下载所述目标文件的第二文
件请求,其中,所述第二文件请求中携带有所述用户端已接收到的数据的第三数据量;
198.第二数据接收模块,用于接收所述应用服务器发送的、还未获得的目标文件的数据以及文件片段;
199.第二文件生成模块,用于基于中断前与中断后接收到的数据与文件片段生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
200.由以上可见,现有技术中对目标文件进行压缩等级不为0的压缩,应用服务器难以预测压缩文件中包含的各类信息,因此在应用服务器向用户端发送数据的过程中断之后,应用服务器难以基于上述信息确定用户端已经接收到的目标文件的数据,因此也就难以继续向用户端发送其还未获得的数据。而本发明实施例中生成的压缩文件是对目标文件进行压缩等级为0的压缩之后生成的,因此压缩生成压缩文件之后,压缩文件内包含的目标文件的数据量等于目标文件原本的数据量,因此在对目标文件进行压缩之前,应用服务器可以直接预测得到各个目标文件在压缩文件中的偏移量、各个目标文件在压缩文件中的数据量等信息。因此,在应用服务器向用户端发送数据的过程中断之后,基于已经预测得到各类信息以及用户端反馈的第三数据量,应用服务器可以确定用户端已经接收到的目标文件的数据,从而可以继续向用户端发送其还未获得的数据,使得本发明实施例支持文件下载过程中断后继续下载。
201.本发明的一个实施例中,所述第一数据接收模块,具体用于:
202.接收所述应用服务器发送的目标文件的数据、文件片段以及目标文件的校验码;
203.所述第一文件生成模块,具体用于:
204.基于接收到的数据、文件片段以及校验码生成包含所述目标文件的压缩文件,完成所述目标文件的下载过程。
205.本发明实施例还提供了一种电子设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
206.存储器1103,用于存放计算机程序;
207.处理器1101,用于执行存储器1103上所存放的程序时,实现应用于应用服务器的文件下载方法的方法步骤。
208.应用本发明实施例提供的电子设备下载文件时,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到
的压缩文件,相当于共同完成了多个目标文件的下载过程。
209.本发明实施例还提供了另一种电子设备,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
210.存储器1203,用于存放计算机程序;
211.处理器1201,用于执行存储器1203上所存放的程序时,实现应用于用户端的文件下载方法的方法步骤。
212.应用本发明实施例提供的电子设备下载文件时,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
213.上述终端提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
214.通信接口用于上述终端与其他设备之间的通信。
215.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
216.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
217.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的应用于应用服务器的文件下载方法。
218.应用本实施例提供的计算机可读存储介质中存储的计算机程序下载文件时,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、
对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
219.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的应用于用户端的文件下载方法。
220.应用本实施例提供的计算机可读存储介质中存储的计算机程序下载文件时,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
221.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的应用于应用服务器的文件下载方法。
222.执行本实施例提供的计算机程序产品文件下载时,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用
服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
223.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的应用于用户端的文件下载方法。
224.执行本实施例提供的计算机程序产品文件下载时,压缩文件中包含有对目标文件进行压缩后得到的数据以及文件片段,由于本发明实施例中压缩文件是对目标文件进行压缩等级为0的压缩后得到的,因此最终得到的压缩文件中包含的、对目标文件进行压缩后得到的数据与目标文件中原本包含的数据相同,应用服务器在从文件服务器中获取到目标文件之后并不需要对目标文件进行压缩编码,只需要生成压缩文件中包含的文件片段,并将文件片段与目标文件的数据发送给用户端,用户端便可以直接将目标文件的数据和文件片段组合生成压缩文件。在此期间,应用服务器相当于仅对目标文件的数据进行了转发,不需要存储目标文件的数据,因此在应用本发明实施例传输目标文件的过程中,可以减少应用服务器存储资源的浪费。并且由于应用服务器不需要对目标文件进行压缩编码,节省了应用服务器压缩目标文件的过程中消耗的数据计算资源,提高了文件传输的效率。再者,若目标文件的数量为多个,多个目标文件可以同步传输,在用户端中生成一个压缩文件,在用户端对同步下载文件的数量有限制的情况下,同样可以生成包含由多个目标文件共同压缩得到的压缩文件,相当于共同完成了多个目标文件的下载过程。
225.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
226.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
227.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、装置、电子设备、计算机可读存储介质和计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
228.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1