CN111934849B - 基于磁力链接的下载方法、设备、系统及可读存储介质 - Google Patents

基于磁力链接的下载方法、设备、系统及可读存储介质 Download PDF

Info

Publication number
CN111934849B
CN111934849B CN201910393818.7A CN201910393818A CN111934849B CN 111934849 B CN111934849 B CN 111934849B CN 201910393818 A CN201910393818 A CN 201910393818A CN 111934849 B CN111934849 B CN 111934849B
Authority
CN
China
Prior art keywords
target
seed
downloading
magnetic link
file
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
CN201910393818.7A
Other languages
English (en)
Other versions
CN111934849A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910393818.7A priority Critical patent/CN111934849B/zh
Publication of CN111934849A publication Critical patent/CN111934849A/zh
Application granted granted Critical
Publication of CN111934849B publication Critical patent/CN111934849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于磁力链接的下载方法、装置、设备及可读存储介质。该方法包括:根据所接收的目标磁力链接,在缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件;当缓存数据库中存在目标种子文件时,下载所述目标种子文件,以提供目标种子文件实现对应的文件下载。根据该方法,可以提高种子文件的下载速度以及下载成功率。

Description

基于磁力链接的下载方法、设备、系统及可读存储介质
技术领域
本发明涉及网络技术领域,更具体地,涉及一种基于磁力链接的下载方法、设备、系统及可读存储介质。
背景技术
Bit Torrent协议是一种广泛应用在对等(Peer to Peer,P2P)网络中进行文件分享的网络协议。根据Bite Torrent协议,文件发布者会根据要发布的文件提供对应的种子文件(.torrent文件),文件下载者可以通过磁力链接这样的通过散列函数值来标识文件的链接格式,下载种子文件后,基于种子文件下载文件发布者提供的文件。
而基于Bit Torrent协议下载所必须的Tracker服务器的地址以及相关服务器配置通常包括在Tracker信息中,因而通过不包括Tracker信息的磁力链接下载种子文件,通常是从无任何服务器的DHT(Distributed Hash Table,纯分布式哈希表)网络中获取种子文件,但是,由于DHT网络是分布式存储资源网络,连接到DHT网络耗时较久并且网络连接质量较差,因此,基于磁力链接获取种子文件往往需要数十秒乃至数十分钟,影响种子文件下载效率,甚至可能无法找到可获取的种子文件,导致下载失败,降低文件下载成功率。
发明内容
本发明的一个目的是提供一种用于基于磁力链接下载的新技术方案。
根据本发明的第一方面,提供了一种基于磁力链接的下载方法,其中,包括:
根据所接收的目标磁力链接,在缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
所述磁力链接中包括种子哈希值;所述种子哈希值是根据与所述磁力链接对应的种子文件生成的哈希值;
所述缓存数据库中的每条数据库记录,以对应的所述磁力链接中包括的所述种子哈希值作为对应的索引进行保存;
所述根据所接收的目标磁力链接,在所述缓存数据库中查询是否存在与所述目标磁力链接对应的目标种子文件的步骤包括:
以所述目标磁力链接中包括的目标种子哈希值作为索引,在所述缓存数据库中查询是否存在与所述目标种子哈希值对应的目标数据库记录,如果存在所述目标数据库记录,确定所述缓存数据库中存在所述目标种子文件,否则,确定所述缓存数据库中不存在所述目标种子文件;
当所述缓存数据库中存在所述目标种子文件时,下载所述目标种子文件,以提供所述目标种子文件实现对应的文件下载。
可选地,所述方法还包括:
当所述缓存数据库不存在所述目标种子文件时,根据所述目标磁力链接,同时通过至少两种不同的种子文件预设下载方式,下载所述目标种子文件;
其中,种子文件预设下载方式包括DHT网络下载方式、工具协议下载方式以及种子库下载方式。
可选地,所述方法还包括:
根据所述目标磁力链接,通过所述DHT网络下载方式下载获取所述目标种子文件的步骤,包括:
与DHT网络建立连接;
根据所述目标磁力链接中包括的目标种子哈希值,向DHT网络中的所有节点发送peer请求,请求返回持有与所述目标种子哈希值对应的种子文件的目标peer;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
接收返回的所述目标peer,与所述目标peer建立连接,下载所述目标种子文件;
以及,
根据所述目标磁力链接,通过工具协议下载方法下载获取所述目标种子文件的步骤,包括:
获取工具协议集合;所述工具协议集合中包括可获取的所有支持通过磁力链接下载种子文件的下载工具所提供的下载工具协议;
根据所述工具协议集合中包括的每个所述下载工具协议,访问与所述下载工具协议对应的种子库,通过所述目标磁力链接中包括的目标种子哈希值,在所述种子库中查询下载与所述目标种子哈希值对应的所述目标种子文件;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
根据所述目标磁力链接,通过所述种子库下载方式下载获取所述目标种子文件的步骤,包括:
获取种子库接口集合;所述种子库接口集合中包括可获取的所有提供种子文件下载的种子库的接口;
根据所述种子库接口集合中包括的每个种子库的接口,通过所述目标磁力链接中包括的目标种子哈希值生成种子文件下载请求,发送给对应的所述种子库,在所述种子库中查询下载与所述目标种子哈希值对应的所述目标种子文件;所述目标种子哈希值是根据所述目标种子文件生成的哈希值。
可选地,所述方法还包括:
所述目标磁力链接中包括目标种子哈希值;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
所述在下载所述目标种子文件之后,在所述缓存数据库中添加用于记录所述目标磁力链接以及所述目标种子文件的目标数据库记录的步骤包括:
以所述目标种子哈希值作为索引,在所述缓存数据库中添加所述目标数据库记录。
可选地,所述磁力链接中包括种子哈希值;所述种子哈希值是根据与所述磁力链接对应的种子文件生成的哈希值;
所述缓存数据库中的每条数据库记录,以对应的所述磁力链接中包括的所述种子哈希值作为对应的索引进行保存;
所述根据所接收的目标磁力链接,在所述缓存数据库中查询是否存在与所述目标磁力链接对应的目标种子文件的步骤包括:
以所述目标磁力链接中包括的目标种子哈希值作为索引,在所述缓存数据库中查询是否存在与所述目标种子哈希值对应的目标数据库记录,如果存在所述目标数据库记录,确定所述缓存数据库中存在所述目标种子文件,否则,确定所述缓存数据库中不存在所述目标种子文件。
可选地,所述方法还包括设置缓存数据库的步骤,包括:
根据每个所获取的磁力链接,同时通过至少两种不同的种子文件预设下载方式下载获取与所述磁力链接对应的种子文件;
其中,种子文件预设下载方式包括DHT网络下载方式、工具协议下载方式以及种子库下载方式;
在获取每个种子文件之后,在所述缓存数据库中添加用于记录种子文件以及与种子文件对应的磁力链接的数据库记录,实现在所述缓存数据库中缓存种子文件。
根据本发明的第二方面,提供一种基于磁力链接的下载方法,其中,包括:
响应于所接收的文件下载请求,获取与所述文件下载请求对应的目标磁力链接;
确定本地是否存在与所述目标磁力链接唯一对应的目标下载标识;
在本地存在所述目标下载标识时,从在缓存数据库中获取与所述目标磁力链接对应的目标种子文件,根据所述目标种子文件下载对应的文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
所述磁力链接中包括种子哈希值;所述种子哈希值是根据与所述磁力链接对应的种子文件生成的哈希值;
所述缓存数据库中的每条数据库记录,以对应的所述磁力链接中包括的所述种子哈希值作为对应的索引进行保存;
所述根据所接收的目标磁力链接,在所述缓存数据库中查询是否存在与所述目标磁力链接对应的目标种子文件,包括:
以所述目标磁力链接中包括的目标种子哈希值作为索引,在所述缓存数据库中查询是否存在与所述目标种子哈希值对应的目标数据库记录,如果存在所述目标数据库记录,确定所述缓存数据库中存在所述目标种子文件,否则,确定所述缓存数据库中不存在所述目标种子文件;
在本地不存在所述目标下载标识时,触发实施如本发明的第一方面所述的任意一项方法获取所述目标种子文件,根据所述目标种子文件下载对应的文件,并生成与所述目标磁力链接唯一对应的所述目标下载标识保存在本地。根据本发明的第三方面,提供一种基于磁力链接的下载装置,其中,包括:
种子查询单元,用于根据所接收的目标磁力链接,在缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
种子下载单元,用于当所述缓存数据库中存在所述目标种子文件时,下载所述目标种子文件,以提供所述目标种子文件实现对应的文件下载。
根据本发明的第四方面,提供一种基于磁力链接的下载装置,其中,包括:
链接获取单元,用于响应于所接收的文件下载请求,获取与所述文件下载请求对应的目标磁力链接;
标识确定单元,用于确定本地是否存在与所述目标磁力链接唯一对应的目标下载标识;
第一处理单元,用于在本地存在所述目标下载标识时,从在缓存数据库中获取与所述目标磁力链接对应的目标种子文件,根据所述目标种子文件下载对应的文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
第二处理单元,用于在本地不存在所述目标下载标识时,触发实施如本发明的第一方面的任意一项方法获取所述目标种子文件,根据所述目标种子文件下载对应的文件,并生成与所述目标磁力链接唯一对应的所述目标下载标识保存在本地。
根据本发明的第五方面,提供一种基于磁力链接的下载设备,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述基于磁力链接的下载设备执行如本发明的第一方面的任意一项基于磁力链接的下载方法。
根据本发明的第六方面,提供一种基于磁力链接的下载设备,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述基于磁力链接的下载设备执行如本发明的第二方面的任意一项基于磁力链接的下载方法。
根据本发明的第七方面,提供一种可读存储介质,其中,所述可读存储介质用于存储可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取时,执行如本发明的第一方面所述的任意一项的基于磁力链接的下载方法,或者执行本发明的第二方面所述的任意一项的基于磁力链接的下载方法。
根据本发明的第八方面,提供基于磁力链接的下载系统,其中,包括:
如本发明的第三方面的基于磁力链接的下载装置以及如本发明的第四方面的基于磁力链接的下载装置;
或者,
如本发明的第五方面的基于磁力链接的下载设备以及如本发明的第六方面的基于磁力链接的下载设备。
根据本公开的一个实施例,根据所接收的目标磁力链接,在缓存有种子文件的缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件,当缓存数据库中存在目标种子文件时,下载目标种子文件实现对应的文件下载,针对根据不包括Tracker信息的磁力链接实施文件下载的场景,可以无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件,极大缩短获取种子文件的时间,提高种子文件的下载成功率,相应提高根据种子文件下载文件的成功率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明各个实施例的电子设备1000的硬件配置的例子的框图。
图2示出了本发明的第一实施例的基于磁力链接的下载方法的流程图。
图3示出了本发明的第一实施例的基于磁力链接的下载方法的又一流程图。
图4是本发明的第一实施例的基于磁力链接的下载方法的例子的示意图。
图5是本发明的第一实施例的基于磁力链接的下载装置3000的示意图。
图6是本发明的第一实施例的基于磁力链接的下载设备4000的示意图。
图7是本发明的第二实施例的基于磁力链接的下载方法的流程图。
图8是本发明的第二实施例的基于磁力链接的下载装置5000的示意图。
图9是本发明的第二实施例的基于磁力链接的下载设备6000的示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项基于磁力链接的下载方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
本发明实施例的总体构思,是提供一种基于磁力链接的下载方案,根据所接收的目标磁力链接,在缓存有种子文件的缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件,当缓存数据库中存在目标种子文件时,下载目标种子文件实现对应的文件下载,针对根据不包括Tracker信息的磁力链接实施文件下载的场景,可以无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件,极大缩短获取种子文件的时间,提高种子文件的下载成功率,相应提高根据种子文件下载文件的成功率。
<第一实施例>
<方法>
在本实施例中,提供一种基于磁力链接的下载方法。磁力链接是一种通过散列函数值来标识文件的链接格式,主要用于根据Bite Torrent协议在对等(Peer to Peer,P2P)网络中进行文件分享。在本实施例中,磁力链接中不包括Tracker信息,Tracker信息中于Bit Torrent协议下载所必须的Tracker服务器的地址以及相关服务器配置。对于不包括Tracker信息的磁力链接,通常需要从DHT网络中下载种子文件。
如图2所示,在本实施例中的基于磁力链接的下载方法包括:步骤S2100-S2200。
步骤S2100,根据所接收的目标磁力链接,在缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件。
缓存数据库是缓存有种子文件的数据库。在本实施例中,缓存数据库可以设置在通过高速、稳定提供数据存储、管理服务的服务器(例如集群服务器、云端服务器、刀片服务器等)中,提供高度、稳定的数据库服务,包括种子文件查询、种子文件下载等。
缓存数据库中每条数据库记录用于记录一条磁力链接以及与磁力链接对应的种子文件。设置数据库记录记录磁力链接与种子文件之间的对应关系,可以通过数据库记录,基于磁力链接,快速、准确查询到对应的种子文件。
通过根据接收的目标磁链接,在缓存数据库中查询是否存在对应的目标种子文件,可以结合后续步骤,在缓存数据库中存在目标种子文件时,下载目标种子文件实现对应的文件下载,无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件。
在一个例子中,磁力链接中包括种子哈希值。种子哈希值是根据与磁力链接对应的种子文件生成的哈希值,与该种子文件唯一对应。
以符合磁力链接的基本格式的磁力链接的元数据如“magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a”为例,其中,xt(extract topic)这个参数的内容就该磁力链接对应的种子哈希值。通过解析磁力链接的元数据,可以得到磁力链接中包括的种子哈希值。
在本例中,缓存数据库中的每条数据库记录,是以该数据库记录中的磁力链接中包括的种子哈希值作为对应的索引进行保存的。
对应的,步骤S2100可以包括:
以目标磁力链接中包括的目标种子哈希值作为索引,在缓存数据库中查询是否存在与目标种子哈希值对应的目标数据库记录,如果存在目标数据库记录,确定缓存数据库中存在所述目标种子文件,否则,确定缓存数据库中不存在目标种子文件。
以磁力链接中包括的种子哈希值作为索引,在缓存数据库中保存记录磁力链接与种子文件对应关系的数据库记录,可以根据目标磁力链接中包括的目标种子哈希值为索引,更快速、准确地查询种子数据库中是否存在与目标磁力链接对应的目标种子文件。
根据在缓存数据库查询目标种子文件的结果,可以进入:
步骤S2200,当缓存数据库中存在目标种子文件时,下载目标种子文件,以提供目标种子文件实现对应的文件下载。
在缓存数据库中存在目标种子文件时,下载目标种子文件实现对应的文件下载,可以针对根据不包括Tracker信息的磁力链接实施文件下载的场景,可以无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件,极大缩短获取种子文件的时间,提升种子文件下载的速度,并且提高种子文件的下载成功率,相应提高根据种子文件下载文件的成功率。
以上已经说明如图2所示的本实施例中提供的基于磁力链接的下载方法。在实际应用中,缓存数据库中可能不存在与目标磁力链接对应的目标种子文件。针对这种情况,在另一个例子中,本实施例中提供的基于磁力链接的下载方法,在步骤S2100-S2200之外,还可以如图3所示,包括:
步骤S2300,当缓存数据库不存在目标种子文件时,根据目标磁力链接,同时通过至少两种不同的种子文件预设下载方式,下载目标种子文件。
在缓存数据库不存在目标种子文件时,同时通过至少两种不同的种子文件预设下载方式来下载获取目标种子文件,可以避免缓存数据库中不存在目标种子文件时导致文件下载失败,并且能提高目标种子文件的下载成功率。
在本例中,种子文件预设下载方式是预先设置的、除了从缓存数据库下载种子文件之外的种子文件下载方式,具体可以包括DHT网络下载方式、工具协议下载方式以及种子库下载方式。
在更具体的例子中,根据目标磁力链接,通过DHT网络下载方式下载获取所述目标种子文件的步骤S2310可以包括:步骤S2311-S2313。
步骤S2311,与DHT网络建立连接。
DHT(Distributed Hash Table,纯分布式哈希表)网络是无任何服务器的、采用分布式存储资源的网络。在本例中,可以通过DHT网络支持的连接方式,与DHT网络建立连接,以根据目标磁力链接在DHT网络中下载目标种子文件。
步骤S2312,根据目标磁力链接中包括的种子哈希值,向DHT网络中的所有节点发送peer请求,请求返回持有与种子哈希值对应的种子文件的目标peer。
在本例中,目标磁力链接中包括目标种子哈希值。目标种子哈希值是根据与目标磁力链接对应的目标种子文件生成的哈希值,与目标种子文件唯一对应。
根据目标磁力链接中包括的种子哈希值,向DHT网络中的所有节点发送peer请求,可以令接收peer请求的DHT网络中的节点,根据peer请求中的种子哈希值,可以快速、准确地确认自身是否具有该持有与所述种子哈希值对应的种子文件的目标peer,提高反馈目标peer的效率。
在本例中,可以使用KPRC协议发送peer请求来向DHT网络中的节点请求返回目标peer。KPRC协议是Bit Torrent协议定义的一个通信消息格式协议,主要用来支持peer节点的获取(get_peer)和peer节点的声明(announce_peer),以及判活心跳(ping)、节点寻址(find_node),使用UDP(User Datagram Protoco,用户数据报协议)报文发送。通过KRPC协议的UDP报文,可以向DHT网络中的节点发送get_peers请求作为peer请求,向DHT网络中的节点表示查找用于下载目标种子文件的目标peer,其中get_peers请求根据目标种子哈希值生成,其中携带的参数格式为{"id":"<querying nodes id>","info_hash":"<20-byteinfohash of targettorrent>"};
如果被请求的DHT网络的节点中有对应info_hash的peer,即该节点中有用于下载目标种子文件的目标peer,该节点会返回一个关键字values,这是一个列表类型的字符串,每一个字符串包含了KPRC协议支持的CompactIP-address/portinfo格式的peer信息,用于指示目标peer;如果被请求的DHT网络的节点中没有对应infohash的peer,即该节点中没有用于下载目标种子文件的目标peer,那么该节点将返回关键字nodes,这个关键字包含了被请求节点的路由表中距离info_hash对应的peer最近的K个节点,使用KPRC协议支持的Compactnodeinfo格式回复。在上述两种情况下,含有关键字的token(令牌)都将被返回,以供最终能获取目标peer。
步骤S2313,接收返回的目标peer,与目标peer建立连接下载目标种子文件。
在本例中,根据目标磁力链接,通过工具协议下载方法下载获取所述目标种子文件的步骤S2320,可以包括:步骤S2321-S2322。
步骤S2321,获取工具协议集合。
工具协议集合中包括可获取的所有支持通过磁力链接下载种子文件的下载工具所提供的下载工具协议。
支持通过磁力链接下载种子文件的下载工具可以是任意支持通过磁力链接下载种子文件的应用软件,例如,支持Bit Torrent协议下载的下载软件等。不同的下载工具支持不同的下载工具协议。在本例中,可以通过人工搜集或者网络自动爬取等手段获取各种下载工具提供的下载工具协议,得到工具协议集合。工具协议集合可以预先获取后保存在本地或者可访问的存储介质中,以供在实施步骤S2321时直接访问读取。
步骤S2322,根据工具协议集合中包括的每个下载工具协议,访问与下载工具协议对应的种子库,通过目标磁力链接中包括的目标种子哈希值,在种子库中查询下载与目标种子哈希值对应的目标种子文件。
目标种子哈希值是根据目标种子文件生成的哈希值,与目标种子文件唯一对应。
每个下载工具都具有与其对应的、只能通过该下载工具提供的下载工具协议访问的种子库。该种子库中保存有只能通过该下载工具提供的下载工具协议能下载的种子文件。通过获取包括所有可获取的工具下载协议的工具协议集合,可以借助不同的下载工具提供的下载工具协议,访问该下载工具提供的种子库来查询下载目标种子文件,提高种子文件的下载成功率。并且,可以通过目标磁力链接中包括的目标种子哈希值在各个下载工具提供的种子库中查询种子文件,可以提高查询种子文件的速度以及准确率,相应提高种子文件的下载速度以及下载成功率。
在本例中,根据目标磁力链接,通过种子库下载方式下载获取目标种子文件的步骤S2330,可以包括:步骤S2331-S2332。
步骤S2331,获取种子库接口集合。
种子库集合中包括可获取的所有提供种子文件下载的种子库的接口。
种子库是保存有种子文件,可以提供种子文件下载的数据库。目前有许多不加密直接开放接口访问的公共种子库或者加密地、对特定对象开放接口访问的加密种子库。种子库的接口用于访问对应的种子库。在本例中,可以通过人工收集或者网络爬取等手段获取各个可以访问的种子库的接口,得到种子库集合。
步骤S2332,根据种子库接口集合中包括的每个种子库的接口,通过目标磁力链接中包括的目标种子哈希值生成种子文件下载请求,发送给对应的种子库,在该种子库中查询下载与目标种子哈希值对应的目标种子文件。
目标种子哈希值是根据目标种子文件生成的哈希值,与目标种子文件唯一对应。
通过获取包括所有可获取的种子库接口的种子库集合,可以通过不同种子库的接口,访问对应的种子库下载目标种子文件,提高种子文件的下载成功率。并且,可以通过目标磁力链接中包括的目标种子哈希值在各个种子库中查询种子文件,可以提高查询种子文件的速度以及准确率,相应提高种子文件的下载速度以及下载成功率。
上述例子中已经说明步骤S2300在缓存数据库中不存在目标种子文件时如何获取目标种子文件。在另一个例子中,在步骤S2300下载目标种子文件之后,还可以包括:
步骤S2400,在下载目标种子文件之后,在缓存数据库中添加用于记录目标磁力链接以及目标种子文件的目标数据库记录,实现在缓存数据库中缓存目标种子文件。
通过在下载目标种子文件之后,在缓存数据库中缓存目标种子文件,可以在下一次接收目标磁力链接时,直接在缓存数据库中根据目标磁力链接查询到目标数据库记录,根据目标数据库记录下载对应的目标种子文件,提高目标种子文件的获取速度以及下载成功率。
在更具体的例子中,目标磁力链接中包括目标种子哈希值。目标种子哈希值是根据目标种子文件生成的哈希值,与目标种子文件唯一对应。步骤S2400可以包括:
以目标种子哈希值作为索引,在缓存数据库中添加目标数据库记录。
目标种子哈希值包括在目标磁力链接中,与目标种子文件唯一对应,以目标种子哈希值为索引来添加记录目标磁力链接与目标种子文件的目标数据库记录,可以基于目标种子哈希值在缓存数据库中索引查询目标种子文件,快速、准确地找到缓存数据库中的目标种子文件,相应提高获取目标种子文件的速度以及成功率。
在上述各个例子中已经说明本实施例中提供的基于磁力链接的下载方法,是通过在接收磁力链接时,根据磁力链接查询下载缓存数据库中已缓存的种子文件来提升种子文件的下载速度以及下载成功率。在另一个例子中,本实施例中提供的基于磁力链接的下载方法,还可以包括设置缓存数据库的步骤S2010,具体包括:步骤S2011-S2012。
步骤S2011,根据每个所获取的磁力链接,同时通过至少两种不同的种子文件预设下载方式下载获取与磁力链接对应的种子文件。
在本例中,种子文件预设下载方式包括DHT网络下载方式、工具协议下载方式以及种子库下载方式。具体地,根据磁力链接,分别通过DHT网络下载方式、工具协议下载方式以及种子库下载方式来下载对应的种子文件的实施步骤,可以如上述步骤S2310-S2330,在此不再赘述。同时通过至少两种不同的种子文件预设下载方式来下载获取目标种子文件,可以并且能提高根据磁力链接下载目标种子文件的下载成功率。
步骤S2012,在获取每个种子文件之后,在缓存数据库中添加用于记录种子文件以及与种子文件对应的磁力链接的数据库记录,实现在缓存数据库中缓存种子文件。
通过在缓存数据库中添加用于记录种子文件以及与种子文件对应的磁力链接的数据库记录,可以在接收到对应的磁力链接时,根据磁力链接在缓存数据库中,快速、准确地查询到与磁力链接对应的种子文件进行下载,提高种子文件的下载速度和下载成功率。
在本例中,在磁力链接中包括根据对应的种子文件生成的种子哈希值时,还可以将种子哈希值作为索引来添加对应的数据库记录,在缓存数据库中缓存种子文件,以便在接收到对应的磁力链接时,根据种子哈希值为索引,在缓存数据库中,更快速、准确地查询到与磁力链接对应的种子文件进行下载,提高种子文件的下载速度和下载成功率。
应当理解的是,在本实施例中,可以预先实施步骤S2010设置缓存数据库,根据所有可获取的磁力链接预先下载对应的种子文件缓存中缓存数据库中,以供在接收目标磁力链接时可以从缓存数据库中下载目标种子文件,还可以在实施上述步骤S2100、S2200、S2300或S2400的过程中,同时设置缓存数据库,实现缓存数据库的实时更新。
<例子>
以下将结合图4进一步举例说明本实施例的基于磁力链接的下载方法。
如图4所示,本例中的基于磁力链接的下载方法包括步骤S201-207,本例的基于磁力链接的方法可以通过服务器实施。
步骤S201,接收到输入的磁力链接。
步骤S202,解析磁力链接的元数据,获取磁力链接包括的、根据与磁力链接对应的种子文件生成的种子哈希值。
步骤S203,根据种子哈希值为索引,查询缓存数据库中是否存在对应的种子文件,当缓存数据库中存在对应的种子文件时,进入步骤S204,否则,进入步骤S205。
缓存数据库中每条数据库记录用于记录一条磁力链接与对应的种子文件。
步骤S204,在缓存数据库中下载种子文件,进入步骤S207。
步骤S205,根据磁力链接,通过步骤S205-1的DHT网络下载方式、步骤S205-2工具协议下载方式、步骤S205-3的种子库下载方式,下载种子文件后,进入步骤S206、S207。
具体地步骤S205-1、S205-2、S206-3的实施,可以同上述步骤S2310、S2320、S2330,在此不再赘述。
步骤S206,以种子哈希值为索引,在缓存数据库中添加记录该磁力链接以及种子文件的数据库记录。
步骤S207,解析目标种子文件,根据目标种子文件下载对应的文件。
在本例中,可以在接收磁力链接时,在缓存数据库中查询下载对应的种子文件,提高种子文件的下载速度和下载成功率,在缓存数据库中无法下载到与磁力链接对应的种子文件时,同时通过三种种子文件下载方式下载种子文件,避免无法获取种子文件导致文件下载失败,同时可以提高种子文件的下载成功率,并将下载到的种子文件缓存在缓存数据库中,提高之后的种子文件下载成功率。
<基于磁力链接的下载装置>
在本实施例中,提供一种基于磁力链接的下载装置3000,如图5所示,包括:种子查询单元3100、种子下载单元3200,用于实施本实施例中提供的基于磁力链接的下载方法,在此不再赘述。
种子查询单元3100,用于根据所接收的目标磁力链接,在缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件。
可选地,所述磁力链接中包括种子哈希值;所述种子哈希值是根据与所述磁力链接对应的种子文件生成的哈希值;
所述缓存数据库中的每条数据库记录,以对应的所述磁力链接中包括的所述种子哈希值作为对应的索引进行保存;
所述种子查询单元3100还用于:
以所述目标磁力链接中包括的目标种子哈希值作为索引,在所述缓存数据库中查询是否存在与所述目标种子哈希值对应的目标数据库记录,如果存在所述目标数据库记录,确定所述缓存数据库中存在所述目标种子文件,否则,确定所述缓存数据库中不存在所述目标种子文件。
种子下载单元3200,用于当所述缓存数据库中存在所述目标种子文件时,下载所述目标种子文件,以提供所述目标种子文件实现对应的文件下载。
可选地,种子下载单元3200还用于:
当所述缓存数据库不存在所述目标种子文件时,根据所述目标磁力链接,同时通过至少两种不同的种子文件预设下载方式,下载所述目标种子文件;
其中,种子文件预设下载方式包括DHT网络下载方式、工具协议下载方式以及种子库下载方式。
可选地,种子下载单元3200实施的根据所述目标磁力链接,通过所述DHT网络下载方式下载获取所述目标种子文件的步骤,包括:
与DHT网络建立连接;
根据所述目标磁力链接中包括的目标种子哈希值,向DHT网络中的所有节点发送peer请求,请求返回持有与所述目标种子哈希值对应的种子文件的目标peer;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
接收返回的所述目标peer,与所述目标peer建立连接,下载所述目标种子文件;
种子下载单元3200实施的根据所述目标磁力链接,通过工具协议下载方法下载获取所述目标种子文件的步骤,包括:
获取工具协议集合;所述工具协议集合中包括可获取的所有支持通过磁力链接下载种子文件的下载工具所提供的下载工具协议;
根据所述工具协议集合中包括的每个所述下载工具协议,访问与所述下载工具协议对应的种子库,通过所述目标磁力链接中包括的目标种子哈希值,在所述种子库中查询下载与所述目标种子哈希值对应的所述目标种子文件;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
种子下载单元3200实施的根据所述目标磁力链接,通过所述种子库下载方式下载获取所述目标种子文件的步骤,包括:
获取种子库接口集合;所述种子库接口集合中包括可获取的所有提供种子文件下载的种子库的接口;
根据所述种子库接口集合中包括的每个种子库的接口,通过所述目标磁力链接中包括的目标种子哈希值生成种子文件下载请求,发送给对应的所述种子库,在所述种子库中查询下载与所述目标种子哈希值对应的所述目标种子文件;所述目标种子哈希值是根据所述目标种子文件生成的哈希值。
可选地,基于磁力链接的下载装置3000还包括种子缓存单元,用于在下载所述目标种子文件之后,在所述缓存数据库中添加用于记录所述目标磁力链接以及所述目标种子文件的目标数据库记录,实现在所述缓存数据库中缓存所述目标种子文件。
可选地,所述目标磁力链接中包括目标种子哈希值;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;所述种子缓存单元还用于:
以所述目标种子哈希值作为索引,在所述缓存数据库中添加所述目标数据库记录。
可选地,基于磁力链接的下载装置3000还包括缓存数据库设置单元,用于:
根据每个所获取的磁力链接,同时通过至少两种不同的种子文件预设下载方式下载获取与所述磁力链接对应的种子文件;
其中,种子文件预设下载方式包括DHT网络下载方式、工具协议下载方式以及种子库下载方式;
在获取每个种子文件之后,在所述缓存数据库中添加用于记录种子文件以及与种子文件对应的磁力链接的数据库记录,实现在所述缓存数据库中缓存种子文件。
本领域技术人员应当明白,可以通过各种方式来实现基于磁力链接的下载装置3000。例如,可以通过指令配置处理器来实现基于磁力链接的下载装置3000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现基于磁力链接的下载装置3000。例如,可以将基于磁力链接的下载装置3000固化到专用器件(例如ASIC)中。可以将基于磁力链接的下载装置3000分成相互独立的单元,或者可以将它们合并在一起实现。基于磁力链接的下载装置3000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在本实施例中,基于磁力链接的下载装置3000可以是支持基于磁力链接下载种子文件的应用软件,例如,基于磁力链接的下载装置3000可以是支持Bit Torrent协议下载文件的应用软件,或者,基于磁力链接的下载装置3000可以被封装成可被调用的SDK(SoftDevelopment Kit,软件开发工具包)或者补丁包、嵌入件等,供需要实施磁力链接下载种子文件的其他应用软件调用。
<基于磁力链接的下载设备>
在本实施例中,还提供一种基于磁力链接的下载设备4000,如图6所示,包括:
存储器4200,用于存储可执行的指令;
处理器4100,用于根据所述可执行的指令的控制,运行所述基于磁力链接的下载设备执行如本发明实施例所述的任意一项基于磁力链接的下载方法。
在本实施例中,基于磁力链接的下载设备4000可以具有各种实体形式,例如,基于磁力链接的下载设备4000可以是设置有缓存有种子文件的缓存数据库的缓存服务器,该缓存服务器可以选择具有高速、稳定性能的服务器集群、云端服务器等实现。
基于磁力链接的下载设备4000还可以包括其他装置,例如,如图1所示的电子设备1000,还可以包括显示装置等。
<可读存储介质>
在本实施例中,还提供一种可读存储介质,可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本实施例所述的基于磁力链接的下载方法。
可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
上述已经结合附图和例子说明本实施例中提供的基于磁力链接的下载方法、装置、设备及可读存储介质,根据所接收的目标磁力链接,在缓存有种子文件的缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件,当缓存数据库中存在目标种子文件时,下载目标种子文件实现对应的文件下载,针对根据不包括Tracker信息的磁力链接实施文件下载的场景,可以无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件,极大缩短获取种子文件的时间,提高种子文件的下载成功率,相应提高根据种子文件下载文件的成功率。
<第二实施例>
<方法>
在本实施例中,提供一种基于磁力链接的下载方法。磁力链接是一种通过散列函数值来标识文件的链接格式,主要用于根据Bite Torrent协议在对等(Peer to Peer,P2P)网络中进行文件分享。在本实施例中,磁力链接中不包括Tracker信息,Tracker信息中于Bit Torrent协议下载所必须的Tracker服务器的地址以及相关服务器配置。对于不包括Tracker信息的磁力链接,通常需要从DHT网络中下载种子文件。
如图7所示,基于磁力链接的下载方法包括:
步骤S3100,响应于所接收的文件下载请求,获取与文件下载请求对应的目标磁力链接。
文件下载请求可以是根据用户实施的文件下载操作触发生成的请求信息,可以通过提供的文件下载界面接收的用户实施的文件下载操作,实现接收文件下载请求。
在文件下载请求中包括与待下载的文件相关的信息。在本实施例中,文件下载请求中通常会包括用于下载文件所需的种子文件对应的目标磁力链接,可以通过解析文件下载请求获取目标磁力链接。
步骤S3200,确定本地是否存在与目标磁力链接唯一对应的目标下载标识。
获取目标磁力链接后,可以在本地保存的文件、本地缓存或者本地存储中查询确定是否与目标磁力链接唯一对应的目标下载标识。
目标下载标识是用于标识当前设备曾经根据第一实施例中提供的方法基于目标磁力链接获取对应的目标种子文件实施文件下载。
目标下载标识与目标磁力链接唯一对应,可以是目标磁力连接本身,也可以是基于各种规则设置的、与目标磁力链接唯一对应的数值或者字符串。在一个例子中,目标磁力链接中包括目标种子哈希值,目标种子哈希值是根据目标种子文件生成的哈希值,目标磁力链接可以是目标磁力链接包括的目标种子哈希值。
步骤S3300,在本地存在目标下载标识时,从在缓存数据库中下载与目标磁力链接对应的目标种子文件,根据目标种子文件下载对应的文件。
本地存在目标下载标识时,意味着当前设备曾经根据第一实施例中提供的方法基于目标磁力链接获取对应的目标种子文件实施文件下载,对应的缓存数据库中会保存与目标种子文件对应的数据库记录,可以直接从缓存数据库中下载与目标磁力链接对应的目标种子文件,无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件,极大缩短获取种子文件的时间,提高种子文件的下载成功率,相应提高根据种子文件下载文件的成功率。
缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件。关于缓存数据库在第一实施例中已经详细描述,在此不再赘述。
从在缓存数据库中获取与目标磁力链接对应的目标种子文件的步骤,可以通过类似第一实施例中从缓存数据库中下载目标种子文件的步骤,根据目标磁力连接或者目标磁力链接中包括目标种子哈希值,在缓存数据库中查询确定对应的数据库记录,根据数据库记录下载目标种子文件,在此不再赘述。
步骤S3400,在本地不存在目标下载标识时,触发实施如本发明第一实施例的方法获取目标种子文件,根据目标种子文件下载对应的文件,并生成与目标磁力链接唯一对应的目标下载标识保存在本地。
本地不存在目标下载标识时,意味着当前设备此前没有根据第一实施例中提供的方法基于目标磁力链接获取对应的目标种子文件实施文件下载,对应的缓存数据库中不能确定会保存与目标种子文件对应的数据库记录,因此,通过触发实施如本发明第一实施例的方法获取目标种子文件,可以提高种子文件的获取效率,同时,在获取目标种子文件后生成对应的目标下载标识保存在本地,可以在下次接收与目标磁力链接对应的文件下载请求时,直接在缓存数据库中下载对应的目标种子文件,提高目标种子文件的获取速度以及下载成功率。
在一个更具体的例子中,目标磁力链接中包括目标种子哈希值;目标种子哈希值是根据目标种子文件生成的哈希值;生成与目标磁力链接唯一对应的目标下载标识的步骤包括:
从目标磁力链接中获取目标种子哈希值,作为目标下载标识。
目标种子哈希值包括在目标磁力链接中,与目标种子文件唯一对应,以目标种子哈希值作为目标下载标识保存在本地,不仅可以令后续文件下载过程中,在下载与目标磁力链接对应的文件时,可以直接从缓存数据库下载目标种子文件,还可以通过目标种子哈希值作为索引,在缓存数据库中索引查询目标种子文件,快速、准确地找到缓存数据库中的目标种子文件,进一步提高获取目标种子文件的速度。
<基于磁力链接的下载装置>
在本实施例中,提供一种基于磁力链接的下载装置5000,如图8所示,包括:链接获取单元5100、标识确定单元5200、第一处理单元5300以及第二处理单元5400,用于实施本实施例中提供的基于磁力链接的下载方法,在此不再赘述。
链接获取单元5100,用于响应于所接收的文件下载请求,获取与所述文件下载请求对应的目标磁力链接;
标识确定单元5200,用于确定本地是否存在与所述目标磁力链接唯一对应的目标下载标识;
第一处理单元5300,用于在本地存在所述目标下载标识时,从在缓存数据库中获取与所述目标磁力链接对应的目标种子文件,根据所述目标种子文件下载对应的文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
第二处理单元5400,用于在本地不存在所述目标下载标识时,触发实施如第一实施例所述的任意一项方法获取所述目标种子文件,根据所述目标种子文件下载对应的文件,并生成与所述目标磁力链接唯一对应的所述目标下载标识保存在本地。
可选地,所述目标磁力链接中包括目标种子哈希值;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;所述第二处理单元5400还用于:
从所述目标磁力链接中获取所述目标种子哈希值,作为所述目标下载标识。
本领域技术人员应当明白,可以通过各种方式来实现基于磁力链接的下载装置5000。例如,可以通过指令配置处理器来实现基于磁力链接的下载装置5000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现基于磁力链接的下载装置5000。例如,可以将基于磁力链接的下载装置5000固化到专用器件(例如ASIC)中。可以将基于磁力链接的下载装置5000分成相互独立的单元,或者可以将它们合并在一起实现。基于磁力链接的下载装置5000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在本实施例中,基于磁力链接的下载装置5000可以是支持基于磁力链接下载种子文件的应用软件的客户端,例如,基于磁力链接的下载装置5000可以是支持Bit Torrent协议下载文件的应用软件的客户端等。
<基于磁力链接的下载设备>
在本实施例中,还提供一种基于磁力链接的下载设备6000,如图9所示,包括:
存储器6200,用于存储可执行的指令;
处理器6100,用于根据所述可执行的指令的控制,运行所述基于磁力链接的下载设备执行如本发明实施例所述的任意一项基于磁力链接的下载方法。
在本实施例中,基于磁力链接的下载设备6000可以具有各种实体形式,例如,基于磁力链接的下载设备6000可以是如手机、平板电脑、掌上电脑这样的移动终端,更具体的例子中,基于磁力链接的下载设备6000可以是安装或加载有支持基于磁力链接下载种子文件的应用软件。
基于磁力链接的下载设备6000还可以包括其他装置,例如,如图1所示的电子设备1000,还可以包括显示装置等。
<可读存储介质>
在本实施例中,还提供一种可读存储介质,可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本实施例所述的基于磁力链接的下载方法。
可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
上述已经结合附图明本实施例中提供的基于磁力链接的下载方法、装置、设备及可读存储介质,通过设置下载标识来标识此前是否基于目标磁力链接下载文件,可以在接收与目标磁力链接对应的文件下载请求时,通过确定本地存在与目标磁力链接对应的目标下载标识时,直接根据目标磁力连接从缓存数据库中下载对应的目标种子文件实施文件下载,可以无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件,极大缩短获取种子文件的时间,提高种子文件的下载成功率,相应提高根据种子文件下载文件的成功率。
<第三实施例>
在本实施例中,提供一种基于磁力链接的下载系统,包括:
如第一实施例中提供的基于磁力链接的下载装置3000以及如第二实施例中提供的基于磁力链接的下载装置5000;
或者,
如第一实施例中提供的基于磁力链接的下载设备4000以及如第二实施例中提供的基于磁力链接的下载设备6000。
在本实施例中,第一实施例中提供的基于磁力链接的下载装置3000以及如第二实施例中提供的基于磁力链接的下载装置5000之间可以通过局域网或者广域网连接,或者通过无线网络或者有线网络连接;或者,第一实施例中提供的基于磁力链接的下载设备4000以及如第二实施例中提供的基于磁力链接的下载设备6000之间可以通过局域网或者广域网连接,或者通过无线网络或者有线网络连接,以实施基于磁力链接的下载系统可以实施的基于磁力链接的下载方法。
<例子>
以下将举例进一步说明通过本实施例的基于磁力链接的下载系统来实施的基于磁力链接的下载方法。
在这个例子中,基于磁力链接的下载系统包括作为基于磁力链接的下载设备4000的客户端以及基于磁力链接的下载设备6000的服务器,服务器中设置有缓存数据库。
基于磁力链接的下载方法包括在客户端实施的步骤401-S407,以及在服务器实施的步骤601-S607。
步骤S401,客户端接收文件下载请求。
步骤S402,客户端解析文件下载请求中包括的目标磁力链接。
步骤S403,客户端解析目标磁力链接的元数据,获取目标磁力链接包括的、根据与目标磁力链接对应的目标种子文件生成的目标种子哈希值,查询本地是否存在与目标种子哈希值相同的目标下载标识,如果存在,进入步骤S404,如果不存在,进入步骤S406;
步骤S404,客户端将目标种子哈希值发送给服务器,获取服务器以目标下载标识为索引在缓存数据库中查询返回的目标种子文件,进入步骤S405。
步骤S405,客户端根据目标种子文件下载文件。
步骤S406,客户端将目标磁力链接发送给服务器,触发服务器实施步骤S601-S607,返回目标种子文件后,进入步骤S407。
步骤S407,客户端根据目标种子文件下载文件,并将目标种子哈希值作为目标下载标识保存在本地。
步骤S601,服务器接收到客户端发送的目标磁力链接。
步骤S602,服务器解析目标磁力链接的元数据,获取目标磁力链接包括的、根据与目标磁力链接对应的目标种子文件生成的目标种子哈希值。
步骤S603,根据种子哈希值为索引,查询缓存数据库中是否存在对应的种子文件,当缓存数据库中存在对应的种子文件时,进入步骤S604,否则,进入步骤S605。
缓存数据库中每条数据库记录用于记录一条磁力链接与对应的种子文件。
步骤S604,在缓存数据库中下载目标种子文件,返回客户端。
步骤S605,根据目标磁力链接,同时通过DHT网络下载方式、工具协议下载方式以及种子库下载方式,下载到目标种子文件后,进入步骤S606、S607。
步骤S606,以目标种子哈希值为索引,在缓存数据库中添加记录目标磁力链接以及目标种子文件的数据库记录。
步骤S607,向客户端返回目标种子文件。
在这个例子中,客户端可以在接收文件下载请求时,通过确定本地存在与文件下载请求中的目标磁力链接包括的目标种子哈希值相同的目标下载标识,直接从服务器中设置的缓存数据库中以目标种子哈希值为索引,查询下载对应的目标种子文件实施文件下载,实现可以无需连接到DHT网络就能从高速、稳定的缓存数据库中下载种子文件,极大缩短获取种子文件的时间,提高种子文件的下载成功率,相应提高根据种子文件下载文件的成功率。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (14)

1.一种基于磁力链接的下载方法,其中,包括:
根据所接收的目标磁力链接,在缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
所述磁力链接中包括种子哈希值;所述种子哈希值是根据与所述磁力链接对应的种子文件生成的哈希值;
所述缓存数据库中的每条数据库记录,以对应的所述磁力链接中包括的所述种子哈希值作为对应的索引进行保存;
所述根据所接收的目标磁力链接,在所述缓存数据库中查询是否存在与所述目标磁力链接对应的目标种子文件的步骤包括:
以所述目标磁力链接中包括的目标种子哈希值作为索引,在所述缓存数据库中查询是否存在与所述目标种子哈希值对应的目标数据库记录,如果存在所述目标数据库记录,确定所述缓存数据库中存在所述目标种子文件,否则,确定所述缓存数据库中不存在所述目标种子文件;
当所述缓存数据库中存在所述目标种子文件时,下载所述目标种子文件,以提供所述目标种子文件实现对应的文件下载。
2.根据权利要求1所述的方法,其中,所述方法还包括:
当所述缓存数据库不存在所述目标种子文件时,根据所述目标磁力链接,同时通过至少两种不同的种子文件预设下载方式,下载所述目标种子文件;
其中,种子文件预设下载方式包括DHT网络下载方式、工具协议下载方式以及种子库下载方式。
3.根据权利要求2所述的方法,其中,所述方法还包括:
根据所述目标磁力链接,通过所述DHT网络下载方式下载获取所述目标种子文件的步骤,包括:
与DHT网络建立连接;
根据所述目标磁力链接中包括的目标种子哈希值,向DHT网络中的所有节点发送peer请求,请求返回持有与所述目标种子哈希值对应的种子文件的目标peer;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
接收返回的所述目标peer,与所述目标peer建立连接,下载所述目标种子文件;
以及,
根据所述目标磁力链接,通过工具协议下载方法下载获取所述目标种子文件的步骤,包括:
获取工具协议集合;所述工具协议集合中包括可获取的所有支持通过磁力链接下载种子文件的下载工具所提供的下载工具协议;
根据所述工具协议集合中包括的每个所述下载工具协议,访问与所述下载工具协议对应的种子库,通过所述目标磁力链接中包括的目标种子哈希值,在所述种子库中查询下载与所述目标种子哈希值对应的所述目标种子文件;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
根据所述目标磁力链接,通过所述种子库下载方式下载获取所述目标种子文件的步骤,包括:
获取种子库接口集合;所述种子库接口集合中包括可获取的所有提供种子文件下载的种子库的接口;
根据所述种子库接口集合中包括的每个种子库的接口,通过所述目标磁力链接中包括的目标种子哈希值生成种子文件下载请求,发送给对应的所述种子库,在所述种子库中查询下载与所述目标种子哈希值对应的所述目标种子文件;所述目标种子哈希值是根据所述目标种子文件生成的哈希值。
4.根据权利要求2所述的方法,其中,还包括:
在下载所述目标种子文件之后,在所述缓存数据库中添加用于记录所述目标磁力链接以及所述目标种子文件的目标数据库记录,实现在所述缓存数据库中缓存所述目标种子文件。
5.根据权利要求4所述的方法,其中,
所述目标磁力链接中包括目标种子哈希值;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
所述在下载所述目标种子文件之后,在所述缓存数据库中添加用于记录所述目标磁力链接以及所述目标种子文件的目标数据库记录的步骤包括:
以所述目标种子哈希值作为索引,在所述缓存数据库中添加所述目标数据库记录。
6.根据权利要求1所述的方法,其中,还包括设置缓存数据库的步骤,包括:
根据每个所获取的磁力链接,同时通过至少两种不同的种子文件预设下载方式下载获取与所述磁力链接对应的种子文件;
其中,种子文件预设下载方式包括DHT网络下载方式、工具协议下载方式以及种子库下载方式;
在获取每个种子文件之后,在所述缓存数据库中添加用于记录种子文件以及与种子文件对应的磁力链接的数据库记录,实现在所述缓存数据库中缓存种子文件。
7.一种基于磁力链接的下载方法,其中,包括:
响应于所接收的文件下载请求,获取与所述文件下载请求对应的目标磁力链接;
确定本地是否存在与所述目标磁力链接唯一对应的目标下载标识;
在本地存在所述目标下载标识时,从缓存数据库中下载与所述目标磁力链接对应的目标种子文件,根据所述目标种子文件下载对应的文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
在本地不存在所述目标下载标识时,触发实施如权利要求1-6任意一项所述的方法获取所述目标种子文件,根据所述目标种子文件下载对应的文件,并生成与所述目标磁力链接唯一对应的所述目标下载标识保存在本地。
8.根据权利要求7所述的方法,其特征在于,
所述目标磁力链接中包括目标种子哈希值;所述目标种子哈希值是根据所述目标种子文件生成的哈希值;
所述生成与所述目标磁力链接唯一对应的所述目标下载标识的步骤包括:
从所述目标磁力链接中获取所述目标种子哈希值,作为所述目标下载标识。
9.一种基于磁力链接的下载装置,其中,包括:
种子查询单元,用于根据所接收的目标磁力链接,在缓存数据库中查询是否存在与目标磁力链接对应的目标种子文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
所述磁力链接中包括种子哈希值;所述种子哈希值是根据与所述磁力链接对应的种子文件生成的哈希值;
所述缓存数据库中的每条数据库记录,以对应的所述磁力链接中包括的所述种子哈希值作为对应的索引进行保存;
所述根据所接收的目标磁力链接,在所述缓存数据库中查询是否存在与所述目标磁力链接对应的目标种子文件,包括:
以所述目标磁力链接中包括的目标种子哈希值作为索引,在所述缓存数据库中查询是否存在与所述目标种子哈希值对应的目标数据库记录,如果存在所述目标数据库记录,确定所述缓存数据库中存在所述目标种子文件,否则,确定所述缓存数据库中不存在所述目标种子文件;
种子下载单元,用于当所述缓存数据库中存在所述目标种子文件时,下载所述目标种子文件,以提供所述目标种子文件实现对应的文件下载。
10.一种基于磁力链接的下载装置,其中,包括:
链接获取单元,用于响应于所接收的文件下载请求,获取与所述文件下载请求对应的目标磁力链接;
标识确定单元,用于确定本地是否存在与所述目标磁力链接唯一对应的目标下载标识;
第一处理单元,用于在本地存在所述目标下载标识时,从在缓存数据库中获取与所述目标磁力链接对应的目标种子文件,根据所述目标种子文件下载对应的文件;
其中,所述缓存数据库中每条数据库记录用于记录一条磁力链接以及与所述磁力链接对应的种子文件;
第二处理单元,用于在本地不存在所述目标下载标识时,触发实施如权利要求1-6任意一项所述的方法获取所述目标种子文件,根据所述目标种子文件下载对应的文件,并生成与所述目标磁力链接唯一对应的所述目标下载标识保存在本地。
11.一种基于磁力链接的下载设备,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述基于磁力链接的下载设备执行如权利要求1-6任意一项所述的基于磁力链接的下载方法。
12.一种基于磁力链接的下载设备,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述基于磁力链接的下载设备执行如权利要求7或8所述的基于磁力链接的下载方法。
13.一种可读存储介质,其中,所述可读存储介质用于存储可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取时,执行如权利要求1-6任意一项所述的基于磁力链接的下载方法,或者,执行如权利要求7或8所述的基于磁力链接的下载方法。
14.一种基于磁力链接的下载系统,其中,包括:
如权利要求9所述的基于磁力链接的下载装置以及如权利要求10所述的基于磁力链接的下载装置;
或者,
如权利要求11所述的基于磁力链接的下载设备以及如权利要求12所述的基于磁力链接的下载设备。
CN201910393818.7A 2019-05-13 2019-05-13 基于磁力链接的下载方法、设备、系统及可读存储介质 Active CN111934849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910393818.7A CN111934849B (zh) 2019-05-13 2019-05-13 基于磁力链接的下载方法、设备、系统及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910393818.7A CN111934849B (zh) 2019-05-13 2019-05-13 基于磁力链接的下载方法、设备、系统及可读存储介质

