CN103365865A - 数据存储方法、数据下载方法及其装置 - Google Patents

数据存储方法、数据下载方法及其装置 Download PDF

Info

Publication number
CN103365865A
CN103365865A CN2012100871446A CN201210087144A CN103365865A CN 103365865 A CN103365865 A CN 103365865A CN 2012100871446 A CN2012100871446 A CN 2012100871446A CN 201210087144 A CN201210087144 A CN 201210087144A CN 103365865 A CN103365865 A CN 103365865A
Authority
CN
China
Prior art keywords
url
hash value
file
template
request
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.)
Granted
Application number
CN2012100871446A
Other languages
English (en)
Other versions
CN103365865B (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 CN201210087144.6A priority Critical patent/CN103365865B/zh
Priority to PCT/CN2013/071616 priority patent/WO2013143363A1/en
Priority to US14/232,273 priority patent/US9183214B2/en
Publication of CN103365865A publication Critical patent/CN103365865A/zh
Application granted granted Critical
Publication of CN103365865B publication Critical patent/CN103365865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种数据存储方法、数据下载方法及其装置,该数据存储方法包括:当接收到入库请求时,获取其中携带的统一资源定位符URL;判断自身是否存储有与所述URL对应的URL模板;其中,所述URL模板与同一域名下的同一文件的不同URL对应;当判断结果为是时,所述URL不存储到所述URL资源索引数据库,并结束此次入库操作;当判断结果为否时,确定与所述URL对应的URL模板,以及所述URL对应的文件的hash值和所述URL模板的hash值,并将所述文件的hash值与所述URL模板的hash值的对应关系信息存储到URL索引数据库。在本发明中,减少了URL索引数据库的存储资源消耗。

Description

数据存储方法、数据下载方法及其装置
技术领域
本发明涉及软件测试领域,尤其涉及一种数据存储方法、数据下载方法及其装置。
背景技术
随着宽带网络的普及以及网络传输速度的提高,利用互联网资源实现在线多媒体下载、播放已成为可能。包括音频、视频等多媒体信息的传输、播放也均已经实现。然而,为了进一步提高现有网络的利用资源,各种提高下载速度的方式被提出,包括P2P(Peer to Peer,对等)方式,实现点对点的对等网络,即用户端与用户端直接形成上传和下载,下载速度和另一端上传速度密切相关,由于中国用户的上传速度并不快,而且一些人还会限制上传速度,这就导致了P2P方式的上传带宽资源缺乏,进而导致P2P的速度较慢;P2S(Peer to Server,点对服务器)方式,基于用户对服务器,用户直接到某个大型的下载网站去下载文件,文件存储在网站服务器上,因此速度可以得到保证,但仍存在资源分散、不易搜索等问题;P2SP(Peer to Server&Peer,点对服务器和点)方式,基于用户对服务器和用户机制,不同于P2P,也不同于P2S,P2SP下载方式实际上对P2P技术的进一步延伸,它不但支持P2P技术,同时还通过检索数据库把服务器资源和P2P资源整合到了一起,用户下载某个文件时,会自动搜索其他资源,选择合适的资源进行加速,这使得在下载的稳定性和下载的速度上,比传统的P2P有了非常大的提高。
在现有的P2SP技术中,当下载一个文件时,数据来源分为原始链接、P2P网络以及第三方镜像的辅助源,然后通过完整文件的唯一标识(比如MD5(Message Digest Algorithm 5,信息摘要算法5)或者SHA(Secure Hash Algorithm,安全散列算法))把文件统一串联起来。现有P2SP下载的具体发布流程图可以如图1所示,具体包括以下步骤:
步骤101、下载客户端需要下载文件的时候从互联网或者资源网站获取URL(Uniform Resource Locator,统一资源定位符)链接。
步骤102、下载客户端以URL链接为入口,从资源索引服务器,查询多资源及文件Hash,然后从查询到的URL下载数据。
步骤103、下载客户端下载完成后,注册文件信息到Tracker(跟踪点)服务器。
步骤104、其他下载客户端可以通过Tracker服务查询到已经下载完成的Peer和正在下载的Peer。
步骤105、其他下载客户端开始多源P2P下载,在Peer之间相互交换数据。
步骤106、下载完成以后将相关的统计信息上报给统计服务器。
其中,服务器获取资源来源的最主要有2个途径:客户端主动上报,以及后台服务器通过爬虫***主动从互联网上爬取和收集相应的下载链接记录,然后写入资源索引数据库供客户端查询。URL索引收录的数量和质量对客户端多源下载总体的服务质量有很大的影响。
现有HTTP(Hyper Text Transport Protocol,超文本传输协议)下载协议中,由于URL链接本身的特性,很容易出现通过技术手段将不在自己服务器上的内容,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上提供给用户,比如供用户下载。由于浏览一个完整的网页并不是一次全部传送到客户端的,如果客户请求的是一个带有许多图片和其它信息的页面,那么最先的一个HTTP 请求被传送回来的是这个页面的HTML (Hypertext Markup Language,超文本标记语言)文本,客户端浏览器对这段文本解释执行后,发现其中还有其它文件,客户端浏览器会再发送一条或者更多HTTP 请求,当这些请求被处理后其它文件才被传送到客户端,然后浏览器将这些文件放到页面的正确位置。一个完整的页面要经过发送多条HTTP 请求才能够被完整地显示。基于这样的机制,盗链就成为可能,服务提供商完全可以在自己的页面中嵌入别人的链接,显示在自己的页面上,以达到盗链的目的。
目前,通常使用的防盗链方法是提高盗链的门槛,让网站提供的下载地址随着请求来源的变化而变化,在所请求的链接当中加入随机的数字混淆链接或加入时间戳信息。通过该方法,即使盗链的网站把原来的链接包含过去,很快链接也就失效了,无法提供正常的下载。由于这种链接的生成是由源链的原始网站控制的,因此,可以通过修改链接生成的规则来提高盗链的门槛。
例如,某网站在一段时间内提供的游戏文件17173_tlbb_0330580.exe下载链接的地址形式如下:
http://cdn1.download.17173.com/wangsu_key_XXXX00XXXXXXXXXX0059XXXXXXXX4800XXXfXXXXXX00XXXX/tl/17173_tlbb_0330580.exe
其中,XXXXXX为随机变换的数字,对于同一个文件,不同时刻去请求,XXXXXX都是不一样的。
从P2SP下载***的后台下载日志当中可以看到大量的在下载链接URL地址路径当中存在有规律随机下载地址上报,现有的P2SP多源下载技术方案当中,客户端下载完成后会收录用户添加到任务对应的原始下载链接,作为资源收录到数据库中,下次有用户查询的时候,将收录的链接作为下载资源返回给客户端。由于多源下载***会收录URL下载链接,主要是通过客户端上报和服务器爬虫爬取。通常直接写入URL索引数据库和URL资源数据库。数据库当中就会对同一个文件收录非常多的链接,比如1个文件1天被客户端下载10W次,就会产生10W个不同的链接;对于热门文件,同一个Hash对应的URL集合内容很大,甚至多达几十万个,同时也会出现数十万个URL对应同一个Hash文件的情况,这样在查询URL资源集合的时候或者URL对应Hash的时候,无用的记录导致占永大量的磁盘空间,导致***磁盘IO繁忙,降低资源查询的效率。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
1、由于存在大量同样规格的URL对应同一个Hash,对应同一个Hash需要在数据库中和内存中保存多条映射记录,占用了大量的存储索引资源,影响***的查询效率和资源收录的效率;
2、由于原始网站对URL链接加入随机参数调整链接形式,导致P2SP软件在收录下载链接的时候,大量同样的链接(对应同一个服务器的同一个文件)被收录,即使返回到客户端只是一个有效的下载链接,但是却占用了大量的服务器存储资源,影响资源查询的效率。
发明内容
本发明提供一种数据存储方法、数据下载方法及其装置,以减少了URL索引数据库的存储资源消耗。
为了实现以上目的,本发明实施例提供了一种数据存储方法,包括:
当接收到入库请求时,获取其中携带的统一资源定位符URL;
判断自身是否存储有与所述URL对应的URL模板;其中,所述URL模板与同一域名下的同一文件的不同URL对应;
当判断结果为是时,所述URL不存储到所述URL资源索引数据库,并结束此次入库操作;
当判断结果为否时,确定与所述URL对应的URL模板,以及所述URL对应的文件的hash值和所述URL模板的hash值,并将所述文件的hash值与所述URL模板的hash值的对应关系信息存储到所述URL索引数据库。
本发明实施例还提供一种基于上述数据存储方法实现的数据下载方法,包括:
所述URL索引数据服务器接收资源索引服务器发送的用于查询请求下载的文件的hash值的查询请求,其中携带所述请求下载的文件的URL;
所述URL索引数据服务器根据所述请求下载的文件的URL确定与所述URL对应的URL模板,并确定所述URL模板的hash值;
所述URL索引数据服务器根据所述URL模板的hash值查询对应的文件hash值,并将查询到的文件hash值返回给所述资源索引服务器,由所述资源索引服务器根据所述文件hash值获取对应的URL集合并返回给下载客户端,以使所述下载客户端根据所述URL集合进行多源下载。
本发明实施例还提供一种数据存储装置,包括:
存储模块,用于存储URL模板;
获取模块,用于当所述数据存储装置接收到入库请求时,获取其中携带的统一资源定位符URL;
判断模块,用于判断所述存储模块是否存储有与所述URL对应的URL模板;其中,所述URL模板与同一域名下的同一文件的不同URL对应;
处理模块,用于当所述判断模块的判断结果为是时,所述URL不存储到所述URL资源索引数据库,并结束此次入库操作;当所述判断模块的判断结果为否时,确定与所述URL对应的URL模板,以及所述URL对应的文件的hash值和所述URL模板的hash值,并将所述文件的hash值与所述URL模板的hash值的对应关系信息存储到所述URL索引数据库。
本发明实施例还提供一种URL索引数据服务器,其特征在于,包括:
接收模块,用于接收资源索引服务器发送的用于查询请求下载文件的hash值的查询请求,其中携带有所述请求下载的文件的URL;
确定模块,用于根据所述请求下载的文件的URL确定与所述URL对应的URL模板,并确定所述URL模板的hash值;
处理模块,用于根据所述URL模板的hash值查询对应的文件hash值,并将查询到的文件hash值返回给所述资源索引服务器,由所述资源索引服务器根据所述文件hash值获取对应的URL集合并返回给下载客户端,以使所述下载客户端根据所述URL集合进行多源下载。
在本发明上述实施例中,接收到入库请求后,仅将入库请求中携带的URL对应的URL模板的hash值和该URL对应的文件的hash值的对应关系存储到URL索引数据库,其中,该URL模板与同一域名下的同一文件的不同URL对应,减少了URL索引数据库的存储资源消耗。 
附图说明
图1为现有技术中P2SP下载具体发布流程图
图2为本发明实施例提供的一种数据存储的方法流程示意图;
图3为本发明实施例提供的一种数据下载的方法流程示意图;
图4为本发明实施例提出的一种具体应用场景的示意图;
图5为本发明实施例提供的一种资源入库服务器的结构示意图;
图6为本发明实施例提供的一种URL索引数据服务器的结构示意图。
具体实施方式
针对上述现有技术中的缺陷,本发明实施例提供一种数据存储和数据下载的技术方案。在该技术方案中,对不同域名下的同一个文件(即同一网站的同一个文件)的URL,进行分析,将URL当中可变数字部分和不变的部分隔离,对可变但是不影响判断URL最终对应文件的部分用通用字符代替,从而减少URL索引数据库收录的规模和需要保存的数据量。通过本发明能够提高网络资源收录效率,减少URL索引数据库的大小。
例如,对于URL:
http://disk23.sh.com/myfile/115816391/dpin/XXXXXXXXXXXXXXXX003/121386XXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3.exe
其构成部分包括域名,即disk23.sh.com部分,和URL对应的文件名称,即%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3.exe,然后是中间路径部分,即/myfile/115816391/dpin/XXXXXXXXXXXXXXXX003/121386XXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/这一个字符串。对这样一个文件能够确定网站和文件名,所以可以将这个网站对应的这个文件的唯一标识设置为:disk23.sh.com_%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3。
对于新收录的URL,用网站名称加URL对应的文件名称作为主键,来标识1个域名下(或者网站上)唯一的1个文件,然后将对应这个文件的URL保存在一起进行分析,通常同样的网站对应的URL上报或者爬取超过预设阈值(如100个)后,开始进行URL模版的分析,主要通过比较这些URL的相同部分和不同部分,通过模式匹配和正则表达来获取URL当中可变与不可变的部分。对应可变部分抽象为一个通用的字母标识,比如上述URL经过处理后,统一的模板可以为:
http://disk23.sh.com/myfile/115816391/dpin/X003/121386Y/Z/%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3.exe
其中X,Y,Z 标识URL中可变部分,可以用一些不会出现在真正URL当中的特殊的通配字符代替,或者用一些特殊字符组合代替比如-X-等,形式不限定。然后同样一个网站得到1个URL,如果除了X,Y,Z之外,其他部分相同,就认为是一个相同的URL。此时对上面通用的URL模版进行Hash,作为URL索引数据库的主键和对应文件Hash建立对应关系,下载客户端再上报或者爬虫爬取到新的URL,如果经过模版归一化处理后,能够和已有的模版对应。就不需要把这个URL作为新的索引记录***URL索引数据库当中了,可以有效减少数据库的大小。另外在写入URL资源数据库(同时也需要记录URL链接的来源Ref,即用户选择的下载链接所在页面的链接,也称为来源页面链接)的时候,这样的URL也只需要记录和收录一次,不需要每个对应同样文件的新的URL就都写入URL资源数据库。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。
如图2所示,为本发明实施例提供的数据存储方法的流程示意图,可以包括以下步骤:
步骤201、当接收到入库请求时,获取其中携带的URL。
具体的,在本发明实施例中,资源爬虫***可以定期从下载网页中爬取可下载链接(以URL的形式),并上报爬取到的下载链接以进行入库处理(即发送入库请求)。同时,客户端设备在下载任务完成后,可以将相关下载链接进行上报,以进行入库处理。
步骤202、判断自身是否存储有与该URL对应的URL模板。若判断为是,则转至步骤103;否则,转至步骤104。
具体的,在本发明实施例中,为了减少URL资源索引数据库中存储的数据量,对于同一网站的同一文件的不同链接以一个同一的模板进行存储。
获取到入库请求中携带的URL后,可以判断自身是否存储有与该URL对应的URL模板。例如,可以获取请求入库的URL中包含的主机信息和文件名信息,并根该主机信息和文件名信息判断自身是否存储有对应的URL模板。
步骤203、该URL不存储到URL资源索引数据库,并结束此次入库操作。
步骤204、确定与该URL对应的URL模板,以及该URL对应的文件的hash值和该URL模板的hash值,并将该文件的hash值与该URL模板的hash值的对应关系信息存储到URL索引数据库。
具体的,在本发明实施例中,确定与入库请求中携带的URL对应的URL模板后,还需要确定该URL对应的文件的hash值以及该URL模板对应的hash值,并将该文件的hash值与URL模板的hash值的对应关系信息存储到URL资源索引数据库。
其中,对于文件hash值的确定,在本发明实施例中,当入库请求为下载客户端在完成下载任务后上报的时,该入库请求中会携带有URL对应的文件的hash值;而当入库请求未资源爬虫***发送的时,需要请求对请求入库的URL进行下载,并计算对应文件的hash值。
需要注意的是,由于实际实施过程当中,并不是每一个下载网站都提供类似的链接方法,为了减少不必要的模版匹配分析计算,可以预先配置好一部分需要进行匹配分析下载站的域名。在通过URL索引数据库查询URL对应文件hash的过程中也需要进行类似的处理,由于用户提交的URL入口是来源多种多样的,对于需要关注的进行域名匹配的网站,对用户提供的入口URL做同样的分析,然后再向数据库查询获取真正的链接。
基于上述数据存储方法的技术构思,本发明还提供了一种数据下载方法。如图3所示,为本发明实施例提供的一种数据下载方法的流程示意图,可以包括以下步骤:
步骤301、URL索引数据服务器接收资源索引服务器发送的查询请求下载的文件的hash值的查询请求,其中携带请求下载的文件的URL。
具体的,在本发明实施例中,当下载客户端接收用户发送的数据下载请求时,下载客户端会根据其中携带的URL向资源索引服务器请求获取与该URL对应的文件相同的其他URL,以实现多源下载。资源索引服务器接收到下载客户端的查询请求后,会向URL索引服务器发送查询请求下载的文件的hash值的查询请求,其中携带请求下载的文件的URL。
步骤302、URL索引数据服务器根据请求下载的文件的URL确定与该URL对应的URL模板,并确定该URL模板的hash值。
具体的,URL索引数据服务器接收到资源索引服务器发送的查询请求后,确定与其中携带的URL对应的URL模板,并确定该URL模板的hash值。
步骤303、URL索引数据服务器根据URL模板的hash值查询对应的文件hash值,并将查询到的文件hash值返回给资源索引服务器。
具体的,索引数据服务器向URL资源索引数据库发送文件hash值查询请求,其中携带文件对应的URL模板的hash值。
URL索引数据服务器接收URL资源索引数据库返回的文件hash值;其中,URL资源索引数据库根据接收到的URL模板hash值以及自身存储的文件hash值和URL模板的hash值的对应关系信息查询接收到的URL模板hash值对应的文件hash值。
步骤304、资源索引服务器根据文件hash值获取对应的URL集合并返回给下载客户端。
具体的,资源索引服务器接收到URL索引数据服务器返回的文件hash值后,向URL资源服务器发送携带该文件hash值的URL查询请求,以查询对应该文件hash值的URL集合,并当接收到URL资源服务器返回的URL集合后,将该URL集合发送给下载客户端。
步骤305、下载客户端根据该URL集合进行多源下载。
通过以上描述可以看出,在本发明实施例中,通过对不同网站提供的同一个文件的下载链接,进行分析,将链接当中可变数字部分和不变的部分隔离,对可变的部分但是不影响判断下载链接最终对应文件的部分用通用字符代替,从而减少URL索引数据库收录的规模和需要保存的数据量。通过本发明能够提高网络资源收录效率和下载资源查询的匹配效率,减少URL资源数据库和URL索引数据库的大小;同时收录资源来源页面的引用页面,用户可以主动浏览原始链接收录的页面,兼顾下载链接服务提供方的利益。
为了进一步对上述技术方案进行阐述,对于如图4所示的本发明实施例所提出的数据下载***中各个组件模块的主要功能说明如下,其中,为了便于理解,以资源入库服务器接收入库请求,并进行相应的处理为例进行描述:
一、下载客户端:
(1)定期向Tracker服务器汇报在线情况和本地拥有的资源信息;
(2)通过源URL向服务器查询多资源,Hash及文件校验信息,同时向Tracker服务器查询Peer;
(3)完成下载任务后,向统计服务器汇报本次下载任务的下载时间、下载速度、下载结果、文件大小,安全属性等信息;
(4)下载过程当中发现下载到完成的数据分片后,进行校验,如果发现分片错误,向资源入库服务器上报错误来源的Peer,URL,文件Hash;
(5)首次没有能够查询到校验信息的文件,认为是新文件,下载完成后,由客户端抽取相应的检验信息和文件的唯一标识及原始URL,引用来源ref页上报给资源入库服务器。
二、资源爬虫***:
(1)从互联网上爬取有下载资源的网站资源页面;
(2)从下载下面中抽取可以下载的文件链接,通常通过下载链接尾部文件的扩展名称来标识;
(3)将爬取的新链接,通过给资源入库服务器进行入库处理;
(4)对新爬取的链接或者配置的下载站点的链接进行匹配分析,抽取对应的规则模版,同时将模版同步给资源入库服务器和URL索引数据库服务器。
三、资源入库服务器:
(1)接收客户端入库上报请求:资源入库服务器收到入库请求后,首先向资源URL索引数据库查询该资源的信息,如果没有匹配的记录,直接将该资源入库,入库前进行URL链接模版匹配分析,按照匹配规则处理;如果有匹配的记录,则检查相关字段(文件大小,Hash标识)内容是否一致。如果一致,则此次入库操作完成;如果有字段不一致,则请求通过提供的链接,直接下载文件,计算对应字段,然后验证不一致的字段; 
(2)接受爬虫***爬取的新的URL,对这些URL进行下载,计算对应文件的Hash值,同时将这些信息写入URL资源索引数据库当中;
(3)在更新URL资源索引数据库的时候,按照URL链接模版抽取和匹配规则进行处理,过滤掉同一个Hash文件,来自于同一个网站不同链接的入库请求。
四.Tracker服务器:
(1)为每个申请加入网络的客户端提供注册,并反馈其所拥有该资源节点的IP地址列表;
(2)接收客户端的在线情况汇报,生成各资源的节点列表并在有节点申请下载该任务时进行反馈。
五.资源索引服务器
(1)接收客户端通过URL作为索引的入口查询文件Hash及需要下载的多URL资源集合;
(2)提供文件分片校验信息,供下载客户端校验下载数据的有效性;
(3)返回多资源URL集合的同时,返回每个URL来源的Ref页面地址。
六、URL索引数据服务器
(1)将URL原始链接,统一编码处理后,计算URL的唯一Hash值,然后建立与该URL对应的基于文件内容Hash的映射关系,保存在URL索引数据库当中;
(2)为客户端添加任务的时候,给资源查询服务器提供URL到文件Hash的映射查询提供支持服务;
(3)接受资源入库服务器的同步,收录URL链接模版,同时按照模版对客户端提交的URL链接进行匹配处理;
(4)向URL资源索引数据库查询URL对应的Hash;
七、URL资源数据服务器
(1)接受多资源查询服务器通过Hash查询多资源URL集合的请求;
(2)向URL资源索引数据库查询Hash对应的URL集合,同时返回URL集合给多资源查询服务器。
与现有技术相比,本发明实施例具有以下优点:
通过对不同网站提供的同一个文件的下载链接,进行分析,将链接当中可变数字部分和不变的部分隔离,对可变的部分但是不影响判断下载链接最终对应文件的部分用通用字符代替,从而减少URL索引数据库收录的规模和需要保存的数据量。通过本发明能够提高网络资源收录效率和下载资源查询的匹配效率,减少URL资源数据库和URL索引数据库的大小;同时收录资源来源页面的引用页面,用户可以主动浏览原始链接收录的页面,兼顾下载链接服务提供方的利益。
基于上述方法实施例相同的技术构思,本发明实施例还提供了一种数据存储装置,可以应用于上述方法流程。
如图5所示,为本发明实施例提供的一种数据存储装置的结构示意图,可以包括:
存储模块51,用于存储URL模板;
获取模块52,用于当所述数据存储装置接收到入库请求时,获取请求携带的统一资源定位符URL;
判断模块53,用于判断所述存储模块是否存储有与所述URL对应的URL模板;其中,所述URL模板与同一域名下的同一文件的不同URL对应;
处理模块54,用于当所述判断模块53的判断结果为是时,所述URL不存储到所述URL资源索引数据库,并结束此次入库操作;当所述判断模块53的判断结果为否时,确定与所述URL对应的URL模板,以及所述URL对应的文件的hash值和所述URL模板的hash值,并将所述文件的hash值与所述URL模板的hash值的对应关系信息存储到所述URL索引数据库。
其中,所述处理模块54可以具体用于,若所述入库请求为下载客户端发送的入库请求,则获取所述入库请求中携带的文件的hash值;若所述入库请求为资源爬虫***发送的入库请求,则下载入库请求中携带的URL对应的文件,并确定所述文件的hash值。
其中,所述处理模块54还可以用于,当确定URL对应的URL对应的URL模板后,将所述URL模板存储到所述存储模块,并将所述URL模板存储到所述URL索引数据服务器。
其中,所述存储模块51还用于,存储需要进行模板匹配的URL对应的域名信息;
所述判断模块53具体用于,当根据所述存储模块存储的需要进行模板匹配的URL对应的域名信息确定所述URL需要进行模板匹配时,判断所述存储模块是否存储有与所述URL对应的URL模板。
其中,优选地,所述数据存储装置可以为资源入库服务器。
基于上述方法实施例相同的技术构思,本发明实施例还提供了一种URL索引数据服务器,可以应用于上述方法流程。
如图6所示,为本发明实施例提供的一种URL索引数据服务器的结构示意图,可以包括:
接收模块61,用于接收资源索引服务器发送的用于查询请求下载文件的hash值的查询请求,其中携带有所述请求下载的文件的URL;
确定模块62,用于根据所述请求下载的文件的URL确定与所述URL对应的URL模板,并确定所述URL模板的hash值;
处理模块63,用于根据所述URL模板的hash值查询对应的文件hash值,并将查询到的文件hash值返回给所述资源索引服务器,由所述资源索引服务器根据所述文件hash值获取对应的URL集合并返回给下载客户端,以使所述下载客户端根据所述URL集合进行多源下载。
其中,所述处理模块63可以具体用于,向所述URL索引数据库发送文件hash值查询请求,其中携带所述文件对应的URL模板的hash值;接收所述URL索引数据库返回的文件hash值;其中,所述URL资源索引数据库根据接收到的URL模板hash值以及自身存储的文件hash值和URL模板的hash值的对应关系信息查询接收到的URL模板hash值对应的文件hash值。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。 

Claims (14)

1.一种数据存储方法,其特征在于,包括:
当接收到入库请求时,获取其中携带的统一资源定位符URL;
判断自身是否存储有与所述URL对应的URL模板;其中,所述URL模板与同一域名下的同一文件的不同URL对应;
当判断结果为是时,所述URL不存储到所述URL资源索引数据库,并结束此次入库操作;
当判断结果为否时,确定与所述URL对应的URL模板,以及所述URL对应的文件的hash值和所述URL模板的hash值,并将所述文件的hash值与所述URL模板的hash值的对应关系信息存储到所述URL索引数据库。
2.如权利要求1所述的方法,其特征在于,所述确定所述URL对应的文件的hash值,具体为:
若所述入库请求为下载客户端发送的入库请求,则获取所述入库请求中携带的文件的hash值;
若所述入库请求为资源爬虫***发送的入库请求,则下载入库请求中携带的URL对应的文件,并确定所述文件的hash值。
3.如权利要求2所述的方法,其特征在于,所述确定URL对应的URL模板之后,还包括:
存储所述URL模板,并将所述URL模板存储到所述URL索引数据服务器。
4.如权利要求1所述的方法,其特征在于,所述判断自身是否存储有与所述URL对应的URL模板,具体为:
当根据自身存储的需要进行模板匹配的URL对应的域名信息确定所述URL需要进行模板匹配时,判断自身是否存储有与所述URL对应的URL模板。
5.如权利要求1所述的方法,其特征在于,所述判断自身是否存储有与所述URL对应的URL模板,具体为:
当确定URL资源数据库中未存储有所述URL时,判断自身是否存储有与所述URL对应的URL模板。
 
6.一种基于权利要求1-5任一项所述的方法实现的数据下载方法,其特征在于,包括:
所述URL索引数据服务器接收资源索引服务器发送的用于查询请求下载的文件的hash值的查询请求,其中携带所述请求下载的文件的URL;
所述URL索引数据服务器根据所述请求下载的文件的URL确定与所述URL对应的URL模板,并确定所述URL模板的hash值;
所述URL索引数据服务器根据所述URL模板的hash值查询对应的文件hash值,并将查询到的文件hash值返回给所述资源索引服务器,由所述资源索引服务器根据所述文件hash值获取对应的URL集合并返回给下载客户端,以使所述下载客户端根据所述URL集合进行多源下载。
7.如权利要求6所述的方法,其特征在于,所述URL索引数据服务器根据所述URL模板的hash值查询对应的文件hash值,具体为:
所述索引数据服务器向所述URL索引数据库发送文件hash值查询请求,其中携带所述文件对应的URL模板的hash值;
所述索引数据服务器接收所述URL索引数据库返回的文件hash值;其中,所述URL资源索引数据库根据接收到的URL模板hash值以及自身存储的文件hash值和URL模板的hash值的对应关系信息查询接收到的URL模板hash值对应的文件hash值。
 
8.一种数据存储装置,其特征在于,包括:
存储模块,用于存储URL模板;
获取模块,用于当所述数据存储装置接收到入库请求时,获取其中携带的统一资源定位符URL;
判断模块,用于判断所述存储模块是否存储有与所述URL对应的URL模板;其中,所述URL模板与同一域名下的同一文件的不同URL对应;
处理模块,用于当所述判断模块的判断结果为是时,所述URL不存储到所述URL资源索引数据库,并结束此次入库操作;当所述判断模块的判断结果为否时,确定与所述URL对应的URL模板,以及所述URL对应的文件的hash值和所述URL模板的hash值,并将所述文件的hash值与所述URL模板的hash值的对应关系信息存储到所述URL索引数据库。
9.如权利要求8所述的数据存储装置,其特征在于,
所述处理模块具体用于,若所述入库请求为下载客户端发送的入库请求,则获取所述入库请求中携带的文件的hash值;若所述入库请求为资源爬虫***发送的入库请求,则下载入库请求中携带的URL对应的文件,并确定所述文件的hash值。
10.如权利要求9所述的数据存储装置,其特征在于,
所述处理模块还用于,当确定URL对应的URL对应的URL模板后,将所述URL模板存储到所述存储模块,并将所述URL模板存储到所述URL索引数据服务器。
11.如权利要求8所述的数据存储装置,其特征在于,
所述存储模块还用于,存储需要进行模板匹配的URL对应的域名信息;
所述判断模块具体用于,当根据所述存储模块存储的需要进行模板匹配的URL对应的域名信息确定所述URL需要进行模板匹配时,判断所述存储模块是否存储有与所述URL对应的URL模板。
12.如权利要求8所述的数据存储装置,其特征在于,
所述判断模块具体用于,当确定URL资源数据库中未存储有所述URL时,判断自身是否存储有与所述URL对应的URL模板。
 
13.一种URL索引数据服务器,其特征在于,包括:
接收模块,用于接收资源索引服务器发送的用于查询请求下载文件的hash值的查询请求,其中携带有所述请求下载的文件的URL;
确定模块,用于根据所述请求下载的文件的URL确定与所述URL对应的URL模板,并确定所述URL模板的hash值;
处理模块,用于根据所述URL模板的hash值查询对应的文件hash值,并将查询到的文件hash值返回给所述资源索引服务器,由所述资源索引服务器根据所述文件hash值获取对应的URL集合并返回给下载客户端,以使所述下载客户端根据所述URL集合进行多源下载。
14.如权利要求13所述的URL索引数据服务器,其特征在于,
所述处理模块具体用于,向所述URL索引数据库发送文件hash值查询请求,其中携带所述文件对应的URL模板的hash值;接收所述URL索引数据库返回的文件hash值;其中,所述URL资源索引数据库根据接收到的URL模板hash值以及自身存储的文件hash值和URL模板的hash值的对应关系信息查询接收到的URL模板hash值对应的文件hash值。
CN201210087144.6A 2012-03-29 2012-03-29 数据存储方法、数据下载方法及其装置 Active CN103365865B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210087144.6A CN103365865B (zh) 2012-03-29 2012-03-29 数据存储方法、数据下载方法及其装置
PCT/CN2013/071616 WO2013143363A1 (en) 2012-03-29 2013-02-17 A method and apparatus for data storage and downloading
US14/232,273 US9183214B2 (en) 2012-03-29 2013-02-17 Method and apparatus for data storage and downloading

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210087144.6A CN103365865B (zh) 2012-03-29 2012-03-29 数据存储方法、数据下载方法及其装置

Publications (2)

Publication Number Publication Date
CN103365865A true CN103365865A (zh) 2013-10-23
CN103365865B CN103365865B (zh) 2017-07-11

Family

ID=49258176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210087144.6A Active CN103365865B (zh) 2012-03-29 2012-03-29 数据存储方法、数据下载方法及其装置

Country Status (3)

Country Link
US (1) US9183214B2 (zh)
CN (1) CN103365865B (zh)
WO (1) WO2013143363A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957436A (zh) * 2014-05-13 2014-07-30 北京清源新创科技有限公司 一种基于ott业务的视频防盗链方法
CN105868036A (zh) * 2015-12-14 2016-08-17 乐视网信息技术(北京)股份有限公司 异常确定方法及装置
CN106055618A (zh) * 2016-05-26 2016-10-26 优品财富管理有限公司 一种基于网络爬虫与结构化存储的数据处理方法
CN106294663A (zh) * 2016-08-04 2017-01-04 网宿科技股份有限公司 一种电子设备、及其应用的图片处理方法及***
CN109446445A (zh) * 2018-10-23 2019-03-08 乐蜜有限公司 一种资源获取方法及装置
CN109510731A (zh) * 2017-09-15 2019-03-22 顺丰科技有限公司 多维度收集url链接及参数的方法、***及设备

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248666A (zh) * 2012-02-14 2013-08-14 深圳市腾讯计算机***有限公司 一种离线下载资源的***、方法及装置
CN104936092B (zh) * 2015-05-20 2018-09-04 广东欧珀移动通信有限公司 一种数据的处理方法、相关装置及***
CN105306537B (zh) * 2015-09-22 2018-12-18 浪潮(北京)电子信息产业有限公司 一种传输办公自动化***的文件的方法、服务器和客户端
CN105307052B (zh) * 2015-10-27 2018-09-25 无锡天脉聚源传媒科技有限公司 一种视频请求处理方法及装置
CN105392051B (zh) * 2015-10-27 2019-03-19 无锡天脉聚源传媒科技有限公司 一种视频请求处理方法及装置
CN105320883B (zh) * 2015-11-11 2018-05-15 北京奇虎科技有限公司 文件安全加载实现方法及装置
CN106101133A (zh) * 2016-07-14 2016-11-09 观止云(北京)信息技术有限公司 一种流媒体防盗链的方法及***
CN107632993B (zh) * 2016-07-19 2021-06-18 深圳市斑点猫信息技术有限公司 一种快速排重方法及终端
CN108259544B (zh) * 2016-12-29 2020-07-17 新华三技术有限公司 Url查询方法和url查询服务器
CN107562775B (zh) * 2017-07-14 2020-04-24 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN110109883B (zh) * 2018-01-25 2023-06-27 卓望数码技术(深圳)有限公司 一种文件滤重储存方法和装置
CN108920668B (zh) * 2018-07-05 2023-04-18 平安科技(深圳)有限公司 一种统一资源定位符url去重方法及装置
CN108984703B (zh) * 2018-07-05 2023-04-18 平安科技(深圳)有限公司 一种统一资源定位符url去重方法及装置
CN110825747B (zh) * 2019-11-05 2022-09-06 政采云有限公司 一种信息存取方法、装置和介质
CN110888842A (zh) * 2019-12-02 2020-03-17 中国银行股份有限公司 一种文件存储方法、文件查询方法、装置及设备
CN111949849B (zh) * 2020-08-13 2023-11-21 中国科学院水生生物研究所 鱼类信息的获取方法、装置、电子设备及可读存储介质
CN112788135B (zh) * 2021-01-05 2023-08-08 网宿科技股份有限公司 资源调度方法、设备及存储介质
CN114124926A (zh) * 2021-04-02 2022-03-01 北京京东拓先科技有限公司 数据传输方法、设备、存储介质及计算机程序产品
CN113572828B (zh) * 2021-07-13 2024-04-09 壹药网科技(上海)股份有限公司 一种基于url分组粒度提升客户端负载均衡的***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702773A (zh) * 2009-10-23 2010-05-05 深圳创维-Rgb电子有限公司 数字电视节目的在线播放方法
GB2471079A (en) * 2009-06-15 2010-12-22 Peter Kingston Thomas Peer to peer managed file transfer
US20110106880A1 (en) * 2004-11-08 2011-05-05 Strong Jack B Method and apparatus for a file sharing and synchronization system
CN102055717A (zh) * 2009-11-09 2011-05-11 华为技术有限公司 快速播放的方法、终端及服务器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA01010103A (es) * 1999-04-05 2002-11-04 Neomedia Tech Inc Sistema y metodo para utilizar codigos de enlace legibles por maquina o legibles por humanos para tener acceso a recursos de datos en red.
US6701317B1 (en) * 2000-09-19 2004-03-02 Overture Services, Inc. Web page connectivity server construction
US7340467B2 (en) * 2003-04-15 2008-03-04 Microsoft Corporation System and method for maintaining a distributed database of hyperlinks
US20060225115A1 (en) * 2005-04-01 2006-10-05 Microsoft Corporation Systems and methods for network communication
CN100354865C (zh) 2006-02-20 2007-12-12 南京工业大学 仿人工细粒度网页信息采集方法
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
CN101192234A (zh) * 2007-06-07 2008-06-04 腾讯科技(深圳)有限公司 一种基于网页抽取的搜索***及搜索方法
US20100125567A1 (en) * 2008-11-18 2010-05-20 Morris Robert P Method and System for managing Metadata associated with a resource
US20110258050A1 (en) * 2010-04-16 2011-10-20 Bread Labs Inc. A Delaware Corporation Social advertising platform
CN101950312B (zh) 2010-08-18 2012-07-04 赵清政 一种互联网网页内容解析方法
US8190701B2 (en) * 2010-11-01 2012-05-29 Seven Networks, Inc. Cache defeat detection and caching of content addressed by identifiers intended to defeat cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110106880A1 (en) * 2004-11-08 2011-05-05 Strong Jack B Method and apparatus for a file sharing and synchronization system
GB2471079A (en) * 2009-06-15 2010-12-22 Peter Kingston Thomas Peer to peer managed file transfer
CN101702773A (zh) * 2009-10-23 2010-05-05 深圳创维-Rgb电子有限公司 数字电视节目的在线播放方法
CN102055717A (zh) * 2009-11-09 2011-05-11 华为技术有限公司 快速播放的方法、终端及服务器

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957436A (zh) * 2014-05-13 2014-07-30 北京清源新创科技有限公司 一种基于ott业务的视频防盗链方法
CN103957436B (zh) * 2014-05-13 2016-09-07 北京清源新创科技有限公司 一种基于ott业务的视频防盗链方法
CN105868036A (zh) * 2015-12-14 2016-08-17 乐视网信息技术(北京)股份有限公司 异常确定方法及装置
CN106055618A (zh) * 2016-05-26 2016-10-26 优品财富管理有限公司 一种基于网络爬虫与结构化存储的数据处理方法
CN106055618B (zh) * 2016-05-26 2020-02-07 优品财富管理有限公司 一种基于网络爬虫与结构化存储的数据处理方法
CN106294663A (zh) * 2016-08-04 2017-01-04 网宿科技股份有限公司 一种电子设备、及其应用的图片处理方法及***
CN109510731A (zh) * 2017-09-15 2019-03-22 顺丰科技有限公司 多维度收集url链接及参数的方法、***及设备
CN109446445A (zh) * 2018-10-23 2019-03-08 乐蜜有限公司 一种资源获取方法及装置
CN109446445B (zh) * 2018-10-23 2022-03-22 北京乐我无限科技有限责任公司 一种资源获取方法及装置

Also Published As

Publication number Publication date
WO2013143363A1 (en) 2013-10-03
CN103365865B (zh) 2017-07-11
US20140149457A1 (en) 2014-05-29
US9183214B2 (en) 2015-11-10

Similar Documents

Publication Publication Date Title
CN103365865A (zh) 数据存储方法、数据下载方法及其装置
CN102333092B (zh) 一种网络用户识别的方法及其应用服务器
EP2122494B1 (en) Tracking web server
US8180376B1 (en) Mobile analytics tracking and reporting
US7827166B2 (en) Handling dynamic URLs in crawl for better coverage of unique content
CN103685604B (zh) 一种域名预解析方法及装置
CN109905288B (zh) 一种应用服务分类方法及装置
CN110430188B (zh) 一种快速url过滤方法及装置
CN102867266B (zh) 一种讯价方法及装置
CN104063460A (zh) 一种在浏览器中加载网页的方法和装置
CN103221951A (zh) 预测查询建议高速缓存
EP2550637A2 (en) Detecting virality paths and supporting referral monetization
CN103248641A (zh) 网络下载方法、装置及***
US20080147875A1 (en) System, method and program for minimizing amount of data transfer across a network
CN101616166A (zh) 在互联网中用于高速下载多媒体内容的方法与装置
CN101556588B (zh) 一种搜索方法、设备及***
US20030061360A1 (en) Identifying unique web visitors behind proxy servers
CN111770072B (zh) 一种单点登录接入功能页面的方法和装置
CN104065736A (zh) 一种url重定向方法、装置及***
CN110708402A (zh) 可访问资源的展示方法、装置及资源访问***
CN103905434A (zh) 一种网络数据处理方法和装置
KR20160069402A (ko) 이용자 반응형 웹페이지 제공 방법
CN106959975A (zh) 一种转码资源缓存处理方法、装置及设备
CN102918527B (zh) Web应用托管的调查方法和***
CN103077218A (zh) 一种用于确定查询请求中查询序列的需求信息的方法与设备

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