CN103581230A - 文件传输系统和方法、接收端、发送端 - Google Patents

文件传输系统和方法、接收端、发送端 Download PDF

Info

Publication number
CN103581230A
CN103581230A CN201210261429.7A CN201210261429A CN103581230A CN 103581230 A CN103581230 A CN 103581230A CN 201210261429 A CN201210261429 A CN 201210261429A CN 103581230 A CN103581230 A CN 103581230A
Authority
CN
China
Prior art keywords
file
cryptographic hash
transmitted
full text
partial document
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
CN201210261429.7A
Other languages
English (en)
Other versions
CN103581230B (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 Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems 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 Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201210261429.7A priority Critical patent/CN103581230B/zh
Publication of CN103581230A publication Critical patent/CN103581230A/zh
Application granted granted Critical
Publication of CN103581230B publication Critical patent/CN103581230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种文件传输系统和方法、接收端、发送端。该方法包括:即时通讯发送端,用于向即时通讯服务器发起文件传输请求及向索引服务器发起文件查询请求;所述索引服务器,用于根据所述文件查询请求判断存储服务器上是否存在待传输文件,并当所述存储服务器上存在所述待传输文件时,返回所述待传输文件的下载信息到所述即时通讯发送端;所述即时通讯服务器,用于接收所述文件传输请求及下载信息,并将所述文件传输请求及下载信息发送给即时通讯接收端;所述即时通讯接收端,用于根据所述文件传输请求及所述下载信息从所述存储服务器上下载所述待传输文件。上述文件传输系统和方法,既提高了文件传输的效率,又提高了网络资源的利用率。

Description

文件传输系统和方法、接收端、发送端
技术领域
本发明涉及数据传输技术,特别是涉及一种文件传输系统和方法、接收端、发送端。
背景技术
随着互联网技术的发展,上网用户越来越多,用户之间需进行文件传输。实现两个用户之间传输文件的方法有很多,如通过移动硬盘或U盘直接拷贝,或者通过邮件系统发送附件的方式传输,或者借助即时通讯软件工具进行点对点或通过服务器进行中转传输。
通过邮件系统发送附件的方式传输文件通常会对邮件支持的附件大小进行限制,且需知道接收方的电子邮箱帐号,只能进行异步传输。
传统的借助即时通讯软件工具实现两个用户之间传输文件,分为直接传输方式和离线传输方式,直接传输是在服务器的帮助下两个客户端之间建立传输通道,然后由一个客户端选择本地文件进行传输;离线传输是指接收客户端不在线时,由发送客户端先将文件上传到服务器进行存储,当接收客户端上线时,接收服务器发送的通知从服务器取回文件。两种方式均需将本地文件进行上传,一端的下载速度取决于另一端的上传速度,由于网络带宽上传的限制,上传一个大文件需要花费较长时间,致使接收客户端有较好的下载带宽也无法发挥作用,造成网络资源的浪费,且由于不同网络运营商之间的竞争,导致跨网传输更加缓慢,为了获得较快的上传速度,可升级发送客户端的带宽,然而这样又会增加成本。
发明内容
基于此,有必要提供一种能提高网络资源利用率的文件传输系统。
一种文件传输系统,包括:
即时通讯发送端,用于向即时通讯服务器发起文件传输请求及向索引服务器发起文件查询请求;
所述索引服务器,用于根据所述文件查询请求判断存储服务器上是否存在待传输文件,并当所述存储服务器上存在所述待传输文件时,返回所述待传输文件的下载信息到所述即时通讯发送端;
所述即时通讯服务器,用于接收所述文件传输请求及下载信息,并将所述文件传输请求及下载信息发送给即时通讯接收端;
所述即时通讯接收端,用于根据所述文件传输请求及所述下载信息从所述存储服务器上下载所述待传输文件。
此外,还有必要提供一种能提高网络资源利用率的文件传输方法。
一种文件传输方法,包括以下步骤:
获取文件传输请求及文件查询请求;
根据所述文件查询请求判断存储服务器上是否存在待传输文件,若存在,则返回所述待传输文件的下载信息到即时通讯发送端;
将所述文件传输请求及下载信息发送给即时通讯接收端;
所述即时通讯接收端根据所述文件传输请求及下载信息从所述存储服务器上下载所述待传输文件。
此外,还提供了一种接收端。
一种接收端,包括:
第一接收模块,用于接收文件传输请求以及根据文件查询请求判断出存储服务器上存在待传输文件时返回的所述待传输文件的下载信息;
下载模块,用于根据所述文件传输请求及下载信息从所述存储服务器上下载所述待传输文件。
此外,还提供了一种发送端。
一种发送端,包括:
请求发起模块,用于发起文件查询请求及文件传输请求;
第二接收模块,用于接收根据文件查询请求判断出存储服务器上存在待传输文件时返回的所述待传输文件的下载信息;
发送模块,用于将所述文件传输请求及待传输文件的下载信息发送给接收端。
上述文件传输系统和方法、接收端、发送端,采用获取文件传输请求及文件查询请求时,查询存储服务器上是否有待传输文件,且存储服务器上存在该待传输文件时,返回待传输文件的下载信息,将下载信息发送给即时通讯接收端,即时通讯接收端根据下载信息从存储服务器上下载待传输文件,在传输文件的过程中,即时通讯发送端不需上传待传输文件,节省了上传待传输文件的网络带宽,即时通讯接收端下载待传输文件的速率也不受限于即时通讯发送端上传的速率,既提高了文件传输的效率,又提高了网络资源的利用率。
附图说明
图1为一个实施例中文件传输系统的结构示意图;
图2为另一个实施例中文件传输系统的结构示意图;
图3为另一个实施例中文件传输系统的结构示意图;
图4为一个实施例中文件传输方法的流程图;
图5为一个实施例中图4中步骤S120的具体流程图;
图6为一个实施例中接收端的内部结构示意图;
图7为一个实施例中发送端的内部结构示意图。
具体实施方式
下面结合具体的实施例及附图对文件传输系统及方法的技术方案进行详细的描述,以使其更加清楚。
如图1所示,在一个实施例中,一种文件传输系统,包括即时通讯发送端110、即时通讯服务器120、索引服务器130、存储服务器140和即时通讯接收端150。其中:
即时通讯发送端110用于向即时通讯服务器120发起文件传输请求及向索引服务器130发起文件查询请求。
具体的,即时通讯发送端110登录即时通讯服务器120后,向即时通讯接收端150传输文件,需向即时通讯服务器120发起文件传输请求,同时向索引服务器130发起文件查询请求,以查询在存储服务器140上是否存在待传输文件。
索引服务器130用于根据文件查询请求判断存储服务器140上是否存在该待传输文件。
当存储服务器140上存在待传输文件时,索引服务器130返回该待传输文件的下载信息到即时通讯发送端110。其中,下载信息包括文件的部分文件哈希值,以及文件的全文哈希值、文件大小、文件名称、下载链接地址和下载验证信息中的一种或两种以上。
当存储服务器140上不存在待传输文件时,索引服务器130返回不存在信息到即时通讯发送端110。即时通讯发送端110上传该待传输文件到即时通讯服务器120。
此外,存储服务器140可为分布在网络中的服务器集群。
即时通讯服务器120用于在存储服务器140上存在待传输文件时,接收即时通讯发送端110上传的文件传输请求及下载信息,并将文件传输请求及下载信息发送给即时通讯接收端150。
即时通讯接收端150用于根据文件传输请求及下载信息从存储服务器140上下载待传输文件。具体的,即时通讯接收端150根据待传输文件的部分哈希值从存储服务器140上下载待传输文件。
在一个实施例中,如图2所示,上述文件传输系统,除了包括即时通讯发送端110、即时通讯服务器120、索引服务器130、存储服务器140和即时通讯接收端150,还包括索引数据库160和离线下载服务器170。
索引数据库160用于存储预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系。具体的,部分文件哈希值与全文哈希值可为一对一或一对多的映射关系,即一个部分文件哈希值可对应一个全文哈希值,或者一个部分文件哈希值可能同时对应多个全文哈希值。
文件的部分文件哈希值的计算方法是:将文件按预定大小分为多个分片,从该多个分片中选取预定个分片分别计算信息摘要值,将预定个分片的信息摘要值及文件长度作为该文件的部分文件哈希值。例如,一个文件大小为T,按照分片大小P(T),将文件划分为N=(T+P(T)-1)/P(T)片,文件的三段部分文件哈希值占用28个字节,前20个字节为三段分片信息摘要(MD5)值的SHA1值,低8字节为文件长度,计算得到的部分文件哈希值为三段哈希值。采用此计算方法得到的部分文件哈希值,可避免一定的冲突,因仅使用文件头部或尾部,对某一些音频或视频文件,被截断后,容易出现哈希值冲突,为此抽取文件三个不同地方,同时考虑文件的长度,极大的降低了出现哈希值冲突的可能性。
本实施例中,预定个分片可为三个分片,三个分可取文件头分片、文件中间分片和文件尾部分片。分别计算三个分片的信息摘要值,将三个分片的信息摘要值及文件长度作为文件的部分文件哈希值。取三个分片计算文件部分哈希值计算量小,且可较为准确的区分不同的文件。
文件的全文哈希值是指整个文件的哈希值,不同文件的全文哈希值不同,是用于区分文件唯一的值。
离线下载服务器170用于从互联网或第三方存储服务器上下载文件,计算文件的部分文件哈希值与全文哈希值,建立文件的部分文件哈希值与文件的全文哈希值之间的映射关系,并存储到索引数据库160中,以及将下载的文件存储到存储服务器140上。
具体的,通过离线下载服务器170获取文件的部分文件哈希值和全文哈希值,并建立两者之间的映射关系,并将该映射关系存储到索引数据库160中,方便即时通讯发送端110从索引服务器130查询,且将下载的文件存储到存储服务器140上,丰富了存储服务器的索引文件量,极大提升了即时通讯发送端110传输文件之前,在存储服务器140上查询到待传输文件存在的几率。
即时通讯发送端110还用于向索引服务器130上传待传输文件的部分文件哈希值。具体的,即时通讯发送端110向索引服务器130发起文件查询请求时,上传待传输文件的部分文件哈希值,以便索引服务器130根据该部分文件哈希值判断存储服务器140上是否存在该待传输文件。
索引服务器130还用于根据待传输文件的部分文件哈希值从索引数据库160中存储的预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系查找,若存在与待传输文件的部分文件哈希值对应的全文哈希值,则返回待传输文件的下载信息到即时通讯发送端110。
其中,下载信息包括待传输文件的部分文件哈希值。具体的,根据待传输文件的部分文件哈希值在映射关系中查找到对应的全文哈希值,表示在存储服务器140上存在待传输文件,将待传输文件的部分文件哈希值返回给即时通讯发送端110,即时通讯发送端110将待传输文件的部分文件哈希值通过即时通讯服务器120发送给即时通讯接收端150,即时通讯接收端150根据待传输文件的部分文件哈希值从存储服务器140上下载待传输文件,如此即时通讯发送端110不需将待传输文件上传,减少了上传文件所占有的网络带宽资源,且即时通讯接收端150下载待传输文件也不需受限于即时通讯发送端110的上传速度,提高了网络资源的利用率。
进一步的,在一个实施例中,索引服务器130还用于当索引数据库160中不存在与待传输文件的部分文件哈希值对应的全文哈希值时,接收即时通讯发送端110上传的待传输文件的部分哈希值与全文哈希值,并将待传输文件的部分文件哈希值与全文哈希值存入索引数据库160中。且即时通讯发送端110还用于通过即时通讯服务器120与即时通讯接收端150建立通信通路,然后即时通讯发送端110上传待传输文件到即时通讯服务器120,即时通讯接收端150从即时通讯服务器120接收待传输文件。即时通讯服务器120还将待传输文件同步到存储服务器140中。
进一步的,在一个实施例中,上述文件传输系统还可包括中转服务器(图未示),在存储服务器140上不存在待传输文件时,即时通讯发送端110将待传输文件上传到中转服务器上,即时通讯接收端150从中转服务器上下载待传输文件。即时通讯发送端110采用离线方式发送的待传输文件,也可先将待传输文件上传到中转服务器,然后通知即时通讯接收端150从中转服务器上下载待传输文件。此外,即时通讯发送端110采用离线方式发送待传输文件时,若存储服务器140上存在该待传输文件,中转服务器也可从存储服务器140上获取待传输文件,然后通知即时通讯接收端150从中转服务器下载待传输文件。中转服务器也可将即时通讯发送端110上传的待传输文件同步到存储服务器140中。
进一步的,在一个实施例中,索引服务器130还用于当根据待传输文件的部分文件哈希值查找到多个对应的全文哈希值时,接收即时通讯发送端110上传的待传输文件的全文哈希值,根据待传输文件的全文哈希值对所述多个对应的全文哈希值进行排除重复处理,得到在索引数据库160中存在与待传输文件的全文哈希值相同的全文哈希值,则返回待传输文件的下载信息到即时通讯发送端110。
具体的,根据待传输文件的部分文件哈希值在索引数据库160中查找到多个对应的全文哈希值,表示多个全文哈希值的部分文件哈希值相同,为此,需对其进行排除重复处理,可直接获取待传输文件的全文哈希值,采用全文哈希值进行比对,得到在索引数据库160中存在与待传输文件的全文哈希值相同的全文哈希值,则表示存在待传输文件,返回待传输文件的下载信息到即时通讯发送端110。
此外,即时通讯发送端110可发送待传输文件的文件名到索引服务器130,在索引服务器130预先存储有大量文件的文件名,索引服务器130根据上传的文件名查找,若有匹配的文件名,则返回下载信息给即时通讯发送端110。然后即时通讯服务器120将文件传输请求及下载信息传输给即时通讯接收端150,即时通讯接收端150根据文件传输请求及下载信息从存储服务器140下载待传输文件。
索引服务器130上设缓存,用于缓存已查询过的文件的部分哈希值与全文哈希值之间的映射关系。如此,即时通讯发送端110传输相同文件时,向索引服务器130查询时,可快速从缓存中查询到,提高了查询速率。
在一个实施例中,如图3所示,上述文件传输系统,除了包括即时通讯发送端110、即时通讯服务器120、索引服务器130、存储服务器140、即时通讯接收端150,索引数据库160和离线下载服务器170,还包括下载客户端180、离线下载任务管理服务器190、离线数据库200和离线下载任务调度服务器210。其中:
下载客户端180用于向离线下载任务管理服务器190提交离线下载任务。具体的,用户通过下载客户端180提交离线下载任务。下载客户端180可为web入口。
离线下载任务管理服务器190用于接收下载客户端180提交的离线下载任务,为每个独立的离线下载任务生成唯一的标识编号,将离线下载任务的原始链接信息写入离线数据库200中,并接收离线下载任务调度服务器210下载进度的上报,以及供下载客户端180查询离线下载进度。离线数据库200用于存储离线下载任务的原始链接信息以及离线下载完的数据。
离线下载任务调度服务器210用于对离线下载任务请求进行除重复处理处理,将同一个离线下载请求只需向离线下载服务器170发送一次,且根据离线下载服务器170的负载情况,动态将离线下载任务调度到不同的离线下载服务器170上。
离线下载服务器170用于接收离线下载任务调度服务器210的调度,从离线数据库200中获取原始链接信息,执行下载任务,向离线下载任务调度服务器210汇报离线下载的进度和速度信息。此外,离线下载服务器170还向离线下载任务调度服务器210注册自己的地址,提供磁盘空间、CPU负载信息的上报等。具体的,不同用户可以共享同一个离线下载任务的离线下载进度和速度信息。
离线下载任务调度服务器210还用于接收离线下载服务器170上报的下载进度、速度信息,并将其同步到离线下载任务管理服务器190。
此外,离线下载任务管理服务器190还可根据离线下载任务请求从离线数据库200中查找是否存在下载完成的对应的数据,若存在,则不需再次下载,并通知下载客户端离线下载成功。
如图4所示,在一个实施例中,一种文件传输方法,包括以下步骤:
步骤S110,获取文件传输请求及文件查询请求。
具体的,即时通讯发送端登录即时通讯服务器后,向即时通讯接收端传输文件,需向即时通讯服务器发起文件传输请求,同时向索引服务器发起文件查询请求,以查询在存储服务器上是否存在待传输文件。
步骤S120,根据文件查询请求判断存储服务器上是否存在待传输文件,当存在时,返回待传输文件的下载信息到即时通讯发送端。
具体的,下载信息包括文件的部分文件哈希值,以及文件的全文哈希值、文件大小、文件名称、下载链接地址和下载验证信息中的一种或两种以上。此外,该服务器。当存储服务器上不存在待传输文件时,索引服务器返回不存在信息到即时通讯发送端。即时通讯发送端上传该待传输文件到即时通讯服务器。
步骤S130,将文件传输请求及下载信息发送给即时通讯接收端。
具体的,即时通讯服务器在存储服务器上存在待传输文件时,接收即时通讯发送端上传的文件传输请求及下载信息,并将文件传输请求及下载信息发送给即时通讯接收端。
步骤S140,即时通讯接收端根据文件传输请求及下载信息从存储服务器上下载待传输文件。
具体的,即时通讯接收端根据待传输文件的部分哈希值从存储服务器上下载待传输文件。
如图5所示,在一个实施例中,步骤S120具体为:
步骤S121,获取待传输文件的部分文件哈希值。
具体的,文件的部分文件哈希值的计算方法是:将文件按预定大小分为多个分片,从该多个分片中选取预定个分片分别计算信息摘要值,将预定个分片的信息摘要值及文件长度作为该文件的部分文件哈希值。例如,一个文件大小为T,按照分片大小P(T),将文件划分为N=(T+P(T)-1)/P(T)片,文件的三段部分文件哈希值占用28个字节,前20个字节为三段分片信息摘要(MD5)值的SHA1值,低8字节为文件长度,计算得到的部分文件哈希值为三段哈希值。本实施例中,预定个分片可为三个分片,三个分可取文件头分片、文件中间分片和文件尾部分片。分别计算三个分片的信息摘要值,将三个分片的信息摘要值及文件长度作为文件的部分文件哈希值。取三个分片计算文件部分哈希值计算量小,且可较为准确的区分不同的文件。
步骤S123,根据待传输文件的部分文件哈希值从预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找,若存在与待传输文件的部分文件哈希值对应的全文哈希值,则返回待传输文件的下载信息到即时通讯发送端。
具体的,可预先建立文件的部分文件哈希值与文件的全文哈希值之间的映射关系。
在一个实施例中,预先建立文件的部分文件哈希值与文件的全文哈希值之间的映射关系的步骤具体为:从互联网或第三方存储服务器上下载文件,计算文件的部分文件哈希值与全文哈希值,建立文件的部分文件哈希值与文件的全文哈希值之间的映射关系。
具体的,通过离线下载服务器获取文件的部分文件哈希值和全文哈希值,并建立两者之间的映射关系,并将该映射关系存储到索引数据库中,方便即时通讯发送端从索引服务器查询,且将下载的文件存储到存储服务器上,丰富了存储服务器的索引文件量,极大提升了即时通讯发送端传输文件之前,在存储服务器上查询到待传输文件存在的几率。
进一步的,当根据待传输文件的部分文件哈希值查找到多个对应的全文哈希值时,获取待传输文件的全文哈希值,根据所述待传输文件的全文哈希值对所述多个对应的全文哈希值进行排除重复处理,得到存在与待传输文件的全文哈希值对应的全文哈希值,则返回待传输文件的下载信息到即时通讯发送端。
具体的,根据待传输文件的部分文件哈希值在索引数据库中查找到多个对应的全文哈希值,表示多个全文哈希值的部分文件哈希值相同,为此,需对其进行排除重复处理,可直接获取待传输文件的全文哈希值,采用全文哈希值进行比对,得到在索引数据库中存在与待传输文件的全文哈希值相同的全文哈希值,则表示存在待传输文件,返回待传输文件的下载信息到即时通讯发送端。
进一步的,在一个实施例中,上述文件传输系统,在根据待传输文件的部分文件哈希值从预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找的步骤之后,还包括步骤:当不存在与待传输文件的部分文件哈希值对应的全文哈希值时,接收上传的待传输文件的部分文件哈希值与全文哈希值,并建立待传输文件的部分文件哈希值与文件的全文哈希值的映射关系。
具体的,存储服务器上不存在待传输文件时,索引服务器可接收即时通讯发送端上传的待传输文件的部分文件哈希值和全文哈希值,并将其存入索引数据库中。同时,即时通讯服务器接收即时通讯发送端上传的待传输文件,并将待传输文件同步到存储服务器。
在其他实施例中,上述文件传输方法,还包括步骤:将已查询过的文件的部分哈希值与全文哈希值之间的映射关系进行缓存。如此,即时通讯发送端传输相同文件时,向索引服务器查询时,可快速从缓存中查询到,提高了查询速率。
此外,上述文件传输方法,还包括步骤:下载客户端提交离线下载任务请求,离线下载任务管理服务器接收离线下载任务请求,并生成唯一标识编号,且将离线下载任务的原始链接信息写入离线数据库中,并将离线下载任务请求发送给离线下载任务调度服务器进行排除重复处理,然后由离线下载任务调度服务器根据离线下载服务器的负载情况,动态将离线下载任务调度到不同的离线下载服务器,离线下载服务器根据离线下载任务请求从离线数据库中获取原始链接信息进行任务下载。通过离线下载丰富了存储服务器的索引文件量。此外,下载客户端、离线下载任务管理服务器及离线下载任务调度服务器的其他功能如文件传输系统中所描述,在此不再赘述。
此外,还提供了一种接收端。如图6所示,在一个实施例中,该接收端30包括第一接收模块310和下载模块320。其中,第一接收模块310用于接收文件传输请求以及根据文件查询请求判断出存储服务器上存在待传输文件时返回的该待传输文件的下载信息;下载模块320用于根据该文件传输请求及下载信息从存储服务器上下载该待传输文件。
进一步地,第一接收模块310还用于接收在根据待传输文件的部分文件哈希值在存储服务器上存储的预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找到对应的全文哈希值时返回的所述待传输文件的下载信息;以及还用于接收在根据所述待传输文件的部分文件哈希值在存储服务器上存储的预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找到多个对应的全文哈希值,并根据所述待传输文件的全文哈希值对所述多个对应的全文哈希值进行排除重复处理,得到存在与上传的待传输文件的全文哈希值相同的全文哈希值时返回的待传输文件的下载信息。
其中,下载信息包括文件的部分文件哈希值,以及文件的全文哈希值、文件大小、文件名称、下载链接地址和下载验证信息中的一种或两种以上。
此外,还提供一种发送端。如图7所示,在一个实施例中,发送端40包括请求发起模块410、第二接收模块420和发送模块430。其中:
请求发起模块410用于发起文件查询请求及文件传输请求。
第二接收模块420用于接收根据文件查询请求判断出存储服务器上存在待传输文件时返回的所述待传输文件的下载信息。
发送模块430用于将文件传输请求及待传输文件的下载信息发送给接收端。
进一步地,请求发起模块410还用于将待传输文件的部分文件哈希值上传到存储服务器,或者当存储服务器上不存在与该待传输文件的部分文件哈希值对应的全文哈希值时,上传所述待传输文件的部分哈希值与全文哈希值到存储服务器,或者当在存储服务器上根据该待传输文件的部分文件哈希值查找到多个对应的全文哈希值时,上传该待传输文件的全文哈希值到存储服务器。
进一步的,在一个实施例中,上述发送端还包括处理模块,用于按预定大小分为多个分片,从该多个分片中选取预定个分片分别获取信息摘要值,将预定个分片的信息摘要值及文件长度作为所述待传输文件的部分文件哈希值。本实施例中,预定个分片可为三个分片,三个分可取文件头分片、文件中间分片和文件尾部分片。分别计算三个分片的信息摘要值,将三个分片的信息摘要值及文件长度作为文件的部分文件哈希值。取三个分片计算文件部分哈希值计算量小,且可较为准确的区分不同的文件。
上述文件传输系统和方法,采用获取文件传输请求及文件查询请求时,查询存储服务器上是否待传输文件,且存储服务器上存在时,返回待传输文件的下载信息,将下载信息发送给即时通讯接收端,即时通讯接收端根据下载信息从存储服务器上下载待传输文件,在传输文件的过程中,即时通讯发送端不需上传待传输文件,节省了上传待传输文件的网络带宽,即时通讯接收端下载待传输文件的速率也不受限于即时通讯发送端上传的速率,提高了文件传输的效率,提高了网络资源的利用率。
另外,根据上传的待传输文件的部分文件哈希值从预先建立的文件的部分文件哈希值与全文哈希值之间映射关系查找,是否存在对应的全文哈希值,进而判断存储服务器上是否存在待传输文件,因部分文件哈希值较小,查找速度快,提高了查找效率;当待传输文件的部分文件哈希值对应多个全文哈希值时,根据待传输文件的全文哈希值进行排除重复处理,提高了查找的准确性,进一步提高了判断存储服务器上是否存在待传输文件的准确性;采用离线下载服务器从互联网或第三方存储服务器上下载文件,丰富了索引数据库中文件的部分文件哈希值与全文哈希值映射关系,以及存储服务器上文件的索引量,可提高即时通讯发送端在存储服务器上查询存在待传输文件的几率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (18)

1.一种文件传输系统,其特征在于,包括:
即时通讯发送端,用于向即时通讯服务器发起文件传输请求及向索引服务器发起文件查询请求;
所述索引服务器,用于根据所述文件查询请求判断存储服务器上是否存在待传输文件,并当所述存储服务器上存在所述待传输文件时,返回所述待传输文件的下载信息到所述即时通讯发送端;
所述即时通讯服务器,用于接收所述文件传输请求及下载信息,并将所述文件传输请求及下载信息发送给即时通讯接收端;
所述即时通讯接收端,用于根据所述文件传输请求及所述下载信息从所述存储服务器上下载所述待传输文件。
2.根据权利要求1所述的文件传输系统,其特征在于,还包括:
索引数据库,用于存储预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系;
所述即时通讯发送端还用于向所述索引服务器上传待传输文件的部分文件哈希值;
所述索引服务器还用于根据所述待传输文件的部分文件哈希值从所述预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系查找,若存在与所述待传输文件的部分文件哈希值对应的全文哈希值,则返回所述待传输文件的下载信息到即时通讯发送端;以及还用于当不存在与所述待传输文件的部分文件哈希值对应的全文哈希值时,接收所述即时通讯发送端上传的待传输文件的部分哈希值与全文哈希值,并将所述待传输文件的部分文件哈希值与全文哈希值存入所述索引数据库中,以供再次查询。
3.根据权利要求2所述的文件传输系统,其特征在于,所述索引服务器还用于当根据所述待传输文件的部分文件哈希值查找到多个对应的全文哈希值时,接收即时通讯发送端上传的待传输文件的全文哈希值,根据所述待传输文件的全文哈希值对所述多个对应的全文哈希值进行排除重复处理,在所述索引数据库中存在与上传的待传输文件的全文哈希值相同的全文哈希值,则返回所述待传输文件的下载信息到即时通讯发送端。
4.根据权利要求2所述的文件传输系统,其特征在于,还包括:
离线下载服务器,用于从互联网或第三方存储服务器上下载文件,计算文件的部分文件哈希值与全文哈希值,建立文件的部分文件哈希值与文件的全文哈希值之间的映射关系,并存储到所述索引数据库中,以及将下载的文件存储到所述存储服务器上。
5.根据权利要求2所述的文件传输系统,其特征在于,所述索引服务器上设缓存,用于缓存已查询过的文件的部分哈希值与全文哈希值之间的映射关系。
6.一种文件传输方法,包括以下步骤:
获取文件传输请求及文件查询请求;
根据所述文件查询请求判断服务器上是否存在待传输文件,若存在,则返回所述待传输文件的下载信息到即时通讯发送端;
将所述文件传输请求及下载信息发送给即时通讯接收端;
所述即时通讯接收端根据所述文件传输请求及下载信息从所述存储服务器上下载所述待传输文件。
7.根据权利要求6所述的文件传输方法,其特征在于,所述根据所述文件查询请求判断存储服务器上是否存在所述待传输文件,若存在,则返回所述待传输文件的下载信息到即时通讯发送端的步骤具体为:
获取待传输文件的部分文件哈希值;
根据所述待传输文件的部分文件哈希值从预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找,若存在与所述待传输文件的部分文件哈希值对应的全文哈希值,则返回所述待传输文件的下载信息到即时通讯发送端;当不存在与所述待传输文件的部分文件哈希值对应的全文哈希值时,接收所述上传的待传输文件的部分文件哈希值与全文哈希值,并建立所述待传输文件的部分文件哈希值与文件的全文哈希值的映射关系。
8.根据权利要求7所述的文件传输方法,其特征在于,所述获取待传输文件的部分文件哈希值的步骤具体包括:
将待传输文件按预定大小分为多个分片,从该多个分片中选取预定个分片分别获取信息摘要值,将预定个分片的信息摘要值及文件长度作为所述待传输文件的部分文件哈希值。
9.根据权利要求7所述的文件传输方法,其特征在于,所述根据所述待传输文件的部分文件哈希值从预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找,若存在与所述待传输文件的部分文件哈希值对应的全文哈希值,则将所述待传输文件的下载信息及文件传输请求发送给接收端的步骤具体包括:
根据所述待传输文件的部分文件哈希值从预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找到多个对应的全文哈希值,获取待传输文件的全文哈希值,根据所述待传输文件的全文哈希值对所述多个对应的全文哈希值进行排除重复处理,得到存在与上传的待传输文件的全文哈希值相同的全文哈希值,则返回所述待传输文件的下载信息到即时通讯发送端。
10.根据权利要求7所述的文件传输方法,其特征在于,在所述获取待传输文件的部分文件哈希值的步骤之前,还包括步骤:从互联网或第三方存储服务器上下载文件,计算文件的部分文件哈希值与全文哈希值,建立文件的部分文件哈希值与文件的全文哈希值之间的映射关系。
11.根据权利要求7所述的文件传输方法,其特征在于,在所述根据所述待传输文件的部分文件哈希值从预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找,若存在与所述待传输文件的部分文件哈希值对应的全文哈希值,则将所述待传输文件的下载信息及文件传输请求发送给接收端的步骤之后,还包括步骤:将已查询过的文件的部分哈希值与全文哈希值之间的映射关系进行缓存。
12.一种接收端,其特征在于,包括:
第一接收模块,用于接收文件传输请求以及根据文件查询请求判断出存储服务器上存在待传输文件时返回的所述待传输文件的下载信息;
下载模块,用于根据所述文件传输请求及下载信息从所述存储服务器上下载所述待传输文件。
13.根据权利要求12所述的接收端,其特征在于,所述第一接收模块还用于接收在根据待传输文件的部分文件哈希值在所述存储服务器上存储的预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找到对应的全文哈希值时返回的所述待传输文件的下载信息。
14.根据权利要求12所述的接收端,其特征在于,所述第一接收模块还用于接收在根据所述待传输文件的部分文件哈希值在所述存储服务器上存储的预先建立的文件的部分文件哈希值与文件的全文哈希值之间的映射关系中查找到多个对应的全文哈希值,并根据所述待传输文件的全文哈希值对所述多个对应的全文哈希值进行排除重复处理,得到存在与上传的待传输文件的全文哈希值相同的全文哈希值时返回的待传输文件的下载信息。
15.根据权利要求12所述的接收端,其特征在于,所述下载信息包括文件的部分文件哈希值,以及文件的全文哈希值、文件大小、文件名称、下载链接地址和下载验证信息中的一种或两种以上。
16.一种发送端,其特征在于,包括:
请求发起模块,用于发起文件查询请求及文件传输请求;
第二接收模块,用于接收根据文件查询请求判断出存储服务器上存在待传输文件时返回的所述待传输文件的下载信息;
发送模块,用于将所述文件传输请求及待传输文件的下载信息发送给接收端。
17.根据权利要求16所述的发送端,其特征在于,所述请求发起模块还用于将待传输文件的部分文件哈希值上传到所述存储服务器,或者当所述存储服务器上不存在与所述待传输文件的部分文件哈希值对应的全文哈希值时,上传所述待传输文件的部分哈希值与全文哈希值到所述存储服务器,或者当在所述存储服务器上根据所述待传输文件的部分文件哈希值查找到多个对应的全文哈希值时,上传所述待传输文件的全文哈希值到所述存储服务器。
18.根据权利要求17所述的发送端,其特征在于,还包括:
处理模块,用于按预定大小分为多个分片,从该多个分片中选取预定个分片分别获取信息摘要值,将预定个分片的信息摘要值及文件长度作为所述待传输文件的部分文件哈希值。
CN201210261429.7A 2012-07-26 2012-07-26 文件传输系统和方法、接收端、发送端 Active CN103581230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210261429.7A CN103581230B (zh) 2012-07-26 2012-07-26 文件传输系统和方法、接收端、发送端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210261429.7A CN103581230B (zh) 2012-07-26 2012-07-26 文件传输系统和方法、接收端、发送端

Publications (2)

Publication Number Publication Date
CN103581230A true CN103581230A (zh) 2014-02-12
CN103581230B CN103581230B (zh) 2018-09-04

Family

ID=50052155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210261429.7A Active CN103581230B (zh) 2012-07-26 2012-07-26 文件传输系统和方法、接收端、发送端

Country Status (1)

Country Link
CN (1) CN103581230B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104410692A (zh) * 2014-11-28 2015-03-11 上海爱数软件有限公司 一种用于重复文件上传的方法和系统
CN104980482A (zh) * 2014-12-24 2015-10-14 深圳市腾讯计算机系统有限公司 文件发送方法及装置、文件接收方法及装置
CN105635324A (zh) * 2016-03-17 2016-06-01 新浪网技术(中国)有限公司 用于浏览器或服务器的大文件上传、续传方法和装置
CN105681260A (zh) * 2014-11-19 2016-06-15 中国移动通信集团公司 传输云存储文件的方法、融合通信平台、发送端及系统
CN106161554A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 升级包下载方法及下载系统
CN106446096A (zh) * 2016-09-12 2017-02-22 努比亚技术有限公司 一种文件分享方法、装置及终端
CN106611000A (zh) * 2015-10-26 2017-05-03 北京神州泰岳软件股份有限公司 一种检索资源对象的方法、装置和系统
CN106790665A (zh) * 2017-01-21 2017-05-31 厦门天锐科技股份有限公司 一种c/s架构下的文件传输方法
CN106998291A (zh) * 2017-04-01 2017-08-01 成都你我他科技有限公司 相亲平台的即时通信系统
CN107547352A (zh) * 2016-06-24 2018-01-05 腾讯科技(深圳)有限公司 文件发送方法、装置及系统
CN108243255A (zh) * 2018-01-17 2018-07-03 安徽中骄智能科技有限公司 一种基于vr设备的远程同步推送文件的缓存方法及系统
CN109660613A (zh) * 2018-12-11 2019-04-19 网宿科技股份有限公司 文件传输方法及系统
CN110572462A (zh) * 2019-09-11 2019-12-13 杭州数梦工场科技有限公司 一种跨网络文件共享方法、装置、设备、介质
CN111211966A (zh) * 2019-12-30 2020-05-29 航天信息股份有限公司 一种用于存储聊天工具中传输文件的方法及系统
CN112367715A (zh) * 2020-10-27 2021-02-12 Tcl通讯(宁波)有限公司 一种数据传输方法、装置、设备及存储介质
CN112818016A (zh) * 2021-01-21 2021-05-18 广州汇通国信科技有限公司 基于api的实时、离线数据查询方法及系统
CN112838981A (zh) * 2021-02-05 2021-05-25 西藏宁算科技集团有限公司 即时消息处理方法、装置、系统及电子设备
CN113010474A (zh) * 2021-03-16 2021-06-22 中国联合网络通信集团有限公司 文件管理方法、即时通信方法及存储服务器
CN116132425A (zh) * 2022-12-27 2023-05-16 中国电子科技集团公司第三十研究所 一种大规模多路数据跨网单向导入方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146130A (zh) * 2007-10-16 2008-03-19 深圳市迅雷网络技术有限公司 一种在客户端间传输数据的方法及系统
CN101184055A (zh) * 2007-12-11 2008-05-21 腾讯科技(深圳)有限公司 一种离线文件的发送、接收、传输方法及装置
CN101277276A (zh) * 2008-04-23 2008-10-01 腾讯科技(深圳)有限公司 一种离线图像传输方法和系统
CN101599921A (zh) * 2009-06-18 2009-12-09 腾讯科技(深圳)有限公司 一种企业即时通信系统及其文件传输方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146130A (zh) * 2007-10-16 2008-03-19 深圳市迅雷网络技术有限公司 一种在客户端间传输数据的方法及系统
CN101184055A (zh) * 2007-12-11 2008-05-21 腾讯科技(深圳)有限公司 一种离线文件的发送、接收、传输方法及装置
CN101277276A (zh) * 2008-04-23 2008-10-01 腾讯科技(深圳)有限公司 一种离线图像传输方法和系统
CN101599921A (zh) * 2009-06-18 2009-12-09 腾讯科技(深圳)有限公司 一种企业即时通信系统及其文件传输方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681260B (zh) * 2014-11-19 2019-01-01 中国移动通信集团公司 传输云存储文件的方法、融合通信平台、发送端及系统
CN105681260A (zh) * 2014-11-19 2016-06-15 中国移动通信集团公司 传输云存储文件的方法、融合通信平台、发送端及系统
CN104410692B (zh) * 2014-11-28 2019-03-22 上海爱数信息技术股份有限公司 一种用于重复文件上传的方法和系统
CN104410692A (zh) * 2014-11-28 2015-03-11 上海爱数软件有限公司 一种用于重复文件上传的方法和系统
CN104980482A (zh) * 2014-12-24 2015-10-14 深圳市腾讯计算机系统有限公司 文件发送方法及装置、文件接收方法及装置
CN104980482B (zh) * 2014-12-24 2019-09-13 深圳市腾讯计算机系统有限公司 文件发送方法及装置、文件接收方法及装置
CN106161554A (zh) * 2015-04-17 2016-11-23 腾讯科技(深圳)有限公司 升级包下载方法及下载系统
CN106611000A (zh) * 2015-10-26 2017-05-03 北京神州泰岳软件股份有限公司 一种检索资源对象的方法、装置和系统
CN105635324A (zh) * 2016-03-17 2016-06-01 新浪网技术(中国)有限公司 用于浏览器或服务器的大文件上传、续传方法和装置
CN107547352A (zh) * 2016-06-24 2018-01-05 腾讯科技(深圳)有限公司 文件发送方法、装置及系统
CN106446096A (zh) * 2016-09-12 2017-02-22 努比亚技术有限公司 一种文件分享方法、装置及终端
CN106790665A (zh) * 2017-01-21 2017-05-31 厦门天锐科技股份有限公司 一种c/s架构下的文件传输方法
CN106998291A (zh) * 2017-04-01 2017-08-01 成都你我他科技有限公司 相亲平台的即时通信系统
CN108243255A (zh) * 2018-01-17 2018-07-03 安徽中骄智能科技有限公司 一种基于vr设备的远程同步推送文件的缓存方法及系统
CN109660613B (zh) * 2018-12-11 2021-10-22 网宿科技股份有限公司 文件传输方法及系统
CN109660613A (zh) * 2018-12-11 2019-04-19 网宿科技股份有限公司 文件传输方法及系统
CN110572462A (zh) * 2019-09-11 2019-12-13 杭州数梦工场科技有限公司 一种跨网络文件共享方法、装置、设备、介质
CN111211966A (zh) * 2019-12-30 2020-05-29 航天信息股份有限公司 一种用于存储聊天工具中传输文件的方法及系统
CN111211966B (zh) * 2019-12-30 2022-10-18 航天信息股份有限公司 一种用于存储聊天工具中传输文件的方法及系统
CN112367715A (zh) * 2020-10-27 2021-02-12 Tcl通讯(宁波)有限公司 一种数据传输方法、装置、设备及存储介质
CN112818016A (zh) * 2021-01-21 2021-05-18 广州汇通国信科技有限公司 基于api的实时、离线数据查询方法及系统
CN112838981A (zh) * 2021-02-05 2021-05-25 西藏宁算科技集团有限公司 即时消息处理方法、装置、系统及电子设备
CN113010474A (zh) * 2021-03-16 2021-06-22 中国联合网络通信集团有限公司 文件管理方法、即时通信方法及存储服务器
CN113010474B (zh) * 2021-03-16 2023-10-24 中国联合网络通信集团有限公司 文件管理方法、即时通信方法及存储服务器
CN116132425A (zh) * 2022-12-27 2023-05-16 中国电子科技集团公司第三十研究所 一种大规模多路数据跨网单向导入方法及系统
CN116132425B (zh) * 2022-12-27 2024-03-26 中国电子科技集团公司第三十研究所 一种大规模多路数据跨网单向导入方法及系统

Also Published As

Publication number Publication date
CN103581230B (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
CN103581230A (zh) 文件传输系统和方法、接收端、发送端
EP2698730B1 (en) Data acquisition method, device and system
CN105812351A (zh) 实现会话共享的方法和系统
KR20180091708A (ko) 패킷 기반 데이터 통신의 디바이스 식별자 의존적 오퍼레이션 프로세싱
CN102355426A (zh) 实现离线文件传输的方法和系统
US20060112422A1 (en) Data transfer using hyper-text transfer protocol (HTTP) query strings
CN102821056B (zh) 一种即时通信消息的传输方法及设备
CN103024053A (zh) 云存储方法、资源调度系统、云存储节点及系统
CN102546836A (zh) 一种上传文件的方法、终端、服务器及系统
CN103248645A (zh) Bt离线数据下载系统及方法
CN105450785B (zh) 一种文件传输方法和装置
WO2009115026A1 (zh) 多媒体文件的下载播放系统、客户端和方法
EP3068105B1 (en) Data synchronization method and server
CN102111426A (zh) 点对点技术的实现方法、系统和装置
CN102739717A (zh) 下载方法、下载代理服务器和网络系统
CN111541555A (zh) 群聊优化方法及相关产品
CN108023941B (zh) 语音控制方法及装置和电子设备
CN110311855B (zh) 用户消息处理方法、装置、电子设备及存储介质
CN101917353A (zh) 一种表情文件的传输方法及终端设备
CN112527530B (zh) 消息处理方法、装置、设备、存储介质及计算机程序产品
KR20110044273A (ko) 메시지 라우팅 플랫폼
CN102025730B (zh) 基于http协议的数据传输装置及其实现方法
US20140108523A1 (en) Connection sharing across entities in a distributed messaging system
WO2017005118A1 (zh) 维持通信连接的方法、装置、终端及服务器
CN1905702B (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