CN103108008B - 一种下载文件的方法及文件下载系统 - Google Patents

一种下载文件的方法及文件下载系统 Download PDF

Info

Publication number
CN103108008B
CN103108008B CN201110359713.3A CN201110359713A CN103108008B CN 103108008 B CN103108008 B CN 103108008B CN 201110359713 A CN201110359713 A CN 201110359713A CN 103108008 B CN103108008 B CN 103108008B
Authority
CN
China
Prior art keywords
file
offline
download
task
offline task
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.)
Active
Application number
CN201110359713.3A
Other languages
English (en)
Other versions
CN103108008A (zh
Inventor
刘刚
庄庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110359713.3A priority Critical patent/CN103108008B/zh
Publication of CN103108008A publication Critical patent/CN103108008A/zh
Application granted granted Critical
Publication of CN103108008B publication Critical patent/CN103108008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种下载文件的方法及文件下载系统。该方法包括:接收离线任务下载请求,为离线任务下载请求中的每一独立文件设置文件标识;下载离线任务,以文件标识存储离线任务中下载的文件;确定文件下载完毕,向下载客户端输出文件下载完毕通知消息,携带文件标识;根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。应用本发明,可以提高文件处理效率、降低用户流量开销。

Description

一种下载文件的方法及文件下载系统
技术领域
本发明涉及计算机通信技术,特别涉及一种下载文件的方法及文件下载系统。
背景技术
近年来,随着互联网业务提供商(ISP,nternet Service Provider)对点对点(P2P,Peer to Peer)下载的封锁,影视资源越来越集中于ISP,成为稀缺资源,而随着大量用户通过付费方式从ISP获取互联网资源,使得ISP提供的互联网资源下载速度越来越慢,严重影响了用户的业务体验。
为了提升用户的业务体验,现有技术提出了离线下载的概念,即用户通过下载客户端发送下载请求至下载工具的服务器,例如,离线下载服务器,服务器代理用户先行下载,下载完成后通知用户取回本地。这样,由于服务器连接的用户数较少,用户从服务器获取下载资源的速度将大大高于用户从ISP获取下载资源的速度,从而降低了用户的等待下载时间。尤其是在需下载的资源为冷门资源、且下载速度很慢的情况下,如果用户采用离线下载技术,就可以通过下载工具的服务器代理用户下载,在代理下载过程中,用户可以关掉下载客户端以节约能耗,或进行其他工作,当接收到服务器的资源离线下载完成通知消息后,用户再从下载工具的服务器上高速下载到下载客户端。也就是说,相对于用户通过下载客户端从ISP获取下载资源的在线下载来说,通过下载工具的服务器代理进行的离线下载,能省却大量挂机等待的时间,并能够避免一直占用下载客户端的带宽资源,从而可以利用该部分带宽资源进行其它业务处理,提高下载客户端带宽资源的利用效率。
图1为现有基于下载客户端的离线下载文件的方法流程示意图。参见图1,该流程包括:
步骤101,下载客户端向离线任务管理服务器提交离线任务下载请求;
本步骤中,下载客户端是指具备点对服务器和点(P2SP,Peer to Server&Peer)下载能力的客户端。用户通过下载客户端提交离线任务下载请求,离线任务可以包括一个或多个文件,对于包含多个文件的情况,作为一个整体对待。请求中包括离线任务信息,例如,包括待下载文件的超文本传输协议(HTTP,Hyper Text Transfer Protocol)链接信息的统一资源定位器(URL,Uniform Resource Locator)地址信息、电驴(eMule)链接信息、比特流(BT,BitTorrent)下载种子信息、或哈希分布(Magnet)协议信息。
步骤102,离线任务管理服务器接收离线任务下载请求,确定离线任务数据库没有存储离线任务下载请求对应的文件记录,向离线任务分发服务器输出分发离线任务请求,将离线任务信息写入离线任务数据库;
本步骤中,离线任务管理服务器接受用户提交的离线任务下载请求,先查询离线任务数据库存储的文件记录,检测是否已经有下载或者下载完成的该离线任务下载请求对应的文件记录,如果存储有文件记录,直接通知下载客户端,下载客户端根据通知,直接从云存储服务器下载对应的文件;如果没有,将离线任务信息写入离线任务数据库,并将离线任务下载请求输出至离线任务分发服务器。
步骤103,离线任务分发服务器接收离线任务下载请求,依据离线下载服务器群的负载情况进行离线任务的调度;
本步骤中,执行任务下载的离线下载服务器可能为一个或多个,称之为离线下载服务器群,离线任务分发服务器监测离线下载服务器群的负载情况,依据接收的离线任务下载请求以及离线下载服务器群的负载情况,进行离线任务的调度。
步骤104,离线下载服务器群根据离线任务分发服务器的调度进行云端数据下载;
本步骤中,离线下载服务器集群依据调度的资源,从离线任务数据库中读取离线任务信息,开始启动下载,从因特网(Internet)下载文件。
下载过程中,离线下载服务器集群可以使用自己的P2SP下载技术。
步骤105,将下载的文件同步存储至云存储服务器,更新离线任务分发服务器以及离线任务数据库的文件记录状态信息;
本步骤中,离线下载服务器集群将下载的数据同步到云存储服务器,云存储服务器根据离线任务下载请求,为用户设置离线任务存储区,存储下载的离线任务;同时,离线下载服务器集群根据预先设置的时间周期,将离线任务下载进度信息和中间状态信息(例如,下载速度)输出至离线任务分发服务器,离线任务分发服务器进行存储后,再输出至离线任务管理服务器;以及,将离线任务下载进度信息写入离线任务数据库,离线任务数据库存储离线任务与下载进度信息映射的文件记录。
步骤106,确定离线任务下载完成,离线任务管理服务器通知下载客户端,下载客户端从云存储服务器获取下载的文件。
本步骤中,离线下载服务器集群实时将下载进度和中间状态信息上报给离线任务分发服务器,离线任务分发服务器进行存储后,再上报到离线任务管理服务器,离线任务管理服务器确定离线任务下载完成,通知下载客户端,例如,通过邮件、短信等方式异步通知用户离线任务下载完成的结果;当然,用户也可以登录到离线任务管理服务器,查询下载的进度消息,当下载进度已完成100%时,可以通过下载客户端从云存储服务器下载取回云端数据,从而完成离线下载流程。
进一步地,还可以包括:
步骤107,下载客户端向统计服务器上报统计相关信息。
本步骤中,下载客户端上报统计相关信息,以便于统计服务器进行后续统计分析。
由上述可见,现有离线下载文件的方法,具有如下有益特点:
(1)加速下载冷门资源:离线下载可以解决冷门资源下载慢、长时间挂机的问题,利用离线下载服务器群的强大带宽能力,由于离线下载服务器带宽远大于不对称数字用户线(ADSL,Asymmetric Digital Subscriber Line)网络,因而,能够提供大于ADSL网络的下载速度,相比于ADSL网络,能够更快地将文件下载到离线下载服务器。在下载完成后,用户可以将文件从云存储服务器上高速稳定地下载到下载客户端。
(2)稳定提升下载速度:使用离线下载,由于离线下载服务器群能够提供稳定的下载速度,速度更快更稳定,而如果通过下载客户端直接下载,受限于网络环境的影响,下载速度可能处于波动状态,不可预期。
但现有离线下载文件的方法,离线下载服务器群需要下载完100%后,下载客户端才能从云存储服务器获取完整下载完毕的文件,如果没有接收到离线任务管理服务器下发的通知、或用户查询离线任务管理服务器存储的进度消息未到100%,则不能从云存储服务器获取下载的文件,这样,用户需要等待离线下载服务器下载完文件后才能对下载的文件进行处理,文件处理效率较低,进一步地,当用户获取整个下载的文件后,可能发现该下载的数据文件并非自己所需的数据文件,增加了用户的流量开销;而且,需要占用云存储服务器较多的存储空间。例如,对于BT任务的处理,由于将BT种子作为任务来处理,如果选择的任务的中间文件没有下载完成,则该BT任务不能取回本地下载客户端,使得已经下载完成的文件需要继续缓存在云存储服务器,从而占用多余的磁盘中转空间;又例如,对于大文件,如电影文件,没有下载完成就不能取回本地下载客户端进行观看,电影文件处理效率较低,降低了用户业务体验,而在下载完成后取回本地,如果发现下载的文件不清晰或者文件内容不是自己想要的,从而浪费了用户的带宽资源,增加了用户的流量开销;再例如,对于BT下载协议,由于BT种子文件是一个文件索引的集合,通常一个BT种子中不仅仅只包含有一个文件,其中,并不是每一个文件都是用户需要下载的,通常情况下,用户只需要选择其中的部分文件下载,但现有离线下载文件的方法,如果用户选择的文件没有下载完成,部分完成下载的文件是不能取回本地的,必须等BT种子当中选择的文件下载完毕后才能取回本地。
发明内容
有鉴于此,本发明的主要目的在于提出一种下载文件的方法,提高文件处理效率、降低用户流量开销。
本发明的另一目的在于提出一种文件下载系统,提高文件处理效率、降低用户流量开销。
为达到上述目的,本发明提供了一种下载文件的方法,该方法包括:
接收离线任务下载请求,为离线任务下载请求中的每一独立文件设置文件标识;
下载离线任务,以文件标识存储离线任务中下载的文件;
确定文件下载完毕,向下载客户端输出文件下载完毕通知消息,携带文件标识;
根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。
所述以文件标识存储离线任务中下载的文件包括:
设置离线任务存储区,并在离线任务存储区中以文件标识设置文件存储区,分别存储离线下载的文件。
所述在接收离线任务下载请求之后,为离线任务下载请求中的每一文件设置文件标识之前,进一步包括:
查询是否存储有离线任务下载请求对应的文件记录,如果没有,执行为离线任务下载请求中的每一文件设置文件标识的步骤。
进一步包括:
根据文件下载的进度信息更新存储的离线任务下载请求对应的文件记录。
所述离线任务下载请求中携带离线任务信息,离线任务信息包括:HTTP链接信息、电驴链接信息、BT下载种子信息、或哈希分布协议信息。
进一步包括:
将下载的统计相关信息上报。
所述文件标识由离线任务的流哈希值以及离线任务中文件的序列号两部分组成。
一种文件下载系统,该系统包括:离线任务下载请求处理子系统、离线任务存储子系统、文件记录子系统以及下载客户端,其中,
离线任务下载请求处理子系统,接收离线任务下载请求,为离线任务下载请求中的每一独立文件设置文件标识,下载离线任务;
离线任务存储子系统,以文件标识存储离线任务中下载的文件;
文件记录子系统,以文件标识存储文件进度信息,确定文件下载完毕,通过离线任务下载请求处理子系统向下载客户端输出文件下载完毕通知消息,携带文件标识;
下载客户端,根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。
进一步包括:
统计服务器,接收下载客户端输出的统计相关信息,进行存储。
所述离线任务下载请求处理子系统包括:离线任务管理服务器、离线任务分发服务器、离线下载代理服务器以及离线下载服务器,其中,
离线任务管理服务器,接收下载客户端提交的离线任务下载请求,查询文件记录子系统,如果确定不存在离线任务下载请求对应的文件记录,为离线任务中的每一独立文件生成唯一的文件标识,输出至文件记录子系统,并将携带文件标识的离线任务下载请求输出至离线任务分发服务器;
离线任务分发服务器,接收来自离线下载服务器的负载信息,根据离线下载服务器的负载情况以及接收的离线任务下载请求,为离线任务调度离线下载服务器资源;
离线下载代理服务器,分别与离线下载服务器群、离线任务分发服务器以及文件记录子系统相连进行通信,接收离线任务下载请求,对多文件下载进度进行管理;接收离线下载服务器下发的文件进度信息,同步到离线任务分发服务器以及文件记录子系统;
离线下载服务器,根据离线下载代理服务器的管理,下载离线任务;将从因特网下载完成的文件输出至离线任务存储子系统进行存储;将文件下载进度信息输出至离线下载代理服务器。
所述离线任务管理服务器进一步将离线任务的原始链接信息写入文件记录子系统。
所述离线任务管理服务器进一步用于接收来自离线下载服务器的下载进度信息并进行存储。
所述离线下载代理服务器进一步用于监测离线下载服务器,如果发现离线下载服务器输出的文件进度信息在预先设置的时间内没有变化,或者,在预先设置的时间内没有接收到文件进度信息,删除离线下载服务器的该文件下载任务,同时通知离线任务分发代理向下载客户端输出下载失败通知。
所述离线下载服务器进一步用于向离线下载代理服务器进行注册,提供磁盘空间信息以及CPU负载信息。
所述文件记录子系统包括离线任务数据库以及单文件状态数据库,其中,
离线任务数据库,存储正在下载或已下载完成的文件记录以及离线任务信息,并将离线任务信息输出至离线下载服务器;
单文件状态数据库,以文件标识存储文件进度信息,确定文件下载完毕,通过离线任务下载请求处理子系统向下载客户端输出文件下载完毕通知消息,携带文件标识。
所述单文件状态数据库还用于接收来自下载客户端或离线下载服务器的查询请求,向下载客户端或离线下载服务器返回查询结果。
所述单文件状态数据库还用于下载完成的文件提供文件分片校验信息,以供下载客户端校验下载文件的有效性。
由上述的技术方案可见,本发明实施例提供的一种下载文件的方法及文件下载系统,接收离线任务下载请求,为离线任务下载请求中的每一独立文件设置文件标识;下载离线任务,以文件标识存储离线任务中下载的文件;确定文件下载完毕,向下载客户端输出文件下载完毕通知消息,携带文件标识;根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。这样,通过为离线任务下载请求中的每一独立文件设置文件标识,并在确定文件下载完毕后,通知下载客户端根据文件标识下载存储的离线下载文件并进行处理,无需等到整个离线任务中全部文件下载完毕才能取回,提高了文件处理效率;进一步地,用户可以及时终止离线任务中其他还在下载的文件,有效降低了用户流量开销。
附图说明
图1为现有基于下载客户端的离线下载文件的方法流程示意图。
图2为本发明实施例的文件下载方法流程示意图。
图3为本发明实施例的文件下载系统结构示意图。
图4为本发明实施例基于图3的文件下载方法具体流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
现有离线下载文件的方法,由于离线任务一般包括多个文件,尤其是对于BT下载,一个BT任务中包含有多个BT文件,离线下载服务器群在下载完文件后,通过离线任务分发服务器向离线任务管理服务器输出下载进度信息,离线任务管理服务器在确定离线任务下载进度达到100%后,通知下载客户端从云存储服务器取回下载的文件,使得用户不能在离线任务部分下载时执行处理,处理效率较低,例如,对于包含多个文件的离线任务,在下载其中一个文件后,实现边观看边下载;也不能及时获取下载的文件是否为自身所需的文件,增大了用户的流量开销。本发明实施例中,考虑将云端订阅下载当中的BT任务总体下载进度管理与每个BT文件下载进度控制相分离,使得BT任务中,只要有任何一个BT文件下载完成,就可以通知下载客户端取回该BT任务中的已完成下载的BT文件,不需要等到整个BT任务全部下载完毕才能取回该BT文件,从而实现BT任务中以文件为粒度的边下载边传输的功能,即对BT任务进行单BT文件的拆分和状态的单独管理,在单文件粒度上实现边下载边传输的下载文件的方法,即在离线下载服务器进行离线下载文件时,下载客户端能够实时从云存储服务器获取已完成部分下载的文件,并进行相应处理。这样,在离线任务没有全部下载完成时,也可以将已经下载完成的文件下载到本地下载客户端,离线下载服务器仍继续离线下载未完成的文件,等离线下载完成后继续下载到本地下载客户端。
本发明实施例提出的下载文件的方法,对于包含有多个资源的BT资源来说是相当有用的,由于BT资源下载速度相对较慢,通过应用本发明的方法,可以将已经离线下载完成的资源先下到本地下载客户端,其他的资源继续离线下载。对于电视剧集来说,也是相当有用的,可以将已经离线下载完成的剧集先下到本地下载客户端,从而实现边观看边下载。
图2为本发明实施例的文件下载方法流程示意图。参见图2,该流程包括:
步骤201,接收离线任务下载请求,为离线任务下载请求中的每一独立文件设置文件标识;
本步骤中,解析离线任务下载请求中的离线任务,将离线任务拆分为多个独立文件并设置相应的文件标识,例如,离线任务下载请求为下载电视连续剧“康熙王朝”,则将该离线任务拆分为多个文件,每个文件对应“康熙王朝”中的一集。
在接收离线任务下载请求之后,为离线任务下载请求中的每一文件设置文件标识之前,进一步包括:
查询是否存储有离线任务下载请求对应的文件记录,如果没有,执行为离线任务下载请求中的每一文件设置文件标识的步骤;如果有,按照现有技术流程处理,在此不再赘述。
离线任务下载请求中携带离线任务信息,离线任务信息包括:HTTP链接信息、电驴链接信息、BT下载种子信息、或哈希分布协议信息。
步骤202,下载离线任务,以文件标识存储离线任务中下载的文件;
本步骤中,设置离线任务存储区,并在离线任务存储区中以文件标识设置文件存储区,分别存储离线下载的文件。
步骤203,确定文件下载完毕,向下载客户端输出文件下载完毕通知消息,携带文件标识;
本步骤中,在离线任务中的每一文件下载完成后,向下载客户端输出文件下载完毕通知消息。
进一步包括:
根据文件下载的进度信息更新存储的离线任务下载请求对应的文件记录。
步骤204,根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。
本步骤中,下载客户端接收文件下载完毕通知消息,从存储的文件中进行下载。在下载客户端读取相应文件后,可以将存储的该文件删除。当然,实际应用中,也可以将存储的文件保留预先设定的时间,以便于后续用户如果需要下载该文件,则可以直接从存储区读取。
进一步包括:
步骤205,将下载的统计相关信息上报。
由上述可见,本发明实施例的下载文件的方法,通过为离线任务下载请求中的每一独立文件设置文件标识,并以文件标识存储离线下载的文件,在确定文件下载完毕后,通知下载客户端根据文件标识下载存储的离线下载文件。这样,将离线任务总体下载进度管理与每个文件下载进度控制相分离,无需等到整个离线任务中全部文件下载完毕才能取回,从而在一个文件下载完毕后,即可获取该文件进行处理,同时不影响其他文件的下载,提高了文件处理效率,提升了用户的业务体验;进一步地,如果用户发现下载的文件并非自己所需的文件,或者,下载的文件质量较差,无法进行处理,可以及时终止离线任务中其他还在下载的文件,有效降低了用户流量开销以及网络开销。
图3为本发明实施例的文件下载系统结构示意图。参见图3,该系统包括:离线任务下载请求处理子系统、离线任务存储子系统、文件记录子系统以及下载客户端,其中,
离线任务下载请求处理子系统,接收离线任务下载请求,为离线任务下载请求中的每一独立文件设置文件标识,下载离线任务;
离线任务存储子系统,以文件标识存储离线任务中下载的文件;
文件记录子系统,以文件标识存储文件进度信息,确定文件下载完毕,通过离线任务下载请求处理子系统向下载客户端输出文件下载完毕通知消息,携带文件标识;
下载客户端,根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。
本发明实施例中,下载客户端对于完成的离线任务,通过P2SP方式从云存储服务器下载取回。
下载客户端还用于按照预先设置的时间周期向离线任务下载请求处理子系统中的离线下载代理服务器汇报在线信息以及本地拥有的资源信息;通过源URL向离线任务数据库查询离线任务的多资源URL集合、Hash及文件校验信息,获取下载离线任务所需的URL集合源(离线任务信息)。
进一步地,下载客户端还用于在下载过程中,确定下载完数据分片后,进行校验,如果发现分片错误,向统计服务器上报。
该系统进一步包括:
统计服务器,接收下载客户端输出的统计相关信息,进行存储。
其中,离线任务下载请求处理子系统包括:离线任务管理服务器、离线任务分发服务器、离线下载代理服务器以及离线下载服务器,其中,
离线任务管理服务器,接收下载客户端提交的离线任务下载请求,查询文件记录子系统,如果确定不存在离线任务下载请求对应的文件记录,为离线任务中的每一独立文件生成唯一的文件标识,输出至文件记录子系统,并将携带文件标识的离线任务下载请求输出至离线任务分发服务器;
本发明实施例中,如果下载客户端需要取回离线下载完成的文件,离线任务管理服务器提供客户端取回文件的入口地址,即离线任务存储子系统的地址信息,作为下载客户端下载的源。
较佳地,离线任务管理服务器进一步将离线任务的原始链接信息写入文件记录子系统。
原始链接信息为离线任务的下载源信息,以BT下载为例,离线任务下载请求中包含BT种子文件,BT种子文件是一个文件索引的集合,通常一个BT种子中包含一个或多个BT文件。BT下载采用BT文件来确定下载源。BT文件后缀名为torrent,容量很小,通常为几十K,在该BT文件中,存放了对应的待下载文件的描述信息、追踪服务器(Tracker)信息,即记录下载用户信息的服务器信息、文件的校验信息等。离线下载服务器根据文件记录子系统存储的原始链接信息来获取下载源以进行相关的下载操作。
较佳地,离线任务管理服务器进一步用于接收来自离线下载服务器的下载进度、速度信息并进行存储。
本发明实施例中,如果下载客户端需要取回离线下载完成的文件,离线任务管理服务器提供客户端取回文件的入口地址,作为下载客户端下载的源。
离线任务分发服务器,接收来自离线下载服务器的负载信息,根据离线下载服务器的负载情况以及接收的离线任务下载请求,为离线任务调度离线下载服务器资源;
本发明实施例中,离线任务分发服务器用于动态地将离线任务调度到不同的离线下载服务器节点上执行具体的下载任务。
较佳地,离线任务分发服务器还用于对相同的离线任务下载请求进行过滤,同一个离线任务下载请求只需要通过离线下载代理服务器向离线下载服务器发送一次,可以有效提高离线下载服务器群的处理效率,不同的用户可以共享同一个任务的离线下载进度信息。
离线下载代理服务器,分别与离线下载服务器群、离线任务分发服务器以及文件记录子系统相连进行通信,接收离线任务下载请求,对多文件下载进度进行管理;接收离线下载服务器下发的文件进度信息,同步到离线任务分发服务器以及文件记录子系统。
进一步地,离线下载代理服务器还统一管理离线下载服务器无法下载的任务:监测离线下载服务器,如果发现离线下载服务器输出的文件进度信息在预先设置的时间内没有变化,或者,在预先设置的时间内没有接收到文件进度信息,删除离线下载服务器的该文件下载任务,同时通知离线任务分发代理向下载客户端输出下载失败通知,通知用户下载失败。
离线下载服务器,根据离线下载代理服务器的管理,下载离线任务;将从因特网下载完成的文件输出至离线任务存储子系统进行存储;将文件下载进度信息输出至离线下载代理服务器。
本发明实施例中,离线下载服务器接收离线下载代理服务器的调度,从文件记录子系统中获取离线任务对应的链接信息,进行离线任务下载;将云端(因特网)下载完成的文件输出至离线任务存储子系统(云存储服务器)进行存储,以供下载客户端取回;按照预先设置的时间周期,向离线下载代理服务器汇报离线下载的进度及状态信息;将离线下载生成的最终文件Hash结果数据写入文件记录子系统中的离线任务数据库。
本发明实施例中,离线下载服务器群进一步用于为离线下载完成以后下载客户端取回离线下载的文件提供服务支持,能够用保留的带宽吐出用户需要的文件。
较佳地,离线下载服务器群进一步用于向离线下载代理服务器进行注册,提供磁盘空间信息以及CPU负载信息,供离线任务分发服务器按照各离线下载服务器负载进行动态均衡的离线任务分发。
离线下载服务器群进一步用于将离线下载生成的最终文件Hash结果数据写入离线任务数据库。
本发明实施例中,离线下载服务器群进一步用于为离线下载完成以后下载客户端取回离线下载的文件提供服务支持,能够用保留的带宽吐出用户需要的文件。
本发明实施例中,离线任务存储子系统为云存储服务器。
云存储服务器,以文件标识存储离线下载服务器下载完成的文件;并作为下载客户端离线取回文件的数据源,将存储的下载完成的文件输出至下载客户端。
较佳地,云存储服务器在向下载客户端输出下载完成的文件后,将该下载完成的文件删除,或者,在存储预先设定的时间后删除。
文件记录子系统包括离线任务数据库以及单文件状态数据库,其中,
离线任务数据库,存储正在下载或已下载完成的文件记录以及离线任务信息,并将离线任务信息输出至离线下载服务器;
本发明实施例中,离线任务信息包括:HTTP链接信息、电驴链接信息、BT下载种子信息、或哈希分布协议信息。
单文件状态数据库,以文件标识存储文件进度信息,确定文件下载完毕,通过离线任务下载请求处理子系统向下载客户端输出文件下载完毕通知消息,携带文件标识。
本发明实施例中,单文件状态数据库分别与离线下载代理服务器以及离线任务管理服务器进行通信,接收同步的文件下载进度信息并以文件标识存储各文件下载进度信息。
如果离线任务管理服务器没有存储文件进度信息,还可以接收离线任务管理服务器输出的进度查询请求,将文件进度信息输出。
单文件状态数据库对离线下载完成的文件实行单独的任务状态管理,记录离线任务中各文件进度信息,如果一个离线任务包含有多个文件,则为每个文件单独记录其进度信息,在文件进度信息达到100%后,通知下载客户端。
进一步地,单文件状态数据库还用于接收来自下载客户端或离线下载服务器的查询请求,向下载客户端或离线下载服务器返回查询结果;以及,为下载完成的文件提供文件分片校验信息,供下载客户端校验下载文件的有效性。
本发明实施例中,查询请求包括流哈希值(Torrent Hash)查询请求以及URL资源请求,其中,通过URL作为索引的入口查询BT文件的Torrent Hash,将查询得到的TorrentHash输出;通过URL作为索引的入口查询下载的多URL资源集合,将查询得到的多URL资源集合输出。
下面对文件标识作进一步说明。
以BT种子为例,在BT种子中间对应的每个BT文件中,都设置一个唯一的文件标识,文件标识由两部分构成,共24字节:一部分是BT种子中该文件唯一的流哈希值(TorrentHash),另外一部分是BT种子中该文件的序列号,4个字节。这样,通过24字节的文件标识可以唯一标识BT种子中的一个文件。
如果文件标识的第一部分相同,可以确认这些文件属于同一个BT种子,这样,可以为这个BT种子的每个独立的文件设置下载状态(下载进度),只要下载完成其中一个文件,就可以通知下载客户端,使用户通过下载客户端启动从云存储服务器的下载流程。
离线任务管理服务器接收到用户发起的BT离线下载请求后,将BT离线下载请求中包含的离线任务信息保存在离线任务数据库中,并在单文件状态数据库中,根据离线下载请求中携带的BT种子信息,为BT种子中用户选择的每个BT文件分别初始化一条BT文件记录,离线下载服务器下载BT种子中的各BT文件,并将BT文件下载进度上报给离线下载代理服务器,BT离线下载代理服务器将单个BT文件完成的进度和状态信息同步到单文件状态数据库或离线任务管理服务器;同时,离线下载服务器将下载完成的单个BT文件同步至云存储服务器,下载客户端也可以通过查询获知BT文件下载完成的状态,如果此时有其他用户添加同样的BT种子,则其他可以直接从单文件状态数据库中查询到该BT种子中各BT文件下载的进度和状态信息。
单文件状态数据库中存储的BT文件的主键值由文件标识(24字节)构成。与原有1个BT种子中的所有BT文件是通过Torrent Hash唯一标识不同的是,本发明实施例中,BT种子中的每个BT文件通过24个字节来标识。在离线下载服务器完成BT种子中的一个BT文件下载后,以BT文件为粒度,将单文件(BT文件)分片同步到云存储服务器;离线任务管理服务器或单文件状态数据库确定BT文件下载进度为100%,通知下载客户端离线完成的该BT文件,下载客户端根据通知消息携带的BT文件信息,启动从云存储服务器的下载流程,同时,离线下载服务器继续BT种子中其他BT文件任务的下载。
图4为本发明实施例基于图3的文件下载方法具体流程示意图。参见图4,该流程包括:
步骤401,下载客户端向离线任务管理服务器提交离线任务下载请求;
本步骤中,离线任务下载请求中包含离线任务信息,离线任务信息包括:HTTP链接信息、电驴链接信息、BT下载种子信息、或哈希分布协议信息等。
步骤402,离线任务管理服务器接收离线任务下载请求,确定离线任务数据库没有存储离线任务下载请求对应的文件记录,将离线任务信息写入离线任务数据库;
步骤403,为离线任务下载请求中的每一独立文件设置文件标识;
本步骤中,文件标识由两部分构成,共24字节:一部分是离线任务的TorrentHash,另外一部分是离线任务中文件的序列号,4个字节。
同一离线任务中,文件标识的第一部分相同。
步骤404,将文件标识输出至单文件状态数据库;
步骤405,向离线任务分发服务器输出携带文件标识的分发离线任务请求;
步骤406,离线任务分发服务器接收离线任务下载请求,依据离线下载服务器群的负载情况进行离线任务的调度;
本步骤中,离线下载服务器通过向离线下载代理服务器进行注册,提供磁盘空间信息以及CPU负载信息,离线任务分发服务器从离线下载代理服务器获取各离线下载服务器的当前资源状态,根据获取的各离线下载服务器的当前资源状态,按照各离线下载服务器负载进行动态均衡的离线任务分发,动态地将离线任务调度到不同的离线下载服务器节点上执行具体的下载任务。
步骤407,将调度资源信息输出至离线下载代理服务器;
步骤408,根据离线下载代理服务器的管理,离线下载服务器下载离线任务;
步骤409,离线下载代理服务器监测离线下载服务器;
本步骤中,如果离线下载代理服务器发现离线下载服务器输出的文件进度信息在预先设置的时间内没有变化,或者,在预先设置的时间内没有接收到文件进度信息,删除离线下载服务器的该文件下载任务,同时通知离线任务分发代理向下载客户端输出下载失败通知,通知用户下载失败。
步骤410,将从因特网下载完成的文件输出至云存储服务器进行存储;
本步骤中,云存储服务器以文件标识存储离线下载服务器下载完成的文件,并作为下载客户端离线取回文件的数据源。
步骤411,按照预先设置的时间周期,将文件下载进度信息输出至离线下载代理服务器或离线任务数据库;
本步骤中,离线下载服务器还可以将下载时间、下载速度、下载结果、文件大小等信息进行输出。
步骤412,离线下载代理服务器将接收的文件下载进度信息输出至单文件状态数据库或离线任务分发服务器;
本步骤中,如果单文件状态数据库接收文件下载进度信息,以文件标识存储文件进度信息,确定文件下载完毕,向离线任务管理服务器输出文件下载完毕通知消息,携带文件标识。
步骤413,离线任务分发服务器将接收的文件下载进度信息输出至离线任务管理服务器;
步骤414,离线任务管理服务器接收文件下载完毕通知消息,携带文件标识以及云存储服务器地址信息,向下载客户端输出;
本步骤中,文件下载完毕通知消息既可以是离线任务管理服务器根据接收的文件下载进度信息确定,也可以是接收离线任务数据库输出的文件下载完毕通知消息。
步骤415,下载客户端从云存储服务器获取下载的文件;
本步骤中,下载客户端根据文件下载完毕通知消息中携带的云存储服务器地址信息,从云存储服务器下载文件标识对应的文件,从而无需等待离线任务中所有文件都下载完毕,实现对文件的即时处理。例如,对于现在网上包含多个子视频的较大的视频下载,即使使用多源下载工具,也需要较长时间,这样,通过本发明方法,在下载完一个子视频后,能够预览其中的内容,从而实现边下载边播放,提前欣赏播放与下载两不误,而且,如果确定下载的子视频片源质量较差,就可以取消后续未下载的其他子视频,从而节约下载时间以及带宽,也节省了云存储服务器端的空间和存储资源。
步骤416,下载客户端向统计服务器上报统计相关信息。
本步骤中,统计相关信息包括各URL源、下载时间、下载速度、下载结果、连通情况、文件大小等信息。统计服务器接收下载客户端发送的统计相关信息,生成流水日志以供后续进行统计分析。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种下载文件的方法,其特征在于,该方法包括:
接收离线任务下载请求;
解析离线任务下载请求中的离线任务,将离线任务拆分为多个独立文件并为每一独立文件设置唯一的文件标识;所述文件标识由两部分构成,一部分为所述独立文件的流哈希值,另外一部分为所述独立文件的序列号;
下载离线任务,以文件标识存储离线任务中下载的文件;
确定文件下载完毕,向下载客户端输出文件下载完毕通知消息,携带文件标识;
根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。
2.如权利要求1所述的方法,其特征在于,所述以文件标识存储离线任务中下载的文件包括:
设置离线任务存储区,并在离线任务存储区中以文件标识设置文件存储区,分别存储离线下载的文件。
3.如权利要求2所述的方法,其特征在于,在接收离线任务下载请求之后,为离线任务下载请求中的每一文件设置文件标识之前,进一步包括:
查询是否存储有离线任务下载请求对应的文件记录,如果没有,执行为离线任务下载请求中的每一文件设置文件标识的步骤。
4.如权利要求3所述的方法,其特征在于,进一步包括:
根据文件下载的进度信息更新存储的离线任务下载请求对应的文件记录。
5.如权利要求1所述的方法,其特征在于,所述离线任务下载请求中携带离线任务信息,离线任务信息包括:HTTP链接信息、电驴链接信息、BT下载种子信息、或哈希分布协议信息。
6.如权利要求1至5任一项所述的方法,其特征在于,进一步包括:
将下载的统计相关信息上报。
7.如权利要求1至5任一项所述的方法,其特征在于,所述文件标识由离线任务的流哈希值以及离线任务中文件的序列号两部分组成。
8.一种文件下载系统,其特征在于,该系统包括:离线任务下载请求处理子系统、离线任务存储子系统、文件记录子系统以及下载客户端,其中,
离线任务下载请求处理子系统,接收离线任务下载请求,解析离线任务下载请求中的离线任务,将离线任务拆分为多个独立文件并为每一独立文件设置唯一的文件标识,下载离线任务;所述文件标识由两部分构成,一部分为所述独立文件的流哈希值,另外一部分为所述独立文件的序列号;
离线任务存储子系统,以文件标识存储离线任务中下载的文件;
文件记录子系统,以文件标识存储文件进度信息,确定文件下载完毕,通过离线任务下载请求处理子系统向下载客户端输出文件下载完毕通知消息,携带文件标识;
下载客户端,根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。
9.如权利要求8所述的系统,其特征在于,进一步包括:
统计服务器,接收下载客户端输出的统计相关信息,进行存储。
10.如权利要求9所述的系统,其特征在于,所述离线任务下载请求处理子系统包括:离线任务管理服务器、离线任务分发服务器、离线下载代理服务器以及离线下载服务器,其中,
离线任务管理服务器,接收下载客户端提交的离线任务下载请求,查询文件记录子系统,如果确定不存在离线任务下载请求对应的文件记录,为离线任务中的每一独立文件生成唯一的文件标识,输出至文件记录子系统,并将携带文件标识的离线任务下载请求输出至离线任务分发服务器;
离线任务分发服务器,接收来自离线下载服务器的负载信息,根据离线下载服务器的负载情况以及接收的离线任务下载请求,为离线任务调度离线下载服务器资源;
离线下载代理服务器,分别与离线下载服务器、离线任务分发服务器以及文件记录子系统相连进行通信,接收离线任务下载请求,对多文件下载进度进行管理;接收离线下载服务器下发的文件进度信息,同步到离线任务分发服务器以及文件记录子系统;
离线下载服务器,根据离线下载代理服务器的管理,下载离线任务;将从因特网下载完成的文件输出至离线任务存储子系统进行存储;将文件下载进度信息输出至离线下载代理服务器。
11.如权利要求10所述的系统,其特征在于,所述离线任务管理服务器进一步将离线任务的原始链接信息写入文件记录子系统。
12.如权利要求10所述的系统,其特征在于,所述离线任务管理服务器进一步用于接收来自离线下载服务器的下载进度信息并进行存储。
13.如权利要求10所述的系统,其特征在于,所述离线下载代理服务器进一步用于监测离线下载服务器,如果发现离线下载服务器输出的文件进度信息在预先设置的时间内没有变化,或者,在预先设置的时间内没有接收到文件进度信息,删除离线下载服务器的该文件下载任务,同时通知离线任务分发代理向下载客户端输出下载失败通知。
14.如权利要求10所述的系统,其特征在于,所述离线下载服务器进一步用于向离线下载代理服务器进行注册,提供磁盘空间信息以及CPU负载信息。
15.如权利要求9所述的系统,其特征在于,所述文件记录子系统包括离线任务数据库以及单文件状态数据库,其中,
离线任务数据库,存储正在下载或已下载完成的文件记录以及离线任务信息,并将离线任务信息输出至离线下载服务器;
单文件状态数据库,以文件标识存储文件进度信息,确定文件下载完毕,通过离线任务下载请求处理子系统向下载客户端输出文件下载完毕通知消息,携带文件标识。
16.如权利要求15所述的系统,其特征在于,所述单文件状态数据库还用于接收来自下载客户端或离线下载服务器的查询请求,向下载客户端或离线下载服务器返回查询结果。
17.如权利要求15所述的系统,其特征在于,所述单文件状态数据库还用于下载完成的文件提供文件分片校验信息,以供下载客户端校验下载文件的有效性。
CN201110359713.3A 2011-11-14 2011-11-14 一种下载文件的方法及文件下载系统 Active CN103108008B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110359713.3A CN103108008B (zh) 2011-11-14 2011-11-14 一种下载文件的方法及文件下载系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110359713.3A CN103108008B (zh) 2011-11-14 2011-11-14 一种下载文件的方法及文件下载系统

Publications (2)

Publication Number Publication Date
CN103108008A CN103108008A (zh) 2013-05-15
CN103108008B true CN103108008B (zh) 2017-09-22

Family

ID=48315578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110359713.3A Active CN103108008B (zh) 2011-11-14 2011-11-14 一种下载文件的方法及文件下载系统

Country Status (1)

Country Link
CN (1) CN103108008B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139241A (zh) * 2011-11-24 2013-06-05 腾讯科技(深圳)有限公司 网络资源文件的离线下载系统和方法
CN108810111B (zh) * 2013-07-12 2020-08-07 腾讯科技(深圳)有限公司 下载数据的方法、客户端及系统
CN103401931B (zh) * 2013-08-05 2017-07-25 天闻数媒科技(湖南)有限公司 一种下载文件的方法和系统
CN103546549B (zh) * 2013-10-12 2017-12-12 深圳Tcl新技术有限公司 终端离线数据共享的方法及系统
CN105978981B (zh) * 2016-05-19 2019-09-24 北京春鸿科技有限公司 基于公有云存储账户的数据备份的线性扩容方法及系统
WO2018027627A1 (zh) * 2016-08-10 2018-02-15 董访问 根据关键字保存文件技术的数据采集方法以及下载系统
CN106254561B (zh) * 2016-10-12 2019-12-17 上海安馨信息科技有限公司 一种网络资源文件的实时离线下载方法及系统
CN106993058A (zh) * 2017-05-24 2017-07-28 儒安科技有限公司 网络请求的中转方法和装置
CN107360242A (zh) * 2017-07-27 2017-11-17 郑州云海信息技术有限公司 一种日志文件的下载方法及系统
US10691643B2 (en) * 2017-11-20 2020-06-23 International Business Machines Corporation Deduplication for files in cloud computing storage and communication tools
CN109561146A (zh) * 2018-11-29 2019-04-02 深圳市买买提信息科技有限公司 文件下载方法、装置、终端设备
CN111338585B (zh) * 2020-02-21 2023-08-29 深圳创维-Rgb电子有限公司 电视机及其数据的打印方法、控制装置和可读存储介质
CN114710511A (zh) * 2022-03-28 2022-07-05 中国农业银行股份有限公司 数据下载方法、装置、终端、系统及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101465824B (zh) * 2008-12-29 2012-05-16 腾讯科技(深圳)有限公司 即时通信文件多源传输系统及方法
US20110060721A1 (en) * 2009-08-10 2011-03-10 Vuze, Inc. Offline downloader
CN102148843A (zh) * 2010-02-05 2011-08-10 腾讯科技(深圳)有限公司 异步下载系统及方法
CN102238137B (zh) * 2010-04-27 2014-07-16 腾讯科技(深圳)有限公司 一种下载方法、系统和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"批量离线下载用迅雷7实现特快专递";无;《计算机与网络》;20110930;第21页 *
"网上电影边下边看—用WellGet下载影音文件";寒江钓叟;《CTips magazine》;20041130;第80页 *

Also Published As

Publication number Publication date
CN103108008A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
CN103108008B (zh) 一种下载文件的方法及文件下载系统
CN106031130B (zh) 具有边缘代理的内容传送网络架构
US10929435B2 (en) Content delivery network analytics management via edge stage collectors
US9124592B2 (en) Method and system for application level load balancing in a publish/subscribe message architecture
CN107094176B (zh) 用于对计算机网络上的数据通信进行缓存的方法和系统
CN103139241A (zh) 网络资源文件的离线下载系统和方法
CA2840106A1 (en) Offline download method, multimedia file download method and system thereof
US20110055386A1 (en) Network analytics management
US20130282890A1 (en) In-stream collection of analytics information in a content delivery system
TW201317799A (zh) 網路資源下載資訊的分享控制系統和方法
AU2010202034B1 (en) Partial object distribution in content delivery network
CN103001964B (zh) 一种局域网环境下的缓存加速方法
WO2017161757A1 (zh) 一种流媒体文件分发方法及系统
CN103248660A (zh) 一种云端订阅下载的方法和系统
JP2018506772A (ja) ネットワークアドレスの解決
CN106789956B (zh) 一种基于hls的p2p点播方法及系统
Hefeeda et al. On-demand media streaming over the internet
TW200929941A (en) Apparatus and method for transmitting streaming services
CN103248636B (zh) 离线下载的系统及方法
CN105074688B (zh) 使用对等节点图的基于流的数据去重复
Li et al. Challenges, designs, and performances of large-scale open-P2SP content distribution
US20150074234A1 (en) Content system and method for chunk-based content delivery
CN104113545A (zh) 信息中心网络下的流媒体系统及其使用方法
CN103428231B (zh) 离线下载方法和系统
Gupta et al. 2-Tiered cloud based content delivery network architecture: An efficient load balancing approach for video streaming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant