收录索引信息的方法及下载验证服务器的制作方法

文档序号:6422863阅读:130来源:国知局
专利名称:收录索引信息的方法及下载验证服务器的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种收录索引信息的方法及下载验证服务器。
背景技术
P2SP(Peer to Server & Peer,点对服务器和点)是一种用户下载技术,此处"Peer"(点)即网络节点或终端,可以理解为用户计算机。所谓P2SP是指下载不再像传统方式那样只能依赖服务器,下载客户端可以从网络上的服务器和其它任意终端中下载内容。P2SP后台由一组功能服务器组成,包括爬虫服务器、下载验证服务器和数据库服务 器等等,实现P2SP的主要功能。数据库服务器中存储有用于唯一标识文件的Hash (哈希)值和与该Hash值对应的URL (Universal Resource Locator,统一资源定位符)链接,这些URL链接都可以用于下载该Ha sh值代表的文件。在P2SP下载技术中,下载客户端要下载某个文件时,用下载该文件的入口 URL链接去数据库服务器中查找对应的Hash值,找到后获取与该Hash值对应的其他URL链接,作为下载的辅助源,辅助源越多,下载速度越快。数据库服务器中辅助源的来源途径有两个,一是客户端下载完成后计算文件的Hash值,并将该Hash值和URL链接上报给数据库服务器,二是通过爬虫服务器从互联网上收录下载页面并从中抽取用于下载的URL链接,将这些URL链接去重后推送到下载验证服务器,然后由下载验证服务器从URL链接下载对应的文件,待整个文件下载完毕后,读取整个文件的内容计算文件Hash值,然后将文件的URL链接和Hash值之间相互的映射关系存入数据库服务器。同一个文件通常在不同的网站有不同链接,也就是说同一个Hash值可以映射多个URL链接,因此在P2SP系统中用文件的Hash值作为索引信息。在实现本发明的过程中,发明人发现现有技术至少存在以下缺点现有技术通过爬虫服务器和下载验证服务器主动收录辅助源时,由于收录的过程中下载验证服务器需要下载和读取整个文件的内容来计算Hash值,以该Hash值作为索引信息,导致收录的速度慢;当爬虫服务器爬取到大量新URL链接需要入库的时候,需要大量的中转空间来保存临时下载的文件,导致需要投入大量用于中转的空间。

