CN101184091B - 一种确定相似文件的方法及装置 - Google Patents

一种确定相似文件的方法及装置 Download PDF

Info

Publication number
CN101184091B
CN101184091B CN2007101665483A CN200710166548A CN101184091B CN 101184091 B CN101184091 B CN 101184091B CN 2007101665483 A CN2007101665483 A CN 2007101665483A CN 200710166548 A CN200710166548 A CN 200710166548A CN 101184091 B CN101184091 B CN 101184091B
Authority
CN
China
Prior art keywords
file
content
block data
content signature
signature
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
CN2007101665483A
Other languages
English (en)
Other versions
CN101184091A (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.)
Shenzhen Xunlei Network Technology Co Ltd
Original Assignee
Shenzhen Xunlei Network Technology 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 Shenzhen Xunlei Network Technology Co Ltd filed Critical Shenzhen Xunlei Network Technology Co Ltd
Priority to CN2007101665483A priority Critical patent/CN101184091B/zh
Publication of CN101184091A publication Critical patent/CN101184091A/zh
Application granted granted Critical
Publication of CN101184091B publication Critical patent/CN101184091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种确定相似文件的方法,用于获得相似文件,以及从相似文件中获得需要的数据。所述方法为:获得两个文件的相关信息并确定两个文件的内容数据不完全相同;分别获得所述两个文件相同长度的数据对应的内容签名;将所述两个文件中一个文件对应的内容签名分别与获得的另一个文件对应的内容签名进行比较,并确定存在比较结果一致的内容签名;确定所述两个文件相似。本发明还公开了实现将确定相似文件应用在下载数据的过程中的方法,以及公开了用于实现上述方法的装置。

Description