Publications (2)

Publication Number Publication Date
CN111934849A CN111934849A (zh) 2020-11-13
CN111934849B true CN111934849B (zh) 2023-05-05

Family

ID=73282561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910393818.7A Active CN111934849B (zh) 2019-05-13 2019-05-13 基于磁力链接的下载方法、设备、系统及可读存储介质

Country Status (1)

Country Link
CN (1) CN111934849B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134356B (zh) * 2022-09-01 2022-12-06 深圳市华曦达科技股份有限公司 针对中心节点分发监控节点下载的方法、系统和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002296A (zh) * 2017-06-06 2018-12-14 中兴通讯股份有限公司 一种软件下载方法、装置及基站

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103457976B (zh) * 2012-06-01 2017-09-29 腾讯科技(深圳)有限公司 数据下载方法和系统
WO2013120412A1 (zh) * 2012-02-17 2013-08-22 腾讯科技(深圳)有限公司 数据下载方法、终端、服务器和系统
CN102638577B (zh) * 2012-03-27 2014-08-06 北京蓝汛通信技术有限责任公司 一种采集种子文件的方法、设备及系统
CN103269382B (zh) * 2013-06-13 2016-09-28 中国科学院计算技术研究所 一种BitTorrent和eMule下载文件的关联方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002296A (zh) * 2017-06-06 2018-12-14 中兴通讯股份有限公司 一种软件下载方法、装置及基站