发明内容
为了实现文件索引信息的快速收录,节约文件中转空间,本发明实施例提供了一种收录索引信息的方法及下载验证服务器。所述技术方案如下—方面,提供了一种收录索引信息的方法,所述方法包括获取爬虫服务器推送的下载链接;从所述下载链接下载文件的部分内容;根据下载的部分内容计算所述文件的索引信息;建立所述文件的索引信息和所述下载链接之间的映射关系,并上报给数据库服务器收录。其中,所述从所述下载链接下载文件的部分内容,包括从所述下载链接下载文件的头部、中间和尾部三部分内容;相应地,所述根据下载的部分内容计算所述文件的索引信息,包括分别计算所述文件的头部、中间和尾部三部分内容的哈希值;将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息。 进一步地,所述从所述下载链接下载文件的头部、中间和尾部三部分内容,包括获取所述下载链接对应的文件信息,所述文件信息包括文件的大小;根据所述文件的大小和预设的分片大小将所述文件分片;根据所述分片大小和偏移量从所述下载链接下载所述文件的第一片、中间一片和最后一片内容分片;相应地,所述分别计算所述文件的头部、中间和尾部三部分内容的哈希值,包括分别计算所述文件的第一片、中间一片和最后一片内容分片的哈希值。可选地,所述将计算得到的三个哈希值合在一起再次计算哈希值之前,还包括获取所述文件的辅助信息;相应地,所述将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息,包括将计算得到的三个哈希值和所述辅助信息拼接在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息;或,将计算得到的三个哈希值拼接在一起再次计算哈希值,并将最后计算得到的哈希值和所述辅助信息拼接在一起作为所述文件的索引信息。其中,所述辅助信息为所述文件的大小,或,文件扩展名。另一方面,提供了一种下载验证服务器,所述下载验证服务器包括第一获取模块,用于获取爬虫服务器推送的下载链接;下载模块,用于从所述第一获取模块获取的下载链接下载文件的部分内容;计算模块,用于根据所述下载模块下载的部分内容计算所述文件的索引信息;建立模块,用于建立所述计算模块计算的所述文件的索引信息和所述下载链接之间的映射关系,并上报给数据库服务器收录。其中,所述下载模块,具体用于从所述第一获取模块获取的下载链接下载文件的头部、中间和尾部三部分内容;相应地,所述计算模块,具体用于分别计算所述下载模块下载的文件的头部、中间和尾部三部分内容的哈希值;将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息。进一步地,所述下载模块,具体用于获取所述下载链接对应的文件信息,所述文件信息包括文件的大小;根据所述文件的大小和预设的分片大小将所述文件分片;根据所述分片大小和偏移量从所述下载链接下载所述文件的第一片、中间一片和最后一片内容分片;相应地,所述计算模块用于分别计算所述下载模块下载的文件的头部、中间和尾部三部分内容的哈希值时,具体用于分别计算所述文件的第一片、中间一片和最后一片内容分片的哈希值。可选地,所述下载验证服务器还包括第二获取模块,用于在所述计算模块将计算得到的三个哈希值合在一起再次计算哈希值之前,获取所述文件的辅助信息;相应地,所述计算模块用于将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息时,具体用于将计算得到的三个哈希值和所述第二获取模块获取的辅助信息拼接在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息;或,将计算得到的三个哈希值拼接在一起再次计算哈希值,并将最后计算得到的哈希值和所述第二获取模块获取的辅助信息拼接在一起作为所述文件的索引信息。 本发明实施例提供的技术方案的有益效果是通过仅下载文件的部分内容,根据下载的部分内容计算文件的索引信息,用来作为这个文件内容的唯一标识,而不再采用现有技术中下载整个文件的内容来计算索引信息,结果大大提高了文件索引信息和链接入库的速度,大幅度提升了资源收录的效率;另夕卜,仅下载文件的部分内容和现有技术中下载全部文件相比,占用的文件中转空间大大减少,节约了资源。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本发明实施例一提供的收录索引信息的方法流程图;图2是本发明实施例二提供的收录索引信息的方法流程图;图3是本发明实施例三提供的下载验证服务器的结构示意图;图4是本发明实施例三提供的另一种下载验证服务器的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例一本发明实施例提供了一种收录索引信息的方法,参见图1,方法流程具体如下101 :获取爬虫服务器推送的下载链接,并从下载链接下载文件的部分内容;102 :根据下载的部分内容计算该文件的索引信息;103 :建立该文件的索引信息和下载链接之间的映射关系,并上报给数据库服务器收录。本发明实施例提供的方法,通过仅下载文件的部分内容,根据下载的部分内容计算文件的索引信息,用来作为这个文件内容的唯一标识,而不再采用现有技术中下载整个文件的内容来计算索引信息,结果大大提高了文件索引信息和链接入库的速度,大幅度提升了资源收录的效率;另外,仅下载文件的部分内容和现有技术中下载全部文件相比,占用的文件中转空间大大减少,节约了资源。实施例二本发明实施例提供了一种收录索引信息的方法,主要是对P2SP后台系统中的下载验证服务器功能的改进,即对主动收录文件的下载地址和索引信息的过程的改进。本发明实施例采用了一种新的索引信息,将基于文件部分内容的索引信息作为文件的唯一标识,参见图2,方法流程具体如下201 :获取爬虫服务器推送的下载链接;具体地,爬虫服务器一直在运行,不停的从互联网上收录下载页面并从中抽取用于下载的下载链接。由于现有的链接形式一般为URL链接,下载链接和其它页面文件链接可以通过链接的扩展名来区分,比如扩展名为exe、rar、iso、zip等等的URL链接都直接对 应一个可以下载的二进制文件。爬虫服务器将爬取到的URL链接去重后推送到下载验证服务器,下载验证服务器接收推送过来的URL链接。202 :从下载链接下载文件的部分内容;下载验证服务器获取到下载链接后开始资源收录过程,对下载链接逐个进行下载和计算索引信息。具体地,不同于现有技术需要从下载链接下载整个文件的内容,本发明实施例提供的方法是下载文件的部分内容,具体可以从下载链接下载文件的头部、中间和尾部三部分内容。进一步地,下载文件的头部、中间和尾部三部分内容可以采用如下方式获取该下载链接对应的文件信息,该文件信息包括文件的大小;根据文件的大小和预设的分片大小将该文件分片;根据分片大小和偏移量从该下载链接下载该文件的第一片、中间一片和最后一片内容分片。例如,一个文件的大小为T,预设的分片大小为P(T),P⑴通常取20KB,那么可以将该文件划分为N片,N= (T+P(T)-1)/P(T)片,然后根据P(T)和偏移量分别下载第I片、中间I片,和第N片。需要说明的是,从下载链接下载文件的部分内容,并不限定在采用上述下载文件的头中尾三部分内容的形式,还可以采用下载文件其他部分内容,或者其他内容分片的形式,其本质的功能和达到的效果是一样的,即用文件的部分内容代替全部内容。203 :根据下载的部分内容计算该文件的索引信息;本发明实施例不对用部分内容计算索引信息的方式进行限定,只要根据下载的部分内容计算出的索引信息能唯一标识该文件即可。具体地,当按照上述方式从下载链接下载文件的头部、中间和尾部三部分内容时,相应地,根据下载的部分内容计算该文件的索引信息,具体方式可以为分别计算该文件的头部、中间和尾部三部分内容的哈希值;将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为该文件的索引信息。其中,如果下载的头中尾三部分内容分别是该文件的第一片、中间一片和最后一片内容分片时,那么就分别计算该文件的第一片、中间一片和最后一片内容分片的哈希值。例如,假设预设的分片大小P(T) = 20KB,先分别计算该文件的第一片、中间一片和最后一片内容分片的MD5 (Message Digest Algorithm 5,消息摘要算法第五版)值,每个分片的MD5值为16B,那么上述3个分片的MD5值一共为48B,将这3个MD5值拼接到一起后,再计算它们的SHAl (Secure Hash Algorithm,安全哈希算法)值,得到的SHAl值为20B,该SHAl值即为该文件的索引信息,还可以称为三段Hash。进一步地,为了使计算出的索引信息更具有代表性,在将计算得到的三个哈希值合在一起再次计算哈希值之前,还可以获取该文件的辅助信息,该辅助信息可以为该文件的大小或文件扩展名等属性信息,其中,获取该文件的辅助信息的步骤可以在步骤201之后、将计算得到的三个哈希值合在一起再次计算哈希值之前的任意时刻执行,本发明实施例对此不作具体限定,例如可以在分别计算该文件的头部、中间和尾部三部分内容的哈希值之后、在将计算得到的三个哈希值合在一起再次计算哈希值之前执行,也可以在步骤202从下载链接下载文件的部分内容时,同时获取该文件的辅助信息。相应地,将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为该文件的索引信息可以具体采用以下两种方式
第一种方式将计算得到的三个哈希值和获取的辅助信息拼接在一起再次计算哈希值,并将最后计算得到的哈希值作为该文件的索引信息;或,第二种方式将计算得到的三个哈希值拼接在一起再次计算哈希值,并将最后计算得到的哈希值和获取的辅助信息拼接在一起作为该文件的索引信息。例如,假设获取的辅助信息占用SB,延续上面的例子,第一种方式为将3个MD5值和辅助信息拼接到一起,共56B,计算它们的SHAl值,得到的SHAl值为20B,该SHAl值即为该文件的索引信息;第二种方式为将3个MD5值拼接到一起,共48B,计算它们的SHAl值,得到的SHAl值为20B,再将该SHAl值和辅助信息拼接到一起,共28B,将它们共同作为该文件的索引信息。204 :建立该文件的索引信息和下载链接之间的映射关系,并上报给数据库服务器收录。具体地,计算出用于唯一标识该文件的索引信息后,将该索引信息和用于下载该文件的下载链接关联起来,上报给数据库服务器收录。如果查找到该数据库服务器中已经存在该索引信息,那么在与该索引信息关联的下载链接中添加该新收录的下载链接;如果查找到该数据库服务器中不存在该索引信息,那添加该索引信息和与之关联的下载链接。需要说明的是,采用上述新的收录索引信息的方法后,P2SP系统中用于全部采用该新的索引信息的形式来唯一标识一个文件。上述部分内容的抽取和索引信息的计算方法可以避免一定的冲突,如果采用上述抽取文件的头中尾三部分内容并计算三段Hash的方法避免冲突的效果更加明显。因为如果仅仅只是抽取文件的头部,或者尾部,对某些音频或者视频文件来说,被截断后的头部或尾部是相同的,再计算Hash值容易出现Hash冲突。为了使抽取的部分Hash有代表性,抽取文件的头中尾三个有代表性的地方,并计算三段Hash作为代表该文件的唯一标识,在互联网中的绝大多数文件,通过实践表明,采用三段Hash,无论文件格式如何,几乎不会出现文件的头中尾三段内容相同而三段之外的内容不同的情况,也就避免了文件的Hash冲突。如果同时考虑文件的大小等辅助信息,避免冲突的效果会更好。只要抽取的部分内容不冲突,就可以用该部分内容计算Hash值来作为文件的唯一标识。
本发明实施例提供的方法,通过仅下载文件的部分内容,根据下载的部分内容计算文件的索引信息,用来作为这个文件内容的唯一标识,而不再采用现有技术中下载整个文件的内容来计算索引信息,结果大大提高了文件索引信息和链接入库的速度,大幅度提升了资源收录的效率;由于新资源入库速度变快,间接加快了 P2SP系统上新资源的发布速度,减少了从文件发布初始到该文件具备全网P2SP能力的时间,使用户在下载开始就能够快速获得速度,提升了客户端的下载体验,同时降低了原始源服务器的峰值带宽压力 ’另夕卜,仅下载文件的部分内容和现有技术中下载全部文件相比,占用的文件中转空间大大减少,节约了资源。实施例三参见图3,本发明实施例提供了一种下载验证服务器,该下载验证服务器包括第一获取模块301,用于获取爬虫服务器推送的下载链接;下载模块302,用于从第一获取模块301获取的下载链接下载文件的部分内容; 计算模块303,用于根据下载模块302下载的部分内容计算该文件的索引信息;建立模块304,用于建立计算模块303计算的该文件的索引信息和下载链接之间的映射关系,并上报给数据库服务器收录。进一步地,下载模块302,具体用于从第一获取模块301获取的下载链接下载文件的头部、中间和尾部三部分内容;相应地,计算模块303,具体用于分别计算下载模块302下载的文件的头部、中间和尾部三部分内容的哈希值;将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为该文件的索引信息。更进一步地,下载模块302,具体用于获取下载链接对应的文件信息,该文件信息包括文件的大小;根据文件的大小和预设的分片大小将该文件分片;根据分片大小和偏移量从下载链接下载该文件的第一片、中间一片和最后一片内容分片;相应地,计算模块303用于分别计算下载模块302下载的文件的头部、中间和尾部三部分内容的哈希值时,具体用于分别计算该文件的第一片、中间一片和最后一片内容分片的哈希值。可选地,参见图4,该下载验证服务器还包括第二获取模块305,用于在计算模块303将计算得到的三个哈希值合在一起再次计算哈希值之前,获取该文件的辅助信息,其中,第二获取模块305可以在计算模块303之前的任意位置执行,本发明实施例对此不作具体限定,图4仅以第二获取模块305在下载模块302之后、计算模块303之前执行为例,还可以在第一获取模块301之后、下载模块302之前执行;相应地,计算模块303用于将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为该文件的索引信息时,具体用于将计算得到的三个哈希值和第二获取模块305获取的辅助信息拼接在一起再次计算哈希值,并将最后计算得到的哈希值作为该文件的索引信息;或,将计算得到的三个哈希值拼接在一起再次计算哈希值,并将最后计算得到的哈希值和第二获取模块305获取的辅助信息拼接在一起作为该文件的索引信息。综上所述,本发明实施例通过仅下载文件的部分内容,根据下载的部分内容计算文件的索引信息,用来作为这个文件内容的唯一标识,而不再采用现有技术中下载整个文件的内容来计算索引信息,结果大大提高了文件索引信息和链接入库的速度,大幅度提升了资源收录的效率;由于新资源入库速度变快,间接加快了 P2SP系统上新资源的发布速度,减少了从文件发布初始到该文件具备全网P2SP能力的时间,使用户在下载开始就能够快速获得速度,提升了客户端的下载体验,同时降低了原始源服务器的峰值带宽压力 ’另夕卜,仅下载文件的部分内容和现有技术中下载全部文件相比,占用的文件中转空间大大减少,节约了资源。需要说明的是上述实施例提供的下载验证服务器在收录索引信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将下载验证服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的下载验证服务器与收录索引信息的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本发明实施例中的全部或部分步骤,可以利用软件实现,相应的软件程序可以存·储在可读取的存储介质中,如光盘或硬盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种收录索引信息的方法,其特征在于,所述方法包括 获取爬虫服务器推送的下载链接; 从所述下载链接下载文件的部分内容; 根据下载的部分内容计算所述文件的索引信息; 建立所述文件的索引信息和所述下载链接之间的映射关系,并上报给数据库服务器收录。
2.根据权利要求I所述的方法,其特征在于,所述从所述下载链接下载文件的部分内容,包括 从所述下载链接下载文件的头部、中间和尾部三部分内容; 相应地,所述根据下载的部分内容计算所述文件的索引信息,包括 分别计算所述文件的头部、中间和尾部三部分内容的哈希值; 将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息。
3.根据权利要求2所述的方法,其特征在于,所述从所述下载链接下载文件的头部、中间和尾部三部分内容,包括 获取所述下载链接对应的文件信息,所述文件信息包括文件的大小; 根据所述文件的大小和预设的分片大小将所述文件分片; 根据所述分片大小和偏移量从所述下载链接下载所述文件的第一片、中间一片和最后一片内容分片; 相应地,所述分别计算所述文件的头部、中间和尾部三部分内容的哈希值,包括 分别计算所述文件的第一片、中间一片和最后一片内容分片的哈希值。
4.根据权利要求2所述的方法,其特征在于,所述将计算得到的三个哈希值合在一起再次计算哈希值之前,还包括 获取所述文件的辅助信息; 相应地,所述将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息,包括 将计算得到的三个哈希值和所述辅助信息拼接在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息;或, 将计算得到的三个哈希值拼接在一起再次计算哈希值,并将最后计算得到的哈希值和所述辅助信息拼接在一起作为所述文件的索引信息。
5.根据权利要求4所述的方法,其特征在于,所述辅助信息为所述文件的大小,或,文件扩展名。
6.一种下载验证服务器,其特征在于,所述下载验证服务器包括 第一获取模块,用于获取爬虫服务器推送的下载链接; 下载模块,用于从所述第一获取模块获取的下载链接下载文件的部分内容; 计算模块,用于根据所述下载模块下载的部分内容计算所述文件的索引信息; 建立模块,用于建立所述计算模块计算的所述文件的索引信息和所述下载链接之间的映射关系,并上报给数据库服务器收录。
7.根据权利要求6所述的下载验证服务器,其特征在于,所述下载模块,具体用于从所述第一获取模块获取的下载链接下载文件的头部、中间和尾部三部分内容; 相应地,所述计算模块,具体用于分别计算所述下载模块下载的文件的头部、中间和尾部三部分内容的哈希值;将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息。
8.根据权利要求7所述的下载验证服务器,其特征在于,所述下载模块,具体用于获取所述下载链接对应的文件信息,所述文件信息包括文件的大小;根据所述文件的大小和预设的分片大小将所述文件分片;根据所述分片大小和偏移量从所述下载链接下载所述文件的第一片、中间一片和最后一片内容分片; 相应地,所述计算模块用于分别计算所述下载模块下载的文件的头部、中间和尾部三部分内容的哈希值时,具体用于分别计算所述文件的第一片、中间一片和最后一片内容分片的哈希值。
9.根据权利要求7所述的下载验证服务器,其特征在于,所述下载验证服务器还包括 第二获取模块,用于在所述计算模块将计算得到的三个哈希值合在一起再次计算哈希值之前,获取所述文件的辅助信息; 相应地,所述计算模块用于将计算得到的三个哈希值合在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息时,具体用于将计算得到的三个哈希值和所述第二获取模块获取的辅助信息拼接在一起再次计算哈希值,并将最后计算得到的哈希值作为所述文件的索引信息;或,将计算得到的三个哈希值拼接在一起再次计算哈希值,并将最后计算得到的哈希值和所述第二获取模块获取的辅助信息拼接在一起作为所述文件的索引信息。
全文摘要
本发明公开了一种收录索引信息的方法及下载验证服务器,属于计算机技术领域。所述方法包括获取爬虫服务器推送的下载链接;从所述下载链接下载文件的部分内容;根据下载的部分内容计算所述文件的索引信息;建立所述文件的索引信息和所述下载链接之间的映射关系,并上报给数据库服务器收录。所述装置包括第一获取模块、下载模块、计算模块和建立模块。本发明通过仅下载文件的部分内容,根据下载的部分内容计算文件的索引信息,用来作为这个文件内容的唯一标识,而不再采用现有技术中下载整个文件的内容来计算索引信息,提高了文件索引信息和链接入库的速度,大幅度提升了资源收录的效率;另外,减少了占用的文件中转空间。
文档编号G06F17/30GK102750287SQ201110100730
公开日2012年10月24日 申请日期2011年4月21日 优先权日2011年4月21日
发明者刘刚, 黄琰 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1