一种确定相似文件的方法及装置
技术领域
本发明涉及计算机及通信领域,特别是涉及确定相似文件的方法及装置。
背景技术
互联网的主要应用之一就是资源共享,用户可通过互联网获得需要的信息和数据。
现有技术之一是单资源下载。早期的下载软件,例如产品Microsoft InternetExplorer自带的文件下载功能,只能从单一的地址下载。例如,用户点击网页上的统一资源定位(Uniform Resource Locator,URL)地址http://down.XXX.net/文件1,以下载文件1。那么下载软件只会尝试连接基于超文本传送协议(HyperText Transfer Protocol,http)的服务器down.XXX.net并获取服务器上文件1的数据,当文件的所有数据获取完毕,则下载成功。该方法存在一些缺陷,当用户集中下载某个文件时服务器压力过大;如果服务器上指定的文件被移动或删除,或者服务器暂时连接不上,则文件无法下载;或者,当服务器的带宽不足或者网络繁忙时,下载速度非常缓慢。
现有技术之二是多资源下载。多资源下载技术很好的解决了单资源下载出现的问题。用户在下载某个文件时不再仅仅从原始资源下载,而是并发的连接多台服务器,从多个资源下载同一文件。当然实现多资源下载的前提是,在多个服务器上保存相同的文件,建立文件名与服务器的对应关系。根据文件名查找到存有该文件的多个服务器,并从这多个服务器下载同一文件的数据。另外由于P2P概念的引入,存放文件的地址不一定在服务器上,也可以在客户端上。下载文件的效率相比于单资源下载的方式得到了大幅度提高。
用户总是希望下载速度越快越好,因此希望在所述多资源下载方式的基础上,能够进一步提高下载效率。
发明内容
本发明实施例提供一种确定相似文件的方法及装置,用于获得相似文件,以及从相似文件中获得需要的数据,提高下载数据的效率。
一种确定相似文件的方法,包括以下步骤:
获得两个文件的相关信息并确定两个文件的内容数据不完全相同;
分别获得所述两个文件相同长度的数据对应的内容签名;其中,在分别获得所述两个文件的分块数据的内容签名之前,根据预设的分块策略分别对所述两个文件进行分块;所述分块数据的内容签名是根据预设的算法对分块数据进行计算后获得的;或者所述分块数据的内容签名是:进一步对所述分块数据进行分块,获得多个子分块数据,并根据预设的算法分别对多个子分块数据进行计算,获得多个子分块数据的内容签名,以及根据所述算法对合并后的多个子分块数据的内容签名进行计算,获得所述分块数据的内容签名;
将所述两个文件中一个文件对应的内容签名分别与获得的另一个文件对应的内容签名进行比较,并确定存在比较结果一致的内容签名;
确定所述两个文件相似。
一种下载文件的方法,包括以下步骤:
确定需要下载第一文件;
获得第一文件中分块数据的内容签名,并将第一文件中分块数据的内容签名分别与第二文件中相同长度的分块数据的内容签名进行比较,其中两个文件的内容数据不完全相同;
确定第二文件对应有与第一文件中相同的分块数据的内容签名时,确定从第二文件中下载所述相同的分块数据。
一种用于确定相似文件的装置,包括:
接口模块,用于获得两个文件的相关信息;
查找模块,用于分别获得所述两个文件相同长度的数据对应的内容签名;其中,在分别获得所述两个文件的分块数据的内容签名之前,根据预设的分块策略分别对所述两个文件进行分块;所述分块数据的内容签名是根据预设的算法对分块数据进行计算后获得的;或者所述分块数据的内容签名是:进一步对所述分块数据进行分块,获得多个子分块数据,并根据预设的算法分别对多个子分块数据进行计算,获得多个子分块数据的内容签名,以及根据所述算法对合并后的多个子分块数据的内容签名进行计算,获得所述分块数据的内容签名;
判断模块,用于根据两个文件的相关信息确定两个文件的内容数据不完全相同,以将所述两个文件中一个文件对应的内容签名分别与另一个文件对应的内容签名进行比较,并确定存在比较结果一致的内容签名,进一步确定所述两个文件相似。
一种用于下载文件的装置,包括:
接口模块,用于确定需要下载第一文件;
查找模块,用于获得第一文件中分块数据的内容签名,并将第一文件中分块数据的内容签名分别与第二文件中相同长度的分块数据的内容签名进行比较,其中两个文件的内容数据不完全相同;
控制模块,用于确定第二文件对应有与第一文件中相同的分块数据的内容签名时,确定从第二文件中下载所述相同的分块数据。
本发明实施例通过对分块数据的内容签名的比较确定相似的文件,避免了采用原始数据比较造成的操作繁琐。并且,本发明实施例将确定的相似文件应用在文件的下载中,可为用户提供较多的下载数据源,使下载的效率更高。
附图说明
图1为本发明实施例中二叉树的示意图;
图2为本发明实施例中二维数组及二维列表的示意图;
图3为本发明实施例中确定相似文件的主要方法流程图;
图4为本发明实施例中相似文件信息的示意图;
图5为本发明实施例中确定相似文件的具体方法流程图;
图6为本发明实施例中三个文件中各分块数据的示意图;
图7为本发明实施例中一种数据库结构的示意图;
图8为本发明实施例中下载文件的主要方法流程图;
图9为本发明实施例中下载文件的具体方法流程图;
图10为本发明实施例中用于确定相似文件的装置结构图;
图11为本发明实施例中用于下载文件的装置结构图。
具体实施方式
本发明实施例通过将两个文件对应的内容签名进行比较,在确定比较结果一致的情况下,确定这两个文件存有至少部分内容相同的数据,则确定这两个文件相似。当需要下载其中的一个文件时,部分数据可从另一个文件获得,实现从更多的数据源处下载,提高了下载文件的效率。
本发明实施例中的文件包括文字类、音频类、视频类和压缩文件等。文件对应的内容签名包括文件内容签名和分块数据的内容签名。文件内容签名是对应整个文件的数据,分块数据的内容签名对应相应的分块数据。内容签名是根据预设的算法对文件的内容数据进行处理后获得的信息数据。本实施例中的算法包括对不同的数据处理得到不同的处理结果的所有算法,处理结果(即内容签名)可唯一标识处理前的数据即可,如哈希(hash)算法(具体如信息-摘要算法5(MD5))等。获得所需的内容签名可以有多种方式,如对文件的全部内容数据进行处理获得所需的内容签名;如将文件的全部内容数据分为多个数据段,分别对各数据段进行处理得到多个内容签名,再将该多个内容签名合并为所需的内容签名;如将前一例子中的多个内容签名合并后,进一步根据算法进行处理,得到所需的内容签名;如从文件的内容数据中选择部分内容数据,对该部分内容数据进行处理后得到所需的内容签名;如将前一例子中的部分内容数据分为多个数据段,分别对各数据段进行处理得到多个内容签名,再将该多个内容签名合并为所需的内容签名等方式。
本发明实施例中一个文件可以对应多种内容签名,参见图1所示的内容签名的关系实例,采用二叉树结构表示各内容签名,特别是满二叉树,便于计算偏移位置和分块数据的长度。每个方框表示对应数据的内容签名,根据预设的分块策略设定分块粒度对文件的数据内容进行划分。本发明实施例以1MB为分块粒度为例将文件划分为n个数据块,通过程序语言表示为:n=FileSize/BlockSize+(FileSize%BlockSize==0?0:1),FileSize表示文件的长度(或称大小),BlockSize表示分块粒度(或称单位数据块的长度)。可采用MD5算法对所有的数据块分别进行计算,获得相应的内容签名,即图1中的叶子节点。然后将相邻两个叶子节点的内容签名进行合并,即首尾相连,再采用MD5算法对合并后的内容签名进行计算,得到了相邻两个叶子节点的父节点,依次类推,最终得到文件内容签名(即根节点)。0层节点(即叶子节点)是1层节点对应的分块数据的内容签名,是2层节点对应的子分块数据的内容签名。同样,1层节点是2层节点对应的分块数据的内容签名,是3层节点对应的子分块数据的内容签名。获得内容签名的过程通过程序语言表示为:hash(parent)=MD5(left hash,right hash),其中parent表示父节点,left hash表示左孩子,right hash表示右孩子。其中,图1所示的叶子节点是按照文件的数据顺序排列的,便于直观的了解文件中的分块数据与内容签名的关系,在实际应用中叶子节点对应的分块数据可任意设置,可通过增加各分块数据(或对应的内容签名)的位置描述来确定其在文件中的位置。
本实施例采用二叉树结构记录内容签名是为了描述方便,以及便于内容签名的遍历和获取,也可采用四叉树或八叉树等。也可采用二维数组和二维列表等结构来记录各内容签名,可将树中同一层的节点内容放入二维数组或二维列表中的同一行内,或者是相邻的几行,不同层的节点放入不同行内,参见图2所示,同一层的节点内容放入同一行内使得操作及遍历方便。也可以以列的形式记录,原理与行的形式相同。下面主要以二叉树结构为例进行说明。
通过以上描述了解了文件及其对应的各种内容签名的关系,为两个文件的比较及相似文件的确定打下了基础。
参见图3,本实施例中确定相似文件的主要方法流程如下:
步骤301:获得两个文件的相关信息并确定两个文件的内容数据不完全相同。相关信息包括文件的内容数据、文件内容签名和文件的长度等信息,根据具体的实现方式确定,确定两个文件的内容数据不完全相同的具体实现方式有多种,如直接取两个文件的内容数据进行比较,或者如取两个文件的文件内容签名进行比较,或者如将两个文件的长度进行比较,长度不一致也可说明两个文件不完全相同。当然,通过文件内容签名进行比较的方式实现过程较快。
步骤302:分别获得所述两个文件相同长度的数据对应的内容签名。因为数据的长度不同则数据一定不完全相同。
步骤303:将所述两个文件中一个文件对应的内容签名分别与另一个文件对应的内容签名进行比较,并确定存在比较结果一致的内容签名。
步骤304:确定所述两个文件相似。
通过下面的实例来直观的了解两个文件的相似情况,参见图4所示的三个文件的示例,相同字母表示相同的数据。可见,文件1、文件2和文件3是不同的三个文件,但是都包括A、B、C、D四块数据,虽然这四块数据在三个文件中的位置和顺序各不相同,仍可确定这三个文件彼此相似。该实施例可具体应用在两篇文章是否雷同的确定。该实施例也可用于软件的版本管理,确定前后两个版本软件的差异。以及该实施例用于确定内容相同的两部电影,比如两部电影的画面和语言相同,只是一部是中文字幕,另一部是英文字幕。
参见图5,下面通过树型结构对确定相似文件的方法进行详细描述,具体实现流程如下:
步骤501:以两个文件对应的内容签名构成的二叉树均为4层结构为例,取两个文件的二叉树的根节点,即取两个文件的文件内容签名。
步骤502:将两个文件内容签名进行比较,发现比较结果不一致,说明这两个文件不完全相同。若比较结果一致,说明两个文件完全一样,则可结束流程,可以认为完全相同是相似的一个特例。
步骤503:采用广度遍历的方式,分别取两个文件对应的2层节点,即取分块数据的内容签名。
步骤504:将一个文件的2层节点依次与另一个文件的2层节点进行比较,可能发现一个文件的左节点与另一个文件的右节点相同,而一个文件的右节点与另一个文件的左节点不相同。
步骤505:判断两个文件的当前节点是否不存在子节点(即子分块数据的内容签名),即是否处于0层,若是,则结束流程,否则继续步骤506。
步骤506:取一个文件右节点的子节点及另一个文件左节点的子节点,该步骤较适宜采用深度遍历。
步骤507:进一步判断两个文件的子分块数据的内容签名是否一致,若确定在两个文件中存在彼此相同的子分块数据的内容签名,则说明存在相同的分块数据,只是在文件中的位置不同,结束流程,否则继续步骤505。
本实施例是以两个文件的长度相同为例进行的说明,在实际应用中可能经常遇到两个长度不同的文件之间的比较,在步骤501-504中,可以先确定两个文件的长度并进行比较,例如分块粒度为1MB,一个文件的长度为7MB,另一文件的长度为25MB,可直接将7MB文件的根节点(即3层节点)与25MB文件的子节点(即3层节点)进行比较。因为长度不同则数据一定不完全相同,所以只需将同层的节点进行比较。本实施例是针对两个文件的分块粒度相同的情况,如果分块粒度不同,则需要在比较时选择对等层的节点。
在确定了两个文件相似后,可采用列表或数据库等方式记录两个文件相似,以图4所示的三个文件为例,具体记录的方式有多种,如图6所示,以文件3为基准,其中“可用段”是对文件字节的描述,即在文件中的实际位置;“偏移”是指相对于文件3的位置,即相对位置的描述。叶子节点的偏移位置和块长度可以根据预设的粒度得出。如果父节点有左孩子节点和右孩子节点,则父节点的偏移位置跟其左孩子节点的偏移位置相同,父节点的块长度为其左右孩子节点块长度之和;如果父节点只有左孩子节点而没有右孩子节点,则父节点的偏移位置跟其左孩子节点的偏移位置相同,父节点的块长度为其左孩子节点块长度;如果父节点只有右孩子节点而没有左孩子节点,则父节点的偏移位置跟其右孩子节点的偏移位置相同,父节点的块长度为其右孩子节点块长度。
还可采用如图7所示的记录方式,其中的文件信息表是关于一个文件的描述,文件ID表示文件内容签名,哈希树是关于文件对应的所有内容签名的描述;资源索引表是关于文件及存有该文件的地址的描述,文件与地址是一对多的关系,表中是以URL地址为例记录的文件存储地址,也可以是设备的IP地址等;哈希值索引表是关于内容签名(即哈希值)与文件的描述,内容签名与文件是多对多的关系,即一个内容签名可能对应多个文件,多个内容签名可能对应同一个文件。
本实施例是按照从树结构的根节点到叶子节点的顺序对两个文件的各节点处的内容签名进行的比较,该实现方式主要适用于相似度可能较高的两个文件,遍历和比较的次数较少。对于可能存在多处内容签名相同、但在文件中的位置基本不同的两个文件,按照从树结构的叶子节点到根节点的顺序进行比较,可能效果更好。
确定了相似的文件,便可从两个相似的文件中获得相同部分的数据,尤其是应用在文件下载时,可大幅度提高下载文件的效率。参见图8所示,下载文件的主要方法流程如下:
步骤801:确定需要下载第一文件。可通过获得第一文件的文件内容签名或名称的方式确定需要下载第一文件。
步骤802:获得第一文件中分块数据的内容签名,并确定第二文件对应有与第一文件中相同的分块数据的内容签名。第二文件是种泛指,与第一文件相似的文件均称为第二文件,如图4中文件1和文件2均与文件3相似,但文件1与文件3相同的分块数据与文件2与文件3相同的分块数据可能不同(包括数据本身和数据在文件中位置的不同)。
步骤803:确定从第二文件中下载所述相同的分块数据。可同时从第一文件和第二文件进行下载。
下面结合图4和图7的示例对下载文件的方法进行详细描述,参见图9所示,具体方法流程如下:
步骤901:用户请求下载文件3。在用户发送的请求中,可能直接携带有文件3的内容签名,或者只携带了文件3的部分内容数据,需要根据部分内容数据计算得到文件3的内容签名。
步骤902:通过获得的文件3的内容签名,到文件信息表中查找该文件3对应的所有内容签名,即获得文件3对应的二叉树中的所有节点,可采用深度遍历或广度遍历等方式。文件3对应的所有内容签名包括A、B、C、D、E、F对应的内容签名,及其父节点......直到根节点的内容签名。根据分块粒度的设置,分块A、B、C、D、E、F也可能包括各自的子分块,则文件3对应的内容签名也包括子分块的内容签名。
步骤903:根据文件3的所有内容签名(哈希值),依次到哈希值索引表中查找对应有该内容签名的文件,以文件内容签名来标识各文件。此时获得了文件1和文件2的内容签名。
步骤904:分别根据文件1、文件2和文件3的内容签名到资源索引表中查找存有该文件的设备或路径。
步骤905:进一步从哈希值索引表中获得各分块数据在文件中的位置及对应的二叉树中的层次。对应的层次可表示与文件3的相似程度,层次越高相似程度越大。
步骤906:返回查找到的信息,包括URL地址或设备标识等。返回的信息可参见图6所示。可优先返回相似度高的文件对应的URL地址。
步骤907:根据获得的信息连接到相应的设备,与这些设备进行交互后建立下载连接。可优先连接相似度高的文件对应的设备,对于相似度较低的文件对应的设备可以有选择的连接或不进行连接,因为同时连接大量的设备,对本地设备来说也是一种负担。
步骤908:从连接到的设备上下载文件3中的数据。可见,用户不仅可以从存有文件3的设备上下载数据,还可以从存有文件1和文件2的设备上下载数据,实现了从更多的数据源下载,使得下载文件的效率大幅度提高。
在步骤901中,在用户的下载请求中可能包括文件3的原始URL地址,那么需要根据文件3的原始URL地址到资源索引表中获得文件3的内容签名,然后继续步骤902。
以上描述了确定相似文件及从相似文件获得数据的方法,可通过一些装置来实现上述的方法。
参见图10。本实施例中用于确定相似文件的装置1000包括接口模块1001、查找模块1002和判断模块1003。
接口模块1001用于获得两个文件的相关信息,特别是这两个文件对应的所有内容签名,本实施例中特指对应的二叉树。
查找模块1002用于分别获得所述两个文件相同长度的数据对应的内容签名。每次获得两个文件各对应的一个内容签名,由判断模块1003进行比较。
判断模块1003用于根据两个文件的相关信息确定两个文件的内容数据不完全相同,以及将所述两个文件中一个文件对应的内容签名分别与另一个文件对应的内容签名进行比较,并确定存在比较结果一致的内容签名,进一步确定所述两个文件相似。
装置1000可与用于建立文件内容签名结构(如二叉树)的装置1010连接,接口模块1001从装置1010处获得两个文件对应的所有内容签名。装置1010可包括搜索模块1011、分块模块1012、计算模块1013和构造模块1014。搜索模块1011用于从网络中搜索文件。分块模块1012用于将搜索到的文件根据分块粒度进行分块,获得多个分块数据。计算模块1013用于根据预设的算法对分块数据进行计算,得到相应的内容签名。构造模块1014用于将得到的内容签名构造成二叉树(或二维数组等)。
参见图11,本实施例中用于下载文件的装置1100包括接口模块1101、查找模块1102和控制模块1103。
接口模块1101用于确定需要下载第一文件。具体方式可以是通过用户的请求确定需要下载文件3。
查找模块1102用于获得第一文件中分块数据的内容签名,并确定第二文件对应有与第一文件中相同的分块数据的内容签名。查找模块1102具体可通过查找图4和图7所示的内容获得存有第一文件(相当于文件3)和第二文件(相当于文件1和文件2)的设备的信息。
控制模块1103用于确定从第二文件中下载所述相同的分块数据。控制模块1103根据查找模块1102的查找结果确定用户可以从文件1和文件2上获得需要的数据,指示接口模块1101将查找到的设备信息返回给用户。
装置1100还可包括用于存储图4和图7所示的内容的存储模块,本图未示出。
若接口模块1101接收到的是文件的部分内容数据,则装置1100还可包括用于计算得到内容数据对应的内容签名的计算模块,本图未示出。
装置1100可位于客户端,则下载文件的过程均由用户所在的客户端完成。装置1100也可位于服务器,则由用户所在的客户端与服务器交互实现下载文件的过程。装置1100中的各模块可位于不同的服务器,如接口模块1101和控制模块1103位于接入服务器,用于与客户端进行交互;查找模块1102位于索引服务器,及存储模块位于目录服务器。位于多个服务器的情况便于网络的分布式部署。
用于实现本发明实施例的软件可存储于软盘、硬盘和闪存等存储介质中。
本发明实施例通过对分块数据的内容签名的比较确定相似的文件,避免了采用原始数据比较造成的操作繁琐。本发明实施例还采用二叉树等结构描述文件的内容签名,便于获得内容签名时的遍历,尤其是采用满二叉树,有利于分块数据长度的计算及位置的确定。并且,本发明实施例将确定的相似文件应用在文件的下载中,可为用户提供较多的下载数据源,使下载的效率更高。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (18)

1.一种确定相似文件的方法,其特征在于,包括以下步骤:
获得两个文件的相关信息并确定两个文件的内容数据不完全相同;
分别获得所述两个文件相同长度的数据对应的内容签名;其中,在分别获得所述两个文件的分块数据的内容签名之前,根据预设的分块策略分别对所述两个文件进行分块;所述分块数据的内容签名是根据预设的算法对分块数据进行计算后获得的;或者所述分块数据的内容签名是:进一步对所述分块数据进行分块,获得多个子分块数据,并根据预设的算法分别对多个子分块数据进行计算,获得多个子分块数据的内容签名,以及根据所述算法对合并后的多个子分块数据的内容签名进行计算,获得所述分块数据的内容签名;
将所述两个文件中一个文件对应的内容签名分别与获得的另一个文件对应的内容签名进行比较,并确定存在比较结果一致的内容签名;
确定所述两个文件相似。
2.如权利要求1所述的方法,其特征在于,通过将所述两个文件的文件内容签名进行比较,确定所述两个文件的内容数据不完全相同。
3.如权利要求1所述的方法,其特征在于,采用树型结构记录所述文件内容签名、分块数据的内容签名及子分块数据的内容签名之间的关系。
4.如权利要求3所述的方法,其特征在于,分别获得所述两个文件的分块数据的内容签名的步骤包括:通过根据文件内容签名对相应的树型结构进行广度遍历,获得文件的分块数据的内容签名。
5.如权利要求1所述的方法,其特征在于,采用二维数组或二维列表将所述文件内容签名、分块数据的内容签名及子分块数据的内容签名记录在不同的行或列中。
6.如权利要求1所述的方法,其特征在于,进一步记录比较结果一致的内容签名所对应的分块数据分别在所述两个文件中的位置。
7.如权利要求6所述的方法,其特征在于,所述位置包括在文件中的实际位置和/或关于另一个文件的相对位置。
8.一种下载文件的方法,其特征在于,包括以下步骤:
确定需要下载第一文件;
获得第一文件中分块数据的内容签名,并将第一文件中分块数据的内容签名分别与第二文件中相同长度的分块数据的内容签名进行比较,其中两个文件的内容数据不完全相同;
确定第二文件对应有与第一文件中相同的分块数据的内容签名时,确定从第二文件中下载所述相同的分块数据。
9.如权利要求8所述的方法,其特征在于,第一文件与第二文件不完全相同。
10.如权利要求9所述的方法,其特征在于,通过将第一文件内容签名与第二文件内容签名进行比较,确定第一文件与第二文件不完全相同。
11.如权利要求8所述的方法,其特征在于,所述分块数据的内容签名是根据预设的算法对分块数据进行计算后获得的;或者
所述分块数据的内容签名是:进一步对所述分块数据进行分块,获得多个子分块数据,并根据预设的算法分别对多个子分块数据进行计算,获得多个子分块数据的内容签名,以及根据所述算法对合并后的多个子分块数据的内容签名进行计算,获得所述分块数据的内容签名。
12.如权利要求11所述的方法,其特征在于,采用树型结构记录文件内容签名、分块数据的内容签名及子分块数据的内容签名之间的关系。
13.如权利要求12所述的方法,其特征在于,获得第一文件中分块数据的内容签名的步骤包括:通过对关于第一文件的树型结构进行广度遍历,获得第一文件的分块数据的内容签名。
14.如权利要求13所述的方法,其特征在于,确定第二文件对应有与第一文件中相同的分块数据的内容签名的步骤包括:根据获得的第一文件的分块数据的内容签名对关于其它文件的树型结构进行遍历,确定对应有该内容签名的第二文件。
15.如权利要求13所述的方法,其特征在于,存有第一文件的分块数据的内容签名与对应有该内容签名的文件的对应关系,在获得第一文件中分块数据的内容签名后,根据获得的第一文件中分块数据的内容签名查找所述对应关系,确定第二文件对应有与第一文件中相同的分块数据的内容签名。
16.如权利要求11所述的方法,其特征在于,采用二维数组或二维列表将文件内容签名、分块数据的内容签名及子分块数据的内容签名记录在不同的行或列中。
17.一种用于确定相似文件的装置,其特征在于,包括:
接口模块,用于获得两个文件的相关信息;
查找模块,用于分别获得所述两个文件相同长度的数据对应的内容签名;其中,在分别获得所述两个文件的分块数据的内容签名之前,根据预设的分块策略分别对所述两个文件进行分块;所述分块数据的内容签名是根据预设的算法对分块数据进行计算后获得的;或者所述分块数据的内容签名是:进一步对所述分块数据进行分块,获得多个子分块数据,并根据预设的算法分别对多个子分块数据进行计算,获得多个子分块数据的内容签名,以及根据所述算法对合并后的多个子分块数据的内容签名进行计算,获得所述分块数据的内容签名;
判断模块,用于根据两个文件的相关信息确定两个文件的内容数据不完全相同,以将所述两个文件中一个文件对应的内容签名分别与获得的另一个文件对应的内容签名进行比较,并确定存在比较结果一致的内容签名,进一步确定所述两个文件相似。
18.一种用于下载文件的装置,其特征在于,包括:
接口模块,用于确定需要下载第一文件;
查找模块,用于获得第一文件中分块数据的内容签名,并将第一文件中分块数据的内容签名分别与第二文件中相同长度的分块数据的内容签名进行比较,其中两个文件的内容数据不完全相同;
控制模块,用于确定第二文件对应有与第一文件中相同的分块数据的内容签名时,确定从第二文件中下载所述相同的分块数据。
CN2007101665483A 2007-11-05 2007-11-05 一种确定相似文件的方法及装置 Active CN101184091B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101665483A CN101184091B (zh) 2007-11-05 2007-11-05 一种确定相似文件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101665483A CN101184091B (zh) 2007-11-05 2007-11-05 一种确定相似文件的方法及装置

