CN103561056A - 文件传输方法、设备及系统 - Google Patents
文件传输方法、设备及系统 Download PDFInfo
- Publication number
- CN103561056A CN103561056A CN201310476415.1A CN201310476415A CN103561056A CN 103561056 A CN103561056 A CN 103561056A CN 201310476415 A CN201310476415 A CN 201310476415A CN 103561056 A CN103561056 A CN 103561056A
- Authority
- CN
- China
- Prior art keywords
- file
- block
- server
- upload
- hash value
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种文件传输方法、设备及系统。其中,文件传输方法包括:根据预设规则对即将上传的文件进行分块,得到至少两个块文件;查询文件上传服务器中是否已存储有本文件的部分块文件;根据查询结果选择未存储在文件上传服务器中的部分块文件进行上传。采用本发明实施能够节约网络资源,节省客户端上传文件的时间,提高用户体验。
Description
技术领域
本发明涉及互联网应用领域,特别是涉及一种文件传输方法、设备及系统。
背景技术
目前对文件进行传输主要是通过计算文件的哈希值(以下简称hash值)比对。如果客户端准备进行文件传输,先行将文件的hash值发送到服务端进行查询。如果发现该hash值在服务端已经存在,则客户端不用上传该文件,服务器端已存储有该文件,从而达到加速文件上传或者秒传的功能。图1示出了根据背景技术的文件传输方法的处理流程图。由于该文件传输方法通常能够在秒级别内完成文件上传,因此,也被称为文件秒传方法。参见图1,文件传输方法包括步骤S102至步骤S110:
步骤S102、客户端上传文件hash值至文件上传服务器;
步骤S104、文件上传服务器将hash值发送至文件消重服务器,查询该文件是否存在;
步骤S106、文件消重服务器返回该hash值已存在;
步骤S108、文件上传服务器将该文件与客户端关联添加;
步骤S110、文件上传服务器通知客户端文件上传已完成。
参见图1所示流程可知,上述文件传输方式所使用的文件秒传是以文件粒度为级别的控制。对于这种方式,至少存在以下问题:
当一个文件在未上传完成时,如果客户端断开导致文件终止上传,那么,当客户端再次开机后上传时,对于已经上传的部份,仍需要从头开始上传。这极大的浪费了用户的网络资源、服务器的带宽资源,并大大增加了客户端上传文件的时间。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的文件传输方法、设备和相应的文件传输系统。
依据本发明的一个方面,提供了一种文件传输方法,用于将文件从客户端上传至文件上传服务器,该方法包括:根据预设规则对即将上传的文件进行分块以得到至少两个块文件;查询所述文件上传服务器中是否已存储有所述文件的部分块文件;根据查询结果选择未存储在所述文件上传服务器中的部分块文件进行上传。
可选地,查询所述文件上传服务器中是否已存储有所述文件的部分块文件,包括:计算每个块文件的hash值;将各hash值发送至文件消重服务器,其中,所述文件消重服务器对所述文件上传服务器中存储的块文件进行消重,存储消重后的块文件与hash值的映射关系;查询所述文件消重服务器中是否存储有该hash值,若有,则表明所述文件上传服务器中已存储有该hash值所对应的块文件。
可选地,所述映射关系为一对一的映射关系。
可选地,所述预设规则包括:将本文件分为相同块长的块文件;或者将本文件分为不同块长的块文件。
依据本发明的另一个方面,还提供了一种客户端,用于把文件上传至文件上传服务器,其包括:分块器,配置为根据预设规则对即将上传的文件进行分块以得到至少两个块文件;查询器,配置为查询所述文件上传服务器中是否已存储有所述文件的部分块文件;传输器,配置为根据查询结果选择未存储在所述文件上传服务器中的部分块文件进行上传。
可选地,所述查询器还配置为:计算每个块文件的hash值;将各hash值发送至文件消重服务器,其中,所述文件消重服务器对所述文件上传服务器中存储的块文件进行消重,存储消重后的块文件与hash值的映射关系;查询所述文件消重服务器中是否存储有该hash值,若有,则表明所述文件上传服务器中已存储有该hash值所对应的块文件。
可选地,其中,所述映射关系为一对一的映射关系。
可选地,所述分块器还配置为:将本文件分为相同块长的块文件;或者将本文件分为不同块长的块文件。
依据本发明的另一个方面,还提供了一种文件传输系统,包括客户端以及文件上传服务器:所述文件上传服务器,配置为存储不同客户端上传的文件;任一客户端,配置为根据预设规则对即将上传的文件进行分块以得到至少两个块文件;查询所述文件上传服务器中是否已存储有所述文件的部分块文件;根据查询结果选择未存储在所述文件上传服务器中的部分块文件进行上传。
可选地,还包括:文件消重服务器,配置为所述文件消重服务器对所述文件上传服务器中存储的块文件进行消重,存储消重后的块文件与hash值的映射关系;所述客户端,还配置为计算每个块文件的hash值;将各hash值发送至所述文件消重服务器,查询所述文件上传服务器中是否存储有该hash值对应的块文件。
依据本发明实施例,客户端对即将上传的文件进行分块之后,客户端首先查询文件上传服务器中是否已存储有本文件的部分块文件,其次,客户端根据查询结果选择未存储在文件上传服务器中的部分块文件进行上传,解决了现有技术提到的,当客户端对已上传部分文件的文件进行上传时,仍需要从头开始上传文件的问题。本发明实施例中,客户端对文件进行传输时,能够仅选择未存储在文件上传服务器中的部分块文件进行上传,并不需要对已上传部分再次进行重传,达到了节约网络资源(包括用户所使用的网络资源以及服务器的带宽资源等)的有益效果,节省客户端上传文件的时间,提高用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据背景技术的文件传输方法的处理流程图;
图2示出了根据本发明一个实施例的文件传输方法的处理流程图;
图3示出了根据本发明一个实施例的客户端的结构示意图;
图4示出了根据本发明一个实施例的文件传输系统的结构示意图;
图5示出了根据本发明一个优选实施例的文件传输方法的处理流程图;以及
图6示出了根据本发明另一个优选实施例的文件传输方法的处理流程图。
具体实施方式
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
相关技术中提及,在一个文件上传过程中,若客户端断开导致文件终止上传,那么再次上传时,仍需要从头开始上传。这极大地浪费了网络资源、带宽资源,并增加客户端上传文件的时间。
为解决上述技术问题,本发明实施例提供了一种文件传输方法,用于将文件从客户端上传至文件上传服务器。图2示出了根据本发明一个实施例的文件传输方法的处理流程图。如图2所示,该流程至少包括步骤S202到步骤S206。
步骤S202、客户端根据预设规则对即将上传的文件进行分块,得到至少两个块文件。
步骤S204、客户端查询文件上传服务器中是否已存储有本文件的部分块文件。
步骤S206、客户端根据查询结果选择未存储在文件上传服务器中的部分块文件进行上传。
依据本发明实施例,客户端对即将上传的文件进行分块之后,客户端首先查询文件上传服务器中是否已存储有本文件的部分块文件,其次,客户端根据查询结果选择未存储在文件上传服务器中的部分块文件进行上传,解决了现有技术提到的,当客户端对已上传部分文件的文件进行上传时,仍需要从头开始上传文件的问题。本发明实施例中,客户端对文件进行传输时,能够仅选择未存储在文件上传服务器中的部分块文件进行上传,并不需要对已上传部分再次进行重传,达到了节约网络资源(包括用户所使用的网络资源以及服务器的带宽资源等)的有益效果,节省客户端上传文件的时间。
具体地,如图2中步骤S202所示,客户端根据预设规则对即将上传的文件进行分块,得到至少两个块文件。本发明实施例中,客户端对即将上传的文件进行分块所依据的预设规则可以是根据文件内容对本文件进行分块,还可以是根据文件的大小对本文件进行分块,本发明实施例并不对此加以限定。优选地,本发明实施例中,该预设规则可以是将本文件分为相同块长的块文件,还可以是将本文件分为不同块长的块文件。客户端能够根据具体传输路径、带宽等信息确定使用哪种预设规则将本文件分为块文件。
当客户端根据预设规则将本文件分为至少两个块文件之后,执行如图2所述的步骤S204,客户端查询文件上传服务器中是否已存储有本文件的部分块文件。查询的具体方式有多种,例如,可以在每个块文件上设置一个可查询的唯一标识,利用该唯一标识进行查询,也可以利用每个块文件的自身的性能及信息进行查询,等等。
本发明实施例提供了一种任选的查询方式,即,利用hash值进行查询,具体地,客户端计算每个块文件的hash值,并将各个块文件的hash值发送至文件消重服务器。文件消重服务器接收到每个块文件的hash值之后,对文件上传服务器中存储的块文件进行消重,并存储消重后的块文件与hash值的映射关系。客户端查询文件上传服务器中是否已存储有文件的部分块文件时,查询文件消重服务器中是否存储有与该块文件有映射关系的hash值。若文件消重服务器中已存储有该hash值,则表明文件上传服务器中已存储有该hash值所对应的块文件。
上文提及,hash值与块文件间存在映射关系,该映射关系可以预先设置为一对一,或一对多,或多对一,等等。若同一块文件具备不同的hash值,那么,同一块文件可能会被多次上传,造成浪费资源。同理,若不同块文件具备相同的hash值,则可能造成部分块文件无法上传,使得文件数据包丢失。因此,本发明实施例中,文件消重服务器中存储的块文件与hash值的可选映射关系为一对一的映射关系。由于块文件与hash值的映射关系为一对一映射关系,即一个hash值仅代表一个块文件,则客户端能够通过查询文件消重服务器中是否存储有与该块文件对应的hash值判断该块文件是否已上传至文件上传服务器,减少了查找块文件的时间,进而提高文件传输效率。
客户端查询到文件上传服务器中已存储的部分块文件之后,参见图2中的步骤S206,客户端根据查询结果选择未存储在文件上传服务器中的部分块文件进行上传。
基于上文各优选实施例提供的文件传输方法,基于同一发明构思,本发明实施例提供了一种客户端,用于把文件上传至文件上传服务器,以实现上述文件传输方法。
图3示出了根据本发明一个实施例的客户端的结构示意图。参见图3,本发明实施例的客户端300至少包括:分块器310、查询器320以及传输器330。
现介绍本发明实施例的客户端300的各器件或组成的功能以及各部分间的连接关系:
分块器310,配置为根据预设规则对即将上传的文件进行分块以得到至少两个块文件。
查询器320,与分块器310耦合,配置为查询文件上传服务器中是否已存储有分块器310分块得到的即将上传的文件的部分块文件。
传输器330,与查询器320耦合,配置为根据查询器320的查询结果选择未存储在文件上传服务器中的部分块文件进行上传。
依据本发明实施例,客户端300对即将上传的文件进行分块之后,客户端300首先查询文件上传服务器中是否已存储有本文件的部分块文件,其次,客户端300根据查询结果选择未存储在文件上传服务器中的部分块文件进行上传,解决了现有技术提到的,当客户端300对已上传部分文件的文件进行上传时,仍需要从头开始上传文件的问题。本发明实施例中,客户端300对文件进行传输时,能够仅选择未存储在文件上传服务器中的部分块文件进行上传,并不需要对已上传部分再次进行重传,达到了节约网络资源(包括用户所使用的网络资源以及服务器的带宽资源等)的有益效果,节省客户端300上传文件的时间。
具体地,如图3所示,客户端300中的分块器310根据预设规则对即将上传的文件进行分块,得到至少两个块文件。本发明实施例中,分块器310对即将上传的文件进行分块所依据的预设规则可以是根据文件内容对本文件进行分块,还可以是根据文件的大小对本文件进行分块,本发明实施例并不对此加以限定。任选地,本发明实施例中,该预设规则可以是将本文件分为相同块长的块文件,还可以是将本文件分为不同块长的块文件。客户端300能够根据具体传输路径、带宽等信息确定使用哪种预设规则将本文件分为块文件。
当分块器310根据预设规则将本文件分为至少两个块文件之后,查询器320执行查询操作,查询文件上传服务器中是否已存储有本文件的部分块文件。查询器320查询的具体过程有多种,例如,可以在每个块文件上设置一个可查询的唯一标识,利用该唯一标识进行查询,也可以利用每个块文件的自身的性能及信息进行查询,等等。
本发明实施例提供了一种可选的查询方式,即,利用hash值进行查询,具体地,查询器320计算每个块文件的hash值,并将各个块文件的hash值发送至文件消重服务器。文件消重服务器接收到每个块文件的hash值之后,对文件上传服务器中存储的块文件进行消重,并存储消重后的块文件与hash值的映射关系。查询器320查询文件上传服务器中是否存储有本文件的块文件时,查询文件消重服务器中是否存储有与该块文件有映射关系的hash值。若文件消重服务器中已存储有该hash值,则表明文件上传服务器中已存储有该hash值对应的块文件。
上文提及,hash值与块文件间存在映射关系,该映射关系可以预先设置为一对一,或一对多,或多对一,等等。若同一块文件具备不同的hash值,那么,同一块文件可能会被多次上传,造成浪费资源。同理,若不同块文件具备相同的hash值,则可能造成部分块文件无法上传,使得文件数据包丢失。因此,本发明实施例中,文件消重服务器中存储的块文件与hash值的可选映射关系为一对一的映射关系。由于块文件与hash值的映射关系为一对一映射关系,即一个hash值仅代表一个块文件,则查询器320能够通过查询文件消重服务器中是否存储有与该块文件对应的hash值判断该块文件是否已上传至文件上传服务器,减少了查找块文件的时间,进而提高文件传输效率。
查询器320查询到文件上传服务器中已存储的部分块文件之后,传输器330根据查询器320的查询结果选择未存储在文件上传服务器中的部分块文件进行上传,将本文件传输至文件上传服务器。
基于上文各优选实施例提供的文件传输方法以及文件传输设备,基于同一发明构思,本发明实施例还提供了一种文件传输系统。图4示出了根据本发明一个实施例的文件传输系统的结构示意图。如图4所示,本发明实施例中的文件传输系统至少包括:客户端300、文件上传服务器400以及文件消重服务器500。
现介绍本发明实施例的文件传输系统中的各器件或组成的功能以及各部分间的连接关系。文件传输系统中的文件上传服务器400存储不同客户端上传的文件。如图4所示的客户端300首先根据预设规则对即将上传的文件进行分块以得到至少两个块文件,并查询文件上传服务器400中是否已存储有本文件的部分块文件。其次,客户端300根据查询结果选择未存储在文件上传服务器400中的部分块文件进行上传。
依据本发明实施例,客户端300对即将上传的文件进行分块之后,客户端300首先查询文件上传服务器400中是否已存储有本文件的部分块文件,其次,客户端300根据查询结果选择未存储在文件上传服务器400中的部分块文件进行上传,解决了现有技术提到的,当客户端300对已上传部分文件的文件进行上传时,仍需要从头开始上传文件的问题。本发明实施例中,客户端300对文件进行传输时,能够仅选择未存储在文件上传服务器400中的部分块文件进行上传,并不需要对已上传部分再次进行重传,达到了节约网络资源(包括用户所使用的网络资源以及服务器的带宽资源等)的有益效果,节省客户端300上传文件的时间,提高用户体验。
具体地,如图4所示,客户端300中的分块器310根据预设规则对即将上传的文件进行分块以得到至少两个块文件。本发明实施例中,分块器310对即将上传的文件进行分块所依据的预设规则可以是根据文件内容对本文件进行分块,还可以是根据文件的大小对本文件进行分块,本发明实施例并不对此加以限定。优选地,本发明实施例中,该预设规则可以是将本文件分为相同块长的块文件,还可以是将本文件分为不同块长的块文件。客户端300能够根据具体传输路径、带宽等信息确定使用哪种预设规则将本文件分为块文件。
当分块器310根据预设规则将文件分为至少两个块文件之后,查询器320查询文件上传服务器400中是否已存储有文件的部分块文件。查询器320查询的具体过程有多种,例如,可以在每个块文件上设置一个可查询的唯一标识,利用该唯一标识进行查询,也可以利用每个块文件的自身的性能及信息进行查询,等等。
本发明实施例提供了一种优选的查询方式,即,利用hash值进行查询,具体地,查询器320计算每个块文件的hash值,并将各个块文件的hash值发送至文件消重服务器500。文件消重服务器500接收到每个块文件的hash值之后,对文件上传服务器400中存储的块文件进行消重,并存储消重后的块文件与hash值的映射关系。查询器320查询文件上传服务器400是否存储有文件的块文件时,查询文件消重服务器500中是否存储有与该块文件有映射关系的hash值。若文件消重服务器500中已存储有该hash值,则表明文件上传服务器400中已存储有该hash值对应的块文件。
上文提及,hash值与块文件间存在映射关系,该映射关系可以预先设置为一对一,或一对多,或多对一,等等。若同一块文件具备不同的hash值,那么,同一块文件可能会被多次上传,造成浪费资源。同理,若不同块文件具备相同的hash值,则可能造成部分块文件无法上传,使得文件数据包丢失。因此,本发明实施例中,文件消重服务器500中存储的块文件与hash值的优选映射关系,即一个hash值仅代表一个块文件,则查询器320能够通过查询文件消重服务器500中是否存储有与该块文件对应的hash值判断该块文件是否已上传至文件上传服务器400,减少了查找块文件的时间,进而提高文件传输效率。
查询器320查询到文件上传服务器400中已存储的部分块文件之后,传输器330根据查询器320的查询结果选择未存储在文件上传服务器400中的部分块文件进行上传,将文件传输至文件上传服务器400。文件上传服务器400存储不同客户端上传的文件。
实施例一
图5示出了根据本发明一个优选实施例的文件传输方法的流程图,用于支持上述任意一个文件传输方法、设备及系统,将上述文件传输方法、设备及系统阐述得更清楚明白。需要注意的是,图5所示的文件传输方法为上传一个文件上传服务器中不存在的文件的流程图。
如图5所示,客户端根据预设规则对即将上传的文件进行分块,得到至少两个块文件。客户端将即将上传的文件分为至少两个块文件之后,执行如图5所示的步骤S501,计算每个块文件的hash值,并将各个块文件的hash值上传至文件上传服务器,由文件上传服务器发送hash值至文件消重服务器,通过hash值查看文件上传服务器中是否存在本文件的块文件。文件消重服务器接收到每个块文件的hash值之后,执行步骤S502,查询是否存在每个块文件的hash值,并执行如图5中的步骤S503,返回代表块文件不存在的状态码。
参见图5中的步骤S504,客户端接收到该状态码,得到查询结果,即文件上传服务器中不存在即将上传的文件。根据该查询结果,客户端执行步骤S505,将即将上传的文件的每个块文件以及每个块文件的hash值逐一进行上传。文件上传服务器执行如图5中所示的步骤S506,存储客户端传输的块文件。由文件消重服务器执行步骤S507,接收每个块文件的hash值,对文件上传服务器中存储的块文件进行消重,并存储消重后的块文件与hash值一对一的映射关系。
另外,文件上传服务器执行步骤S508,返回块文件已存储的结果至客户端。客户端执行步骤S509,对即将上传的文件的每个块文件进行循环上传,直至即将上传的文件全部传输至文件上传服务器,或者客户端与文件上传服务器之间的连接断开。
实施例二
图6示出了根据本发明另一个优选实施例的文件传输方法的流程图,用于支持上述任意一个文件传输方法、设备及系统,将上述文件传输方法、设备及系统阐述得更清楚明白。需要注意的是,图6所示的文件传输方法中传输的文件为文件上传服务器中已存在部分块文件的文件。
如图6所示,客户端根据预设规则对即将上传的文件进行分块,得到至少两个块文件。客户端将即将上传的文件分为至少两个块文件之后,执行如图6所示的步骤S601,计算每个块文件的hash值,并将各个块文件分为至少两个块文件之后,计算每个块文件的hash值,并将各个块文件的hash值上传至文件上传服务器,由文件上传服务器发送hash值至文件消重服务器,通过hash值查看文件上传服务器中是否存在块文件。文件消重服务器接收到每个块文件的hash值之后,执行步骤S602,查询是否存在每个块文件的hash值,并执行如图6中的步骤S603,返回存在的部分块文件的状态码。
参见图6中的步骤S604,客户端接收到该状态码,得到查询结果。根据查询结果,客户端执行步骤S605,上传文件上传服务器中未存储的块文件及其hash值。文件上传服务器执行如图6中所示的步骤S606,存储客户端传输的块文件。由文件消重服务器执行步骤S607,接收每个未存储的块文件的hash值,对文件上传服务器中存储的块文件进行消重,并存储消重后的块文件与hash值一对一的映射关系。
另外,文件上传服务器执行如图6中所示的步骤S608,返回块文件已存储的结果至客户端。客户端执行步骤S609,对块文件进行循环上传,直至文件上传服务器未存储的块文件全部存储至文件上传服务器,或者客户端与文件上传服务器之间的连接断开。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
依据本发明实施例,客户端对即将上传的文件进行分块之后,客户端首先查询文件上传服务器中是否已存储有本文件的部分块文件,其次,客户端根据查询结果选择未存储在文件上传服务器中的部分块文件进行上传,解决了现有技术提到的,当客户端对已上传部分文件的文件进行上传时,仍需要从头开始上传文件的问题。本发明实施例中,客户端对文件进行传输时,能够仅选择未存储在文件上传服务器中的部分块文件进行上传,并不需要对已上传部分再次进行重传,达到了节约网络资源(包括用户所使用的网络资源以及服务器的带宽资源等)的有益效果,节省客户端上传文件的时间,提高用户体验。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件传输设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种文件传输方法,用于将文件从客户端上传至文件上传服务器,该方法包括:
根据预设规则对即将上传的文件进行分块以得到至少两个块文件;
查询所述文件上传服务器中是否已存储有所述文件的部分块文件;
根据查询结果选择未存储在所述文件上传服务器中的部分块文件进行上传。
2.根据权利要求1所述的方法,其中,查询所述文件上传服务器中是否已存储有所述文件的部分块文件,包括:
计算每个块文件的哈希hash值;
将各hash值发送至文件消重服务器,其中,所述文件消重服务器对所述文件上传服务器中存储的块文件进行消重,存储消重后的块文件与hash值的映射关系;
查询所述文件消重服务器中是否存储有该hash值,若有,则表明所述文件上传服务器中已存储有该hash值所对应的块文件。
3.根据权利要求2所述的方法,其中,所述映射关系为一对一的映射关系。
4.根据权利要求1至3任一项所述的方法,其中,所述预设规则包括:
将本文件分为相同块长的块文件;或者
将本文件分为不同块长的块文件。
5.一种客户端,用于把文件上传至文件上传服务器,其包括:
分块器,配置为根据预设规则对即将上传的文件进行分块以得到至少两个块文件;
查询器,配置为查询所述文件上传服务器中是否已存储有所述文件的部分块文件;
传输器,配置为根据查询结果选择未存储在所述文件上传服务器中的部分块文件进行上传。
6.根据权利要求5所述的客户端,其中,所述查询器还配置为:
计算每个块文件的hash值;
将各hash值发送至文件消重服务器,其中,所述文件消重服务器对所述文件上传服务器中存储的块文件进行消重,存储消重后的块文件与hash值的映射关系;
查询所述文件消重服务器中是否存储有该hash值,若有,则表明所述文件上传服务器中已存储有该hash值所对应的块文件。
7.根据权利要求6所述的客户端,其中,所述映射关系为一对一的映射关系。
8.根据权利要求5至7任一项所述的客户端,其中,所述分块器还配置为:
将本文件分为相同块长的块文件;或者
将本文件分为不同块长的块文件。
9.一种文件传输系统,包括客户端以及文件上传服务器:
所述文件上传服务器,配置为存储不同客户端上传的文件;
任一客户端,配置为根据预设规则对即将上传的文件进行分块以得到至少两个块文件;查询所述文件上传服务器中是否已存储有所述文件的部分块文件;根据查询结果选择未存储在所述文件上传服务器中的部分块文件进行上传。
10.根据权利要求9所述的系统,其中,还包括:
文件消重服务器,配置为所述文件消重服务器对所述文件上传服务器中存储的块文件进行消重,存储消重后的块文件与hash值的映射关系;
所述客户端,还配置为计算每个块文件的hash值;将各hash值发送至所述文件消重服务器,查询所述文件上传服务器中是否存储有该hash值对应的块文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310476415.1A CN103561056A (zh) | 2013-10-12 | 2013-10-12 | 文件传输方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310476415.1A CN103561056A (zh) | 2013-10-12 | 2013-10-12 | 文件传输方法、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103561056A true CN103561056A (zh) | 2014-02-05 |
Family
ID=50015206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310476415.1A Pending CN103561056A (zh) | 2013-10-12 | 2013-10-12 | 文件传输方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103561056A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227610A (zh) * | 2014-06-30 | 2016-01-06 | 北京金山安全软件有限公司 | 一种文件上传、保存方法及装置 |
CN105306570A (zh) * | 2015-10-27 | 2016-02-03 | 创新科软件技术(深圳)有限公司 | 一种集群数据的存储方法 |
CN105721526A (zh) * | 2014-12-04 | 2016-06-29 | 清华大学 | 一种终端、服务器文件同步的方法及装置 |
CN106101291A (zh) * | 2016-08-26 | 2016-11-09 | 苏州蓝海彤翔系统科技有限公司 | 一种传输文件的方法、系统、服务器及客户端 |
CN106302715A (zh) * | 2016-08-12 | 2017-01-04 | 北京奇虎科技有限公司 | 一种文件管理方法、装置及系统 |
CN106817391A (zh) * | 2015-12-01 | 2017-06-09 | 百度在线网络技术(北京)有限公司 | 文件断点续传方法和装置 |
CN114172890A (zh) * | 2021-11-03 | 2022-03-11 | 阿里巴巴(中国)有限公司 | 文件秒传处理方法、装置、存储介质及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164793A1 (en) * | 2007-12-19 | 2009-06-25 | Fujitsu Limited | Digital signature system and digital signing method |
CN101605148A (zh) * | 2009-05-21 | 2009-12-16 | 何吴迪 | 云存储的并行系统的架构方法 |
CN101917396A (zh) * | 2010-06-25 | 2010-12-15 | 清华大学 | 一种网络文件系统中数据的实时去重和传输方法 |
CN101945125A (zh) * | 2010-08-30 | 2011-01-12 | 北京邮电大学 | 一种文件传输的方法和装置 |
CN102325167A (zh) * | 2011-07-21 | 2012-01-18 | 杭州微元科技有限公司 | 一种网络文件传输的校验方法 |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
CN103118002A (zh) * | 2012-12-21 | 2013-05-22 | 北京飞漫软件技术有限公司 | 一种以语音为密钥实现数据资源云存储管理的方法 |
CN103136243A (zh) * | 2011-11-29 | 2013-06-05 | 中国电信股份有限公司 | 基于云存储的文件系统去重方法及装置 |
CN103166992A (zh) * | 2011-12-14 | 2013-06-19 | 中国电信股份有限公司 | 应用于云存储的快速文件更新方法及系统 |
-
2013
- 2013-10-12 CN CN201310476415.1A patent/CN103561056A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164793A1 (en) * | 2007-12-19 | 2009-06-25 | Fujitsu Limited | Digital signature system and digital signing method |
CN101605148A (zh) * | 2009-05-21 | 2009-12-16 | 何吴迪 | 云存储的并行系统的架构方法 |
CN101917396A (zh) * | 2010-06-25 | 2010-12-15 | 清华大学 | 一种网络文件系统中数据的实时去重和传输方法 |
CN101945125A (zh) * | 2010-08-30 | 2011-01-12 | 北京邮电大学 | 一种文件传输的方法和装置 |
CN102833294A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 基于云存储的文件处理方法、系统及服务器集群系统 |
CN102325167A (zh) * | 2011-07-21 | 2012-01-18 | 杭州微元科技有限公司 | 一种网络文件传输的校验方法 |
CN103136243A (zh) * | 2011-11-29 | 2013-06-05 | 中国电信股份有限公司 | 基于云存储的文件系统去重方法及装置 |
CN103166992A (zh) * | 2011-12-14 | 2013-06-19 | 中国电信股份有限公司 | 应用于云存储的快速文件更新方法及系统 |
CN103118002A (zh) * | 2012-12-21 | 2013-05-22 | 北京飞漫软件技术有限公司 | 一种以语音为密钥实现数据资源云存储管理的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227610A (zh) * | 2014-06-30 | 2016-01-06 | 北京金山安全软件有限公司 | 一种文件上传、保存方法及装置 |
CN105721526A (zh) * | 2014-12-04 | 2016-06-29 | 清华大学 | 一种终端、服务器文件同步的方法及装置 |
CN105721526B (zh) * | 2014-12-04 | 2019-05-14 | 清华大学 | 一种终端、服务器文件同步的方法及装置 |
CN105306570A (zh) * | 2015-10-27 | 2016-02-03 | 创新科软件技术(深圳)有限公司 | 一种集群数据的存储方法 |
CN105306570B (zh) * | 2015-10-27 | 2018-07-20 | 创新科软件技术(深圳)有限公司 | 一种集群数据的存储方法 |
CN106817391A (zh) * | 2015-12-01 | 2017-06-09 | 百度在线网络技术(北京)有限公司 | 文件断点续传方法和装置 |
CN106302715A (zh) * | 2016-08-12 | 2017-01-04 | 北京奇虎科技有限公司 | 一种文件管理方法、装置及系统 |
CN106302715B (zh) * | 2016-08-12 | 2020-02-14 | 北京奇虎科技有限公司 | 一种文件管理方法、装置及系统 |
CN106101291A (zh) * | 2016-08-26 | 2016-11-09 | 苏州蓝海彤翔系统科技有限公司 | 一种传输文件的方法、系统、服务器及客户端 |
CN114172890A (zh) * | 2021-11-03 | 2022-03-11 | 阿里巴巴(中国)有限公司 | 文件秒传处理方法、装置、存储介质及电子设备 |
CN114172890B (zh) * | 2021-11-03 | 2024-02-27 | 阿里巴巴(中国)有限公司 | 文件秒传处理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103561056A (zh) | 文件传输方法、设备及系统 | |
CN106412137B (zh) | 一种文件下载系统及文件下载方法 | |
US20150358217A1 (en) | Web Polling Method, Device and System | |
CN110703980B (zh) | 一种文件传输方法及装置 | |
KR102129456B1 (ko) | 사물 인터넷 환경에서의 mqtt 프로토콜 기반 서버 시스템 | |
CN103002011B (zh) | 基于服务器的数据更新方法和服务器 | |
US20170134495A1 (en) | Method and apparatus for sharing collaboratively edited document | |
CN103841170A (zh) | 一种云存储方法和服务器 | |
CN108377247B (zh) | 一种消息推送方法和装置 | |
CN103227818A (zh) | 终端、服务器、文件传输方法、文件存储管理系统和方法 | |
CN104618444A (zh) | 一种基于反向代理服务器处理请求的方法和装置 | |
CN102739717A (zh) | 下载方法、下载代理服务器和网络系统 | |
CN104486327A (zh) | 页面与长连接服务器间的通信方法及客户端 | |
CN105208108A (zh) | Web环境下的文件上传/下载方法及系统、服务器、客户端 | |
CN104954448A (zh) | 图片处理方法、系统和服务器 | |
CN103581040A (zh) | 服务器分配装置和服务器分配方法 | |
CN103634410A (zh) | 基于内容分发网络cdn的数据同步方法,客户端及服务器 | |
CN103248678A (zh) | 一种数据资源共享方法、服务端和客户端 | |
CN103368951A (zh) | 文件下载方法及系统 | |
CN104519138A (zh) | 一种基于分布式ftp的数据传输方法及系统 | |
US9137331B2 (en) | Adaptive replication | |
CN110798495A (zh) | 用于在集群架构模式下端到端的消息推送的方法和服务器 | |
CN111597259B (zh) | 数据存储系统、方法、装置、电子设备及存储介质 | |
CN105897842A (zh) | 不同客户端间的视频推送方法、系统及服务器 | |
CN110597808B (zh) | 分布式数据库表连接方法、装置、系统、服务器及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140205 |