数据下载方法、装置、系统、电子设备及计算机存储介质与流程

文档序号:26589371发布日期:2021-09-10 20:23阅读:150来源:国知局
数据下载方法、装置、系统、电子设备及计算机存储介质与流程

1.本技术实施例涉及数据处理技术领域,尤其涉及一种数据下载方法、装置、系统、电子设备及计算机存储介质。


背景技术:

2.随着云技术的发展,越来越多的企业或者个人用户将数据存储于云端,但是,目前云端提供的下载方式较为单一,例如,多通过http方式下载。这意味着,客户端如果需要下载数据,也只能使用这一种方式进行下载。但是,不同的企业或个人用户有着不同的下载需求,目前的这种单一下载方式不利于云端数据的广泛下载和使用。


技术实现要素:

3.本技术实施例提供一种数据下载方案,用以至少部分克服或者缓解现有技术存在的上述问题。
4.根据本技术实施例的第一方面,提供了一种数据下载方法,应用于设置有对象存储服务oss的云端,所述方法包括:通过所述云端的第一服务节点接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求;从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据,其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件,所述第二服务节点为设置于所述云端的对象存储服务oss节点,所述oss节点中存储有使用key-value存储结构存储的所述目标文件数据所属的目标文件;根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息;通过所述第一服务节点将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
5.根据本技术实施例的第二方面,提供了一种数据下载装置,应用于设置有对象存储服务oss的云端,所述装置包括:第一转换单元,用于通过所述云端的第一服务节点接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求;文件确定单元,用于从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据,其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件,所述第二服务节点为设置于所述云端的对象存储服务oss节点,所述oss节点中存储有使用key-value存储结构存储的所述目标文件数据所属的目标文件;下载请求响应单元,用于根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息;第二转换单元,用于通过所述第一服务节点将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
6.根据本技术实施例的第三方面,提供了一种数据下载系统,应用于设置有对象存储服务oss的云端,所述系统包括均设置于所述云端的第一服务节点和第二服务节点,其
中:所述第一服务节点,用于接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求;所述第二服务节点可访问预设类型的文件,所述第二服务节点用于确定所述第二数据下载请求所请求的目标文件数据,其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件;根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息,所述第二服务节点为设置于所述云端的对象存储服务oss节点,所述oss节点中存储有使用key-value存储结构存储的所述目标文件数据所属的目标文件;所述第一服务节点,还用于将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
7.根据本技术实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的数据下载方法对应的操作。
8.根据本技术实施例的第五方面,提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据下载方法。
9.根据本技术实施例提供的技术方案,应用于设置有对象存储服务oss的云端,在进行数据下载时,面对不同用户使用的不同下载协议,可以通过第一服务节点进行协议转换,通过转换后的协议满足相应需求。例如,将第一数据下载请求从遵循第一下载协议转换为遵循第二下载协议的第二数据下载请求后,即可通过第二服务节点获取目标文件数据,第二下载协议可以为适用于第二服务节点的原下载协议,基于此,不管用户采用何种协议均可从第二服务节点获得相应文件数据。而针对携带有目标文件数据的响应消息,第一服务节点又可将其转换为与用户使用的第一下载协议匹配的消息,以使用户可以顺利获得目标文件数据。
10.此外,第二服务节点中存储的预设类型的文件满足第一下载协议,由此,无需对其进行特殊处理,其对应的数据即可被第一服务节点使用进而发送给数据下载请求方,既保障了整个方案的顺利实施,又降低了数据处理成本。
11.可见,通过本技术实施例提供的方案,有效解决了现有技术中不同的企业或个人用户有着不同的下载需求,目前的单一下载方式不利于云端数据的广泛下载和使用的问题。
附图说明
12.后文将参照附图以示例性而非限制性的方式详细描述本技术实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
13.图1a为本技术实施例一提供的数据下载方法流程示意图;
14.图1b为图1a所示数据下载方法的场景示意图;
15.图2a为本技术实施例二提供的数据下载方法流程示意图;
16.图2b为本技术实施例的一种数据下载系统的结构示意图;
17.图3为本技术实施例三提供的数据下载装置结构示意图;
18.图4为本技术实施例四提供的数据下载装置结构示意图;
19.图5为本技术实施例五提供的一种电子设备示意图。
具体实施方式
20.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
21.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
22.图1a为本技术实施例一提供的数据下载方法流程示意图,该数据下载方法应用于设置有oss(object storage service,对象存储服务)的云端,第一服务节点和第二服务节点均设置于云端。如图1a所示,本实施例中提供的数据下载方法包括:
23.s100、通过第一服务节点接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求。
24.本实施例中,待下载的文件数据也存储于云端,一方面可对其采用常规方式进行直接下载,如使用http协议进行下载;另一方面,也可以通过第一服务节点实现非常规协议方式下的下载,如p2p方式的下载等。也即,所述第一下载协议和所述第二下载协议为不同的协议,在一种可行方式中,第一下载协议可以为bittorrent协议,第二下载协议可以为http协议。但不限于此,其它协议形式也同样可适用于本技术实施例的方案。
25.其中,对数据下载请求的协议转换可以由本领域技术人员根据实际需求采用适当方式实现,包括但不限于,对第一数据下载请求进行解析,获取其中的待下载文件数据的信息,进而,依据第二下载协议对该待下载文件数据的信息进行再次封装,封装成为符合第二下载协议规范的第二数据下载请求。
26.此外,数据下载请求方可以为任意适当的请求下载文件的请求者,例如,在第一下载协议采用bittorrent协议时,该数据下载请求方可以为qbittorrent客户端。
27.s200、从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据。
28.本实施例中,第二服务节点为设置于云端的oss节点,所述oss节点中存储有使用key-value存储结构存储的目标文件数据所属的目标文件。其中,目标文件数据可以为目标文件中的一部分数据,也可以为目标文件中的全部数据。
29.本步骤中,第二服务节点在获取到第二数据下载请求后,即可根据其中的待下载文件数据的信息进行查找,从而确定第二数据下载请求所请求的目标文件数据。第二服务节点可以自身存储相应的文件及其数据,也可以通过对数据库或其它存储系统或节点进行查找确定并获得相应的文件及其数据,只需第二服务节点具有对这些文件和数据的访问权限即可。
30.其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件。由此,该预设类型的文件中包含的用户所需的数据,即目标文件数据在经协议转换后向使用第一下载协议的数据请求方发送时,无需进行文件转换,提升了数据下载效率和速度,降低了方案实现成本。
31.例如,当第一下载协议为bittorrent协议时,预设类型的文件为torrent种子文件。
32.在第二服务节点实现为oss(object storage service,对象存储服务)节点的情况下,oss可以理解为基于key-value存储结构的一种存储系统。简单来说,其存储对象可以是文件,对象的key是文件名,对象的value是文件的内容。每个对象都在一个被称作存储桶(bucket)的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级object,若存储对象是文件,可以理解为一个文件bucket。对象存储系统中的存储桶,为存储object的容器。同一个bucket下面的object的key不能相同,但不同bucket下面的object的key可以相同,同一个object只能属于唯一的一个bucket。不同的用户可以创建不同的bucket。每个bucket的名字不同,这样不同的用户的数据就可以区分开来。基于此,oss节点中存储的torrent种子文件采用同样的key-value存储结构进行存储。
33.s300、根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息。
34.例如,数据下载请求方通过torrent种子文件即可确定其所要下载的oss节点中的目标文件数据。需要说明的是,该目标文件数据可能为尺寸较小的文件的全部数据,也可能为某个文件中的部分数据。
35.第二服务节点和第一服务节点之间使用第二下载协议进行数据传输,在第二服务节点确定目标文件数据后,即可将目标文件数据携带在对第二数据下载请求进行响应的响应消息中,传输给第一服务节点。
36.s400、通过所述第一服务节点将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
37.其中,下载约束配置用于对文件下载进行限制,包括但不限于带宽限制、并发下载用户数量限制、下载期限限制,等等。
38.第一服务节点和数据下载请求方之间使用第一下载协议进行数据传输,基于此,第一服务节点需要将从第二服务节点获取的响应消息转换为遵循第一下载协议的消息,再交给数据下载请求方。
39.上述过程的一个场景示意如图1b所示,1b中,第一服务节点和第二服务节点设置在云端,以实现更好的数据共享和处理服务,也降低了系统运维成本。在需要进行数据下载时,数据下载请求方按照第一下载协议向第一服务节点发送第一数据下载请求;第一服务节点接收到该第一数据下载请求后,将其转换为符合第二下载协议的第二数据下载请求并发送给第二服务节点;第二服务节点接收到第二数据下载请求后,确定对应的目标文件数据;然后,第二服务节点根据该目标文件数据生成相应的响应消息,使用第二下载协议向第一服务节点发送;第一服务节点接收到该响应消息后将其转换为符合第一下载协议的响应消息再向数据下载请求方发送,数据下载请求方接收到该响应消息后即可获得相应的目标文件数据。
40.根据本实施例,在进行数据下载时,面对不同用户使用的不同下载协议,可以通过第一服务节点进行协议转换,通过转换后的协议满足相应需求。例如,将第一数据下载请求从遵循第一下载协议转换为遵循第二下载协议的第二数据下载请求后,即可通过第二服务节点获取目标文件数据,第二下载协议可以为适用于第二服务节点的原下载协议,基于此,
不管用户采用何种协议均可从第二服务节点获得相应文件数据。而针对携带有目标文件数据的响应消息,第一服务节点又可将其转换为与用户使用的第一下载协议匹配的消息,以使用户可以顺利获得目标文件数据。
41.此外,第二服务节点中存储的预设类型的文件满足第一下载协议,由此,无需对其进行特殊处理,其对应的数据即可被第一服务节点使用进而发送给数据下载请求方,既保障了整个方案的顺利实施,又降低了数据处理成本。
42.可见,通过本实施例,有效解决了现有技术中不同的企业或个人用户有着不同的下载需求,目前的单一下载方式不利于云端数据的广泛下载和使用的问题。
43.图2a为本技术实施例二提供的数据下载方法流程示意图。本实施例中,基于数据下载系统实现本实施例的数据下载方法,为此,以下首先对该数据下载系统进行说明。
44.该数据下载系统应用于设置有oss的云端,该系统包括均设置于云端的第一服务节点和第二服务节点。其中,所述第一服务节点,用于接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求。所述第二服务节点可访问预设类型的文件,所述第二服务节点用于确定所述第二数据下载请求所请求的目标文件数据,其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件;以及,用于根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息,第二服务节点为设置于云端的oss节点,所述oss节点中存储有使用key-value存储结构存储的目标文件数据所属的目标文件。所述第一服务节点,还用于将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
45.为便于说明,以下以第一下载协议为基于p2p的bittorrent协议,第二下载协议为基于http的下载协议的数据下载系统为例进行说明,具体如图2b所示。
46.图2b中,第一服务节点实现为符合bittorrent协议规范的super peer节点(如图2b中示意的“super peer”),第二服务节点则实现为oss节点(即图2b中的“对象存储系统”)。super peer节点提供bittorrent协议中定义的peer角色服务,通过该super peer节点可以完整地下载所有torrent种子文件描述的数据文件的数据,并且,该super peer节点还可以实现第一下载协议和第二下载协议之间的数据转换。此外,服务端中还存储有相应的用于指示bittorrent协议的各节点配置的文件或信息,tracker节点可以通过读取配置信息确定super peer究竟是哪个节点及super peer节点的角色定义。
47.除上述之外,在实际应用中,还会存在有多个普通peer节点(即简单类型peer节点),以实现基于bittorrent协议的p2p下载。此外,在所述第一下载协议为bittorrent协议的情况下,所述oss节点可访问的预设类型的文件为torrent种子文件。
48.进一步地,该数据下载系统还包括tracker节点,tracker节点用于接收所述super peer节点发送的节点注册消息,并向普通peer节点提供所述super peer节点的信息,以使普通peer节点可访问super peer节点。此外,tracker节点还获取普通peer节点的信息,包括但不限于网络地址信息和该peer节点正在下载的数据文件的信息。也可以认为,tracker节点实现tracker服务,提供bittorrent协议中定义的tracker角色服务。
49.此外,更进一步地,该数据下载系统还可以包括文件存储节点,图2b中示意为torrent文件存储节点,文件存储节点用于存储和检索根据用户上传的内容数据生成的
torrent种子文件。
50.需要说明的是,上述节点均设置在云端,且上述节点在具体应用中可以采用实现相应功能的模块或设备节点或服务的形式。
51.基于上述数据下载系统,如图2a所示,本实施例中提供的数据下载方法包括:
52.s101、通过第一服务节点接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求。
53.如前所述,本实施例中,所述第一下载协议为基于p2p的下载协议,进一步可选地,可以为基于p2p的bittorrent协议,所述第一服务节点为super peer节点,所述第二下载协议为基于http的下载协议。。
54.s102、从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据。
55.其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件。本实施例中,第二服务节点采用oss节点,所述预设类型的文件为torrent种子文件。基于此,本步骤可以实现为:从可访问torrent种子文件的oss节点的oss中,确定所述第二数据下载请求所请求的torrent种子文件对应的文件数据。
56.在一种可行方式中,oss节点自身可存储torrent种子文件,则其可根据第二数据下载请求对应的torrent种子文件的信息,确定第二数据下载请求所请求的目标文件数据在oss中的信息,进而据此确定和获取该目标文件数据。
57.在另一种可行方式中,为了减少对现有oss的改动,可以如图2b中所示,在云端设置torrent种子文件存储功能。基于此,第一服务节点通过第二数据下载请求访问存储的torrent种子文件,通过torrent种子文件获得待下载的目标文件数据的信息,进而根据该目标文件数据的信息,仍按照第二下载协议向oss发送目标文件数据请求,oss基于该请求确定并获取自身存储的目标文件数据。
58.需要说明的是,本实施例中,torrent种子文件除了具有常规的标准规范必须包含的torrent种子文件的信息(如:待下载文件的名称、待下载文件的大小、待下载文件的哈希值、待下载文件对应的tracker地址、待下载文件的标识、存储待下载文件的存储桶的名称等)之外,还可以包括以下信息至少之一:文件描述信息、文件的有效期限信息、文件的单用户下载可用带宽信息、文件的可下载并发用户数量的信息。
59.其中,所述文件描述信息包括以下至少之一:文件的作者信息、文件的内容信息、文件的创建时间信息。据此,用户不用进行或完成文件下载,即可对待下载文件有个概要的了解。
60.而通过文件的有效期限信息、文件的单用户下载可用带宽信息、文件的可下载并发用户数量的信息则可以有效控制文件的下载及文件下载所使用的资源。
61.s103、根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息。
62.本步骤的实现可参照前述实施例一中的相关描述,在此不再赘述。
63.s104、通过所述第一服务节点将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
64.本实施例中,super peer节点将响应消息从http协议规范转换为bittorrent协议
规则后,向数据下载请求方发送。
65.其中,当所述torrent种子文件中包括所述文件的有效期限信息时,所述预设的下载约束配置包括:根据所述有效期限信息,判断所述torrent种子文件对应的文件数据是否可下载的配置。由此,文件发布者可以对用户从云端下载torrent种子文件所对应的文件数据的时间进行控制,节约文件发布者自身的带宽。
66.例如,oss节点若判断待下载的目标torrent种子文件对应的文件数据在有效期限信息指示的有效期限内,则确定其可下载,然后,将其携带在响应消息中向第一服务节点发送;否则,不发送或者给出提示信息。
67.当所述torrent种子文件中包括所述文件的单用户下载可用带宽信息时,所述预设的下载约束配置包括:限制单个用户按照所述单用户下载可用带宽信息指示的带宽进行文件数据下载的配置。由此,可以将有限的带宽分配给更多的用户使用。
68.例如,若单用户下载可用带宽信息指示单用户可用带宽为1m,则super peer节点按照不超过1m带宽向数据下载请求方如qbittorrent客户端提供数据,传输待下载的目标torrent种子文件对应的文件数据(如,torrent种子文件所描述的存储在oss中的文件数据)。
69.当所述torrent种子文件中包括所述文件的可下载并发用户数量的信息时,所述预设的下载约束配置包括限制所述torrent种子文件对应的文件数据的并发下载用户数量的配置。由此,可以有效保证用户的下载体验。
70.例如,若可下载并发用户数量的信息指示可下载并发用户数量为50个,则super peer节点最多与50个数据下载请求方如qbittorrent客户端交互,传输待下载的目标torrent种子文件对应的文件数据。由此可见,在该示例中,数据下载请求方如qbittorrent客户端即充当了普通peer节点的角色。
71.可选地,所述预设的下载约束配置还包括:根据用户的下载超时信息调整所述torrent种子文件对应的数据文件的下载用户的配置。
72.例如,数据下载请求方如qbittorrent客户端a下载数据片x已达半个小时仍未下载完成,super peer节点则可断开与客户端a的连接,接受客户端b的下载数据片x的连接请求等。
73.通过上述过程,待下载的目标torrent种子文件对应的数据文件可被有效且可控地进行传输和分享。
74.s105、通过第一服务节点向其它使用第一下载协议的节点提供目标文件数据。
75.具体到本实施例,可以通过所述super peer节点向tracker节点发送节点注册消息,以使所述tracker节点向普通peer节点提供所述super peer节点的信息,供普通peer节点连接并访问super peer节点,获取目标文件数据。此外,tracker节点还会记录普通peer节点的信息如网络地址信息、正在下载的文件数据的信息等,由此,当其它普通peer节点需要下载数据时,tracker会将super peer节点的信息和已记录的普通peer节点的信息都发送给该需要下载数据的peer节点,这样,该peer节点既可从super peer节点获取数据,也可以和其它普通peer节点之间互相分享数据。由此,实现多个数据下载请求方之间以p2p方式进行数据下载和分享。
76.以下,结合图2b,对上述过程进行进一步说明,该过程包括以下步骤:
77.步骤1:数据提供者通过客户端向云端提供数据,并请求云端生成torrent种子文件或者磁力链接地址。
78.其中,数据提供者与云端的数据交互使用云端对象存储系统oss定义的http协议。
79.云端生成的torrent种子文件除了bittorrent协议中规定的必须内容之外,数据提供者还可以请求云端在torrent种子文件中增加以下信息至少之一:
80.a、自定义的meta信息,即文件描述信息。如,数据提供者添加的对文件的个性化的描述信息,比如文件作者、文件内容主题、文件创作的时间、torrent种子文件的创建时间等等。由此,使用户可以不用下载文件就会对文件有一个简单的了解。并且,通过torrent文件的创建时间,可以得出数据提供者是从什么时候开始进行p2p分享的。
81.b、文件可以从云端下载的有效期,即文件的有效期限信息。在torrent种子文件中会包含对该文件的下载url,该url带有过期时间以及签名信息。当过了下载有效期后,就无法继续从云端下载该文件。由此,文件的发布者可以控制用户从云端下载的时间,节约自己的带宽,强迫过一段时间后用户只能通过p2p方式分享数据。
82.c、单个用户下载的带宽数据,即文件的单用户下载可用带宽信息。由此,通过控制单个用户的下载带宽,可以将有限的带宽资源分给更多的用户下载使用,同时也可以限制云端的带宽下载资源,节约成本。
83.d、该文件可以同时允许多少个用户同时下载,即文件的可下载并发用户数量的信息。由此,可以控制同时下载文件的用户数量,不允许过多的用户同时从云端下载,一方面可以控制云端的出口带宽,另外一方面可以保证每个从云端下载用户的下载体验。
84.步骤2:云端接收完客户端发送的数据后,对数据按照一定的计算规则生成torrent种子文件,并将torrent种子文件存储于内部torrent文件管理系统。
85.torrent种子文件里面包含了tracker地址、数据的大小、数据的切片大小(除最后一个切片之外,每个数据切片的长度相同)、数据每个切片内容的hash值、数据的bucket名称、数据的key名称。
86.又根据torrent种子文件的内容使用sha1算法可以计算出一个20个字节的值,这个值称之为info hash,不同的torrent种子文件内容可以生成不同的info hash值,info hash值和torrent种子文件是一一对应的关系。据此,torrent种子文件可以根据规则转化为一个磁力链接地址。
87.步骤3:torrent文件存储系统返回存储torrent文件成功消息。
88.步骤4:云端向数据提供者的客户端返回生成的torrent种子文件内容信息或者返回生成的磁力链接地址。
89.步骤5:有了torrent种子文件,数据下载者就可以用下载工具(以qbittorrent工具举例)进行下载。
90.qbittorrent根据torrent种子文件中的tracker地址,向tracker发送请求资源下载的协议,请求里面带上torrent种子文件的info hash参数,该协议是bittorrent标准规定的tracker连线协议。在本示例中,qbittorrent即可被认为是普通的peer节点。
91.步骤6:tracker向qbittorrent返回云端部署的super peer的信息(ip、port),以及下载相同数据的其他的多个qbittorrent的地址(ip、port)信息。
92.本步骤中,tracker与qbittorrent的交互仍然使用tracker连线协议。
93.步骤7:qbittorrent根据super peer的ip、port信息向super peer请求下载数据的某个随机切片内容,请求参数里面有torrent种子文件的info hash值以及切片编号和数据长度等参数信息。
94.qbittorrent与super peer的交互使用bittorrent协议中规定的peer连线协议。
95.步骤8:super peer根据info hash值向torrent文件存储系统请求torrent种子文件的内容。
96.步骤9:torrent文件存储系统根据info hash值检索出torrent种子文件内容,返回给super peer。
97.步骤10:super peer根据返回torrent种子文件内容中数据的bucket名和key名,就可以利用http下载请求向对象存储系统oss下载指定偏移位置和长度的数据内容。
98.由于super peer需要向数据下载者提供云端的数据,如果torrent种子文件中包括有和下载相关的策略信息,比如前述文件的有效期限信息、文件的单用户下载可用带宽信息、文件的可下载并发用户数量的信息等,super peer可以基于此实现对数据下载者的下载控制。此外,super peer还可以根据数据下载者下载文件时的文件下载超时时间,对数据下载者进行调整。例如,用户a下载数据片x已达半个小时仍为下载完成,则可断开与用户a的连接,接受用户b的下载数据片x的连接请求等。
99.步骤11:对象存储系统oss返回指定的数据。
100.步骤12:super peer将下载到的数据,利用bittorrent协议中peer连线协议返回给数据下载者的下载工具qbittorrent。
101.步骤13:不同的qbittorrent都随机下载了数据的不同切片,互相之间通过协议(peer连线协议)可以交换这些数据,直至最后每个qbittorrent都下载到了完整的数据,由于torrent种子文件中有每个切片内容的hash值,因此qbittorrent也可以校验所下载数据的完整性。
102.需要说明的是,图2b示意的上述过程中,实心箭头是对象存储系统oss规定的内部或者外部的http协议规范,空心箭头代表bittorrent协议。super peer节点会将基于bittorrent协议的peer下载数据请求转化为云端内部的基于http协议的http请求,获得数据后,最后再以peer连线协议将数据返回给qbittorrent。
103.若云端以采用对象存储系统oss的服务为基础,则将bittorrent服务增加入云端提供p2p下载,通过将用户的p2p下载请求转换为oss内部的http下载请求,可以对原有云端的系统不需要做任何修改。
104.由此,在云端实现以及部署满足bittorrent协议规范的tracker服务和peer服务,同时peer服务可以将基于bittorrent协议的数据下载请求转化为oss定义的http下载请求,云端的oss不仅可以向用户提供原有的传统的http下载方式,还可以提供p2p下载方式,为用户带来更多的价值,比如支持更多的下载工具、支持以低成本的带宽满足向海量用户分发数据而不影响用户的下载体验。
105.此外,通过本实施例,在进行数据下载时,面对不同用户使用的不同下载协议,可以通过第一服务节点进行协议转换,通过转换后的协议满足相应需求。例如,将第一数据下载请求从遵循第一下载协议转换为遵循第二下载协议的第二数据下载请求后,即可通过第二服务节点获取目标文件数据,第二下载协议可以为适用于第二服务节点的原下载协议,
基于此,不管用户采用何种协议均可从第二服务节点获得相应文件数据。而针对携带有目标文件数据的响应消息,第一服务节点又可将其转换为与用户使用的第一下载协议匹配的消息,以使用户可以顺利获得目标文件数据。
106.并且,第二服务节点中存储的预设类型的文件满足第一下载协议,由此,无需对其进行特殊处理,其对应的数据即可被第一服务节点使用进而发送给数据下载请求方,既保障了整个方案的顺利实施,又降低了数据处理成本。
107.可见,通过本实施例,有效解决了现有技术中不同的企业或个人用户有着不同的下载需求,目前的单一下载方式不利于云端数据的广泛下载和使用的问题。
108.图3为本技术实施例三提供的数据下载装置结构示意图,本实施例中提供的数据下载装置应用于设置有oss的云端,所述装置包括:
109.第一转换单元201,用于通过所述云端的第一服务节点接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求;文件确定单元202,用于从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据,其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件,所述第二服务节点为设置于所述云端的对象存储服务oss节点,所述oss节点中存储有使用key-value存储结构存储的所述目标文件数据所属的目标文件;下载请求响应单元203,用于根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息;第二转换单元204,用于通过所述第一服务节点将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
110.本实施例的数据下载装置用于实现前述多个实施例中相应的数据下载方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据下载装置中的各个单元的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
111.图4为本技术实施例四提供的数据下载装置结构示意图,本实施例的数据下载装置应用于设置有oss的云端,所述装置包括:
112.第一转换单元301,用于通过所述云端的第一服务节点接收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求;文件确定单元302,用于从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据,其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件,所述第二服务节点为设置于所述云端的对象存储服务oss节点,所述oss节点中存储有使用key-value存储结构存储的所述目标文件数据所属的目标文件;下载请求响应单元303,用于根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息;第二转换单元304,用于通过所述第一服务节点将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
113.可选地,所述第一下载协议为基于p2p的下载协议,所述第二下载协议为基于http的下载协议。
114.可选地,所述第一下载协议为基于p2p的bittorrent协议,所述预设类型的文件为torrent种子文件,所述第一服务节点为super peer节点。
115.可选地,所述torrent种子文件中包括以下信息至少之一:文件描述信息、文件的有效期限信息、文件的单用户下载可用带宽信息、文件的可下载并发用户数量的信息。
116.可选地,所述文件描述信息包括以下至少之一:文件的作者信息、文件的内容信息、文件的创建时间信息。
117.可选地,当所述torrent种子文件中包括所述文件的有效期限信息时,所述预设的下载约束配置包括根据所述有效期限信息,判断所述torrent种子文件对应的文件数据是否可下载的配置;当所述torrent种子文件中包括所述文件的单用户下载可用带宽信息时,所述预设的下载约束配置包括限制单个用户按照所述单用户下载可用带宽信息指示的带宽进行文件数据下载的配置;当所述torrent种子文件中包括所述文件的可下载并发用户数量的信息时,所述预设的下载约束配置包括限制所述torrent种子文件对应的文件数据的并发下载用户数量的配置。
118.可选地,所述预设的下载约束配置还包括:根据用户的下载超时信息调整所述torrent种子文件对应的数据文件的下载用户的配置。
119.可选地,所述第二服务节点为oss节点;文件确定单元302,用于从可访问torrent种子文件的oss节点的oss中,确定所述第二数据下载请求所请求的torrent种子文件对应的文件数据。
120.可选地,本实施例的数据下载装置还包括:注册模块305,用于通过所述super peer节点向tracker节点发送节点注册消息,以使所述tracker节点向与其连接的普通peer节点提供所述super peer节点的信息。
121.本实施例的数据下载装置用于实现前述多个实施例中相应的数据下载方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据下载装置中的各个单元的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
122.参照图5,示出了根据本发明实施例五的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
123.如图5所示,该电子设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
124.其中:
125.处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
126.通信接口404,用于与其它电子设备或服务器或云端进行通信。
127.处理器402,用于执行程序410,具体可以执行上述数据下载方法实施例中的相关步骤。
128.具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
129.处理器402可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
130.存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
131.程序410具体可以用于使得处理器402执行以下操作:通过云端的第一服务节点接
收数据下载请求方按照第一下载协议发送的第一数据下载请求,并将所述第一数据下载请求转换为遵循第二下载协议的第二数据下载请求;从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据,其中,所述预设类型的文件为满足所述第一下载协议的下载文件类型的文件,所述第二服务节点为设置于所述云端的对象存储服务oss节点,所述oss节点中存储有使用key-value存储结构存储的所述目标文件数据所属的目标文件;根据所述第二下载协议向所述第一服务节点发送响应于所述第二数据下载请求的、且携带有所述目标文件数据的响应消息;通过所述第一服务节点将所述响应消息转换为遵循所述第一下载协议的响应消息,并根据预设的下载约束配置向所述数据下载请求方发送。
132.在一种可选的实施方式中,所述第一下载协议为基于p2p的下载协议,所述第二下载协议为基于http的下载协议。
133.在一种可选的实施方式中,所述第一下载协议为基于p2p的bittorrent协议,所述预设类型的文件为torrent种子文件,所述第一服务节点为super peer节点。
134.在一种可选的实施方式中,所述torrent种子文件中包括以下信息至少之一:文件描述信息、文件的有效期限信息、文件的单用户下载可用带宽信息、文件的可下载并发用户数量的信息。
135.在一种可选的实施方式中,所述文件描述信息包括以下至少之一:文件的作者信息、文件的内容信息、文件的创建时间信息。
136.在一种可选的实施方式中,当所述torrent种子文件中包括所述文件的有效期限信息时,所述预设的下载约束配置包括根据所述有效期限信息,判断所述torrent种子文件对应的文件数据是否可下载的配置;当所述torrent种子文件中包括所述文件的单用户下载可用带宽信息时,所述预设的下载约束配置包括限制单个用户按照所述单用户下载可用带宽信息指示的带宽进行文件数据下载的配置;当所述torrent种子文件中包括所述文件的可下载并发用户数量的信息时,所述预设的下载约束配置包括限制所述torrent种子文件对应的文件数据的并发下载用户数量的配置。
137.在一种可选的实施方式中,所述预设的下载约束配置还包括:根据用户的下载超时信息调整所述torrent种子文件对应的数据文件的下载用户的配置。
138.在一种可选的实施方式中,所述第二服务节点为oss节点;程序410还用于使得处理器402在从可访问预设类型的文件的第二服务节点中,确定所述第二数据下载请求所请求的目标文件数据时:从可访问torrent种子文件的oss节点的oss中,确定所述第二数据下载请求所请求的torrent种子文件对应的文件数据。
139.在一种可选的实施方式中,程序410还用于使得处理器402通过所述super peer节点向tracker节点发送节点注册消息,以使所述tracker节点向与其连接的普通peer节点提供所述super peer节点的信息。
140.程序410中各步骤的具体实现可以参见上述数据下载方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
141.通过本实施例的电子设备,在进行数据下载时,面对不同用户使用的不同下载协
议,可以通过第一服务节点进行协议转换,通过转换后的协议满足相应需求。例如,将第一数据下载请求从遵循第一下载协议转换为遵循第二下载协议的第二数据下载请求后,即可通过第二服务节点获取目标文件数据,第二下载协议可以为适用于第二服务节点的原下载协议,基于此,不管用户采用何种协议均可从第二服务节点获得相应文件数据。而针对携带有目标文件数据的响应消息,第一服务节点又可将其转换为与用户使用的第一下载协议匹配的消息,以使用户可以顺利获得目标文件数据。
142.此外,第二服务节点中存储的预设类型的文件满足第一下载协议,由此,其对应的数据无需对其进行特殊处理,即可被第一服务节点使用进而发送给数据下载请求方,既保障了整个方案的顺利实施,又降低了数据处理成本。
143.可见,通过本实施例的电子设备,有效解决了现有技术中不同的企业或个人用户有着不同的下载需求,目前的单一下载方式不利于云端数据的广泛下载和使用的问题。
144.需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
145.上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据下载方法。此外,当通用计算机访问用于实现在此示出的数据下载方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据下载方法的专用计算机。
146.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
147.以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1