Publications (2)

Publication Number Publication Date
CN101184091A CN101184091A (zh) 2008-05-21
CN101184091B true CN101184091B (zh) 2012-03-07

Family

ID=39449173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101665483A Active CN101184091B (zh) 2007-11-05 2007-11-05 一种确定相似文件的方法及装置

Country Status (1)

Country Link
CN (1) CN101184091B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8311058B2 (en) 2008-05-10 2012-11-13 Vantrix Corporation Modular transcoding pipeline
US8220051B2 (en) 2007-09-28 2012-07-10 Vantrix Corporation Generation and delivery of multimedia content-adaptation notifications
CN101350837B (zh) * 2008-08-28 2012-07-04 深圳市迅雷网络技术有限公司 一种文件包分卷的识别方法及系统
CA2778215C (en) 2009-12-01 2017-07-04 Vantrix Corporation System and methods for efficient media delivery using cache
CN103428231B (zh) * 2012-05-16 2018-06-01 腾讯科技(深圳)有限公司 离线下载方法和系统
WO2013135203A1 (en) * 2012-03-16 2013-09-19 Tencent Technology (Shenzhen) Company Limited Offline download method and system
CN103457960B (zh) 2012-05-15 2018-03-09 腾讯科技(深圳)有限公司 网页游戏中加载文件的方法及系统
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
CN103167159B (zh) * 2012-09-25 2015-02-11 深圳市金立通信设备有限公司 一种手机中快速查找相同文件内容的方法
CN102984692B (zh) * 2012-11-19 2016-01-27 广东欧珀移动通信有限公司 一种移动终端网络内容的更新方法、系统及移动终端
CN105808783B (zh) * 2016-03-31 2019-08-20 中国互联网络信息中心 一种不同域名格式的大文件数据差异性分析方法