Also Published As

Publication number Publication date
CN111934849A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN109040343B (zh) 域名解析方法、装置、计算机可读存储介质及电子设备
CA2615085C (en) Method, apparatus and computer program product providing an application integrated mobile device search solution using context information
US20110289126A1 (en) Content delivery network
WO2020248599A1 (zh) 基于区块链的文件处理方法、装置、设备及存储介质
US20170154073A1 (en) System and method for retrieving data
US10498694B2 (en) Mapping IPv4 knowledge to IPv6
US8990227B2 (en) Globally unique identification of directory server changelog records
CN107566477B (zh) 一种在分布式文件系统集群中获取文件的方法和装置
CN107103011B (zh) 终端数据搜索的实现方法和装置
WO2021120763A1 (zh) 多网卡服务器的网卡绑定方法、装置、电子设备及存储介质
CN110413845B (zh) 基于物联网操作系统的资源存储方法及装置
CN114676135A (zh) 数据存储方法、可读介质和电子设备
CN111934849B (zh) 基于磁力链接的下载方法、设备、系统及可读存储介质
EP2530611A1 (en) Methods and apparatuses for a network based on hierarchical name structure
CN113468445B (zh) 请求处理方法、装置、电子设备和计算机可读介质
CN114218540A (zh) 项目访问方法及装置
US20210058652A1 (en) System and method of building a distributed network for essence management and access
CN111797334A (zh) 一种网址访问方法、装置、电子设备及存储介质
JP2020004380A (ja) ウェアラブルデバイス、情報処理方法、装置及びシステム
JP3873975B2 (ja) ドメイン名別ビューアクセス制御方法及びdnsサーバシステム装置及びドメイン名別ビューアクセス制御プログラム及びドメイン名別ビューアクセス制御プログラムを格納した記憶媒体
US8745072B2 (en) Virtual directory server changelog
CN113590534A (zh) 存档处理方法、系统及装置
EP2998886A1 (en) Reputation-based discovery of content objects
CN111221781A (zh) 一种数据查找方法、装置、电子设备及系统
JPWO2008111132A1 (ja) 通信制御システム

Legal Events

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