Also Published As

Publication number Publication date
CN101184091A (zh) 2008-05-21

Similar Documents

Publication Publication Date Title
CN101184091B (zh) 一种确定相似文件的方法及装置
CN106663056B (zh) 文件系统中的元数据索引搜索
US8489549B2 (en) Method and system for resolving conflicts between revisions to a distributed virtual file system
US9672221B2 (en) Identification of moved or renamed files in file synchronization
US10452484B2 (en) Systems and methods for time-based folder restore
CN102882985B (zh) 基于云存储的文件共享方法
US8117215B2 (en) Distributing content indices
US9910906B2 (en) Data synchronization using redundancy detection
US10284433B2 (en) Data synchronization using redundancy detection
US20120203748A1 (en) Surrogate hashing
US9971882B2 (en) System and method for multimedia content protection on cloud infrastructures
US20050086254A1 (en) Content oriented index and search method and system
US20110099200A1 (en) Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting
US9959346B2 (en) System and method to store video fingerprints on distributed nodes in cloud systems
KR100916162B1 (ko) 핑거프린트 데이터베이스 관리 방법 및 시스템
US20020184252A1 (en) File tree comparator
JP2017107556A (ja) コンテンツ指向ネットワーク内のキーカタログ
JP6218835B2 (ja) 効率的な仮想マシン展開方法
CN104378397A (zh) 一种程序包增量更新发布的方法与系统
CN109947759A (zh) 一种数据索引建立方法、索引检索方法及装置
JP2012531644A (ja) ネットワーク・メディア・デバイス上の求められているコンテンツ項目にマーク付けするためのシステム、方法及びコンピュータ・プログラム
CN107818113B (zh) 文件访问位置的确定方法及装置
CN115563073A (zh) 分布式元数据的数据处理的方法、装置及电子设备
CN104822076A (zh) 一种数据的分发方法及装置
Mabe et al. Visualizing webpage changes over time

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170619

Address after: A District No. 9018 building 518000 Guangdong Han innovation city of Shenzhen province Nanshan District high tech park, North Central Avenue, 4 floor 401

Patentee after: Shenzhen thunder network culture Co., Ltd.

Address before: 518057 Guangdong, Shenzhen, Nanshan District science and technology in the road, Shenzhen, No. 11, software park, building 7, level 8, two

Patentee before: Xunlei Network Technology Co., Ltd., Shenzhen

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180206

Address after: Nanshan District Guangdong streets of science and technology of Shenzhen city in Guangdong province 518057 two Road No. 11 Shenzhen Software Park Building 7, 8 floor

Patentee after: Xunlei Network Technology Co., Ltd., Shenzhen

Address before: A District No. 9018 building 518000 Guangdong Han innovation city of Shenzhen province Nanshan District high tech park, North Central Avenue, 4 floor 401

Patentee before: Shenzhen thunder network culture Co., Ltd.

TR01 Transfer of patent right