一种传输文件的系统及方法

文档序号:7815842阅读:170来源:国知局
专利名称:一种传输文件的系统及方法
一种传输文件的系统及方法
技术领域
本发明涉及一种传输文件的系统,尤其是涉及到ー种包括用户端软件和与用户端软件形成通讯的服务器的系统,及一种在用户端软件和服务器之间上传文件的方法。
背景技木目前,有很多IM通讯工具包括用户端软件和服务器,例如QQ通讯系统,其中,该系统有种网盘功能,就是利用用户端软件从用户端上传文件给服务器;由干,有很多时候, 文件需要经常修改,就会多次将整个文件上传到服务器上,假如文件修改不多,这种传输方式,存在以下缺陷,一是会拖慢上传速度,ニ是占用服务器的空间。

发明内容本发明要解决的ー个技术问题是提供ー种包括用户端软件和与用户端软件形成通讯的服务器的系统,其能便于用户端软件快速上传文件给服务器。上述技术问题通过以下技术方案实现一种传输文件的系统,包括用于保存数据的服务器和用于安装在用户端以实现用户端登录服务器的用户端软件,用户端软件包括判断模块,用于在用户端软件的待上传文件上传之前判断出该待上传文件是否是服务器上某个文件的修改版;分段模块,用于当所述待上传文件为所述某个文件的修改版时,则将待上传文件按分段规则从前往后地分成M个数据段,M为大于等于1的自然数,所述分段规则为当文件的大小量小干*KB,*>0,则该文件整体为ー数据段;当文件的大小量为*KB的T倍,N 为正整数,则该文件从前往后依順序均勻分为T个大小量为*KB的数据段;当文件的大小量为*KB的(T+A)倍,0<A< 1,则该文件的前T个*Kb的数据从前往后依順序分为T个大小量为*KB的数据段,剩下的数据作为一数据段;对比模块,用于当所述待上传文件为所述某个文件的修改版吋,确定出所述待上传文件的M个数据段中相对于所述某个文件为新的数据段;及上传模块,用于当该待上传文件不是服务器上某个文件的修改版时则将该待上传文件按数据从前往后的排列地上传给服务器,当该待上传文件是服务器上某个文件的修改版时则将对比模块确定出新的数据段及该数据段在所述待上传文件的段順位、所述待上传文件的段数M上传给服务器;在服务器端,对于上传的文件,服务器将文件按所述分段规则分段存储;对于上传的数据段,若上传的数据段所在的待上传文件的段数M小于或等于与该待上传文件对应的某个文件的段数N,N为大于等于1的自然数,将上传的数据段按照其段顺位对应地替代某个文件的数据段,并将某个文件的后面的A段数据删除,A = N-M ;若数据段所在的待上传文件的段数M大于与该待上传文件对应的某个文件的段数N,将段顺位在[1,N]之间的上传的数据段按照其段顺位对应地替代某个文件的数据段,并将段順位在 (N,M]之间的上传的数据段按段順位排列作为某个文件的后续数据段。进ー步的具体方案是,在服务器端,对每个文件的各数据段按计算规则分别计算出每数据段的自我标识并保存;所述对比模块包括计算模块,对分段模块得出的所述待上传文件的各数据段按所述计算规则分别计算出每数据段的自我标识;获取模块,从服务器上获取所述某个文件的数据段的段数N和每数据段的自我标识;及分析模块,其从计算模块和获取模块接收結果,进行以下分析以确定出所述待上传文件的相对于所述某个文件为新的数据段当M > N,将所述待上传文件和所述某个文件的段順位在[1,N]间的数据段的自我标识,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段,所述待上传文件的段順位在(N,M]间的数据段也认定为相对于所述某个文件为新的数据段;当M < N,将两个文件的段順位在[1,M]间的数据段的自我标识,按同段順位的两个自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段。本发明要解决的另ー个技术问题是ー种快速地从用户端软件上传文件给服务器的方法,包括以下步骤(1)、用户端软件在将待上传文件上传之前判断出该待上传文件是否是服务器上某个文件的修改版,若是,转步骤;若否转步骤O);(2)、将待上传文件按分段规则从前往后地分成M个数据段,M为大于等于1的自然数,所述分段规则为当文件的大小量小干*ΚΒ,*>0,则该文件整体为ー数据段;当文件的大小量为*KB的T倍,N为正整数,则该文件从前往后依順序均勻分为T个大小量为*KB 的数据段;当文件的大小量为*KB的(T+A)倍,0 < A < 1,则该文件的前T个*Kb的数据从前往后依順序分为T个大小量为*KB的数据段,剩下的数据作为一数据段;(3)、确定待上传文件的M个数据段中相对于所述某个文件为新的数据段;(4)、当该待上传文件不是服务器上某个文件的修改版则将该待上传文件按数据从前往后的排列地上传给服务器;当所述待上传文件为所述某个文件的修改版时则将对比模块确定出新的数据段及该数据段在所述待上传文件的段順位、所述待上传文件的段数M 上传给服务器;(5)、在服务器上,对于上传的文件,服务器将文件按所述分段规则分段存储;对于上传的数据段,若上传的数据段所在的待上传文件的段数M小于或等于与该待上传文件对应的某个文件的段数N,N为大于等于1的自然数,服务器将上传的数据段按照其段顺位对应地替代某个文件的数据段,并将某个文件的后面的A段数据删除,A = N-M ;若数据段所在的待上传文件的段数M大于与该待上传文件对应的某个文件的段数N,将段顺位在[1,N] 之间的上传的数据段按照其段顺位对应地替代某个文件的数据段,并将段順位在(N,M]之间的上传的数据段按段順位排列作为某个文件的后续数据段。所述步骤( 具体包括(301)、对步骤( 得出的所述待上传文件的各数据段按所述计算规则分别计算出每数据段的自我标识;(302)、从服务器上获取所述某个文件的数据段的段数N和每数据段的自我标识;(303)、从计算模块和获取模块接收結果,进行以下分析以确定出所述待上传文件的相对于所述某个文件为新的数据段当M > N,将所述待上传文件和所述某个文件的段顺位在[1,N]间的数据段的自我标识,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段, 所述待上传文件的段順位在(N,M]间的数据段也认定为相对于所述某个文件为新的数据段;当M < N,将两个文件的段順位在[1,M]间的数据段的自我标识,按同段順位的两个自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段。由上述方案可知,当上传的文件为服务器上,针对ー些多次修改需多次上传的待上传文件,本发明系统在服务器上将文件进行分段存储,然后在用户端软件上对待上传文件进行分段分析,以确定出待上传文件相对服务器上文件为新的数据段,然后将新的数据段进行上传,服务器就可以实现待上传文件在服务器的保存。因此,本发明系统能便于用户端软件快速上传文件给服务器,也不会多占用服务器的空间。

图1为本发明传输文件的方法的示意图;图2为利用本发明传输文件的示意图。
具体实施方式具体实施方式
提供的一种传输文件的系统,包括用于保存数据的服务器和用于安装在用户端以实现用户端登录服务器的用户端软件,用户端软件包括判断模块,用于在将待上传文件上传之前判断出该待上传文件是否是服务器上某个文件的修改版;分段模块,用于当所述待上传文件为所述某个文件的修改版时,则将待上传文件按分段规则从前往后地分成M个数据段,M为大于等于1的自然数,所述分段规则为当文件的大小量小干*KB,*>0,则该文件整体为ー数据段;当文件的大小量为*KB的T倍,N 为正整数,则该文件从前往后依順序均勻分为T个大小量为*KB的数据段;当文件的大小量为*KB的(T+A)倍,0<A< 1,则该文件的前T个*Kb的数据从前往后依順序分为T个大小量为*KB的数据段,剩下的数据作为一数据段;对比模块,用于当所述待上传文件为所述某个文件的修改版吋,确定出所述待上传文件的M个数据段中相对于所述某个文件为新的数据段;
及上传模块,用于当该待上传文件不是服务器上某个文件的修改版时则将该待上传文件按数据从前往后的排列地上传给服务器,当该待上传文件是服务器上某个文件的修改版时则将对比模块确定出新的数据段及该数据段在所述待上传文件的段順位、所述待上传文件的段数M上传给服务器;在服务器端,对于上传的文件,服务器将文件按所述分段规则分段存储;对于上传的数据段,若上传的数据段所在的待上传文件的段数M小于或等于与该待上传文件对应的某个文件的段数N,N为大于等于1的自然数,将上传的数据段按照其段顺位对应地替代某个文件的数据段,并将某个文件的后面的A段数据删除,A = N-M ;若数据段所在的待上传文件的段数M大于与该待上传文件对应的某个文件的段数N,将段顺位在[1,N]之间的上传的数据段按照其段顺位对应地替代某个文件的数据段,并将段順位在 (N,M]之间的上传的数据段按段順位排列作为某个文件的后续数据段。对于,对比模块是怎么确定出所述待上传文件的M个数据段中相对于所述某个文件为新的数据段;在此,申请人做以下设计在服务器端,对每个文件的各数据段按计算规则分别计算出每数据段的自我标识 (例如,每数据段的MD5值)并保存;对比模块具体包括计算模块,对分段模块得出的所述待上传文件的各数据段按所述计算规则分别计算出每数据段的自我标识;获取模块,从服务器上获取所述某个文件的数据段的段数N和每数据段的自我标识;及分析模块,其从计算模块和获取模块接收結果,进行以下分析以确定出所述待上传文件的相对于所述某个文件为新的数据段当M > N,将所述待上传文件和所述某个文件的段順位在[1,N]间的数据段的自我标识,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识,所述待上传文件上与这些自我标识有对应关系的数据段认定为相对于所述某个文件为新的数据段, 所述待上传文件的段順位在(N,M]间的数据段也认定为相对于所述某个文件为新的数据段;当M < N,将两个文件的段順位在[1,M]间的数据段的自我标识,按同段順位的两个自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识,所述待上传文件上与这些自我标识有对应关系的数据段认定为相对于所述某个文件为新的数据段。如图1所示,通过上述系统进行传输文件的方法,包括以下步骤(1)、用户端软件在将待上传文件上传之前判断出该待上传文件是否是服务器上某个文件的修改版,若是,转步骤;若否转步骤O);(2)、将待上传文件按分段规则从前往后地分成M个数据段,M为大于等于1的自然数,所述分段规则为当文件的大小量小干*ΚΒ,*>0,则该文件整体为ー数据段;当文件的大小量为*KB的T倍,N为正整数,则该文件从前往后依順序均勻分为T个大小量为*KB 的数据段;当文件的大小量为*KB的(T+A)倍,0 < A < 1,则该文件的前T个*Kb的数据从前往后依順序分为T个大小量为*KB的数据段,剩下的数据作为一数据段;
(3)、确定待上传文件的M个数据段中相对于所述某个文件为新的数据段;(4)、当该待上传文件不是服务器上某个文件的修改版则将该待上传文件按数据从前往后的排列地上传给服务器;当所述待上传文件为所述某个文件的修改版时则将对比模块确定出新的数据段及该数据段在所述待上传文件的段順位、所述待上传文件的段数M 上传给服务器;(5)、在服务器上,对于上传的文件,服务器将文件按所述分段规则分段存储;对于上传的数据段,若上传的数据段所在的待上传文件的段数M小于或等于与该待上传文件对应的某个文件的段数N,N为大于等于1的自然数,服务器将上传的数据段按照其段顺位对应地替代某个文件的数据段,并将某个文件的后面的A段数据删除,A = N-M ;若数据段所在的待上传文件的段数M大于与该待上传文件对应的某个文件的段数N,将段顺位在[1,N] 之间的上传的数据段按照其段顺位对应地替代某个文件的数据段,并将段順位在(N,M]之间的上传的数据段按段順位排列作为某个文件的后续数据段。其中,步骤(3)具体包括(301)、对步骤( 得出的所述待上传文件的各数据段按所述计算规则分别计算出每数据段的自我标识;(302)、从服务器上获取所述某个文件的数据段的段数N和每数据段的自我标识;(303)、从计算模块和获取模块接收結果,进行以下分析以确定出所述待上传文件的相对于所述某个文件为新的数据段当M > N,将所述待上传文件和所述某个文件的段顺位在[1,N]间的数据段的自我标识,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段, 所述待上传文件的段順位在(N,M]间的数据段也认定为相对于所述某个文件为新的数据段;当M < N,将两个文件的段順位在[1,M]间的数据段的自我标识,按同段順位的两个自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段。如图2所示,分段规则为当文件的大小量小于20KB,则该文件整体为ー数据段; 当文件的大小量为20KB的T倍,N为正整数,则该文件从前往后依順序均勻分为T个大小量为20KB的数据段;当文件的大小量为20KB的(T+A)倍,0 < A < 1,则该文件的前T个 20KB的数据从前往后依順序分为T个大小量为20KB的数据段,剩下的数据作为一数据段; 在以上分段规则的前提下,用户端软件将全新的文件D(大小为45KB)上传给服务器为例, 具体包括以下过程(Li)在将文件D上传给服务器之前,先判断出文件D不是服务器上某个文件的修改版(即文件D不是服务器上任意一个文件的修改版),用户端软件将文件D按数据从前往后的排列地上传给服务器;(L2)服务器将文件D按数据从前往后的排列地分成段顺位为第一、第二、第三的三段数据段,大小分别为20KB、20KB、5KB,假设经计算规则得出的自身标识分别为1、2、3 ;(L3)用户对文件D进行修改,得到大小67KB的文件D’,文件D’为文件D的修改版;
(L4)用户端软件在将文件D’上传服务器前,先确定文件D’相对服务器的文件D 的修改版,然后将文件D’按数据从前往后的排列地分成段顺位为第一、第二、第三、第四的四段数据段,大小分别为20KB、20KB、20KB、7KB ;对四段数据段按计算规则得出的各段数据段的自身标识,假设四段数据段的自身标识分别为1、2、4、5 ;从服务器上获取文件D的数据段的段数为三和这三个数据段的自我标识1、2、3 ;将文件D的段順位在[1,3]间的数据段的自我标识1、2、3与文件D’的段順位在[1,3]间的数据段的1、2、4,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,即1和1比较,2和2比较,3和4 比较,由于3和4不同,自我标识4属于文件D’,那么与这个自我标识4对应的是文件D’的第三数据段,此时,认定文件D’的第三数据段、第四数据段相对于服务器的文件D为新;将文件D’的第三数据段和第四数据段,第三数据段和第四数据段在文件D’的段順位,及文件 D’的段数为四,上传给服务器;(L5)服务器将上传的文件D’的第三数据段替代文件D的第三数据段,将上传的文件D’的第四数据段作为文件D的第四数据段,从而,服务器的文件D被更新为文件D’,文件D’包括四段数据段,自身标识分别为1、2、4、5 ;(L6)用户对文件D进行修改,得到大小25KB的文件D”,文件D”为文件D’的修改版;(L7)用户端软件在将文件D”上传服务器前,先判断出文件D”相对服务器的文件 D’的修改版,然后将文件D”按数据从前往后的排列地分成段顺位为第一、第二的两段数据段,大小分别为20KB、5KB ;对这两段数据段按计算规则得出的各段数据段的自身标识,假设这两段数据段的自身标识分别为1、8 ;从服务器上获取文件D’的数据段的段数为四和这四个数据段的自我标识1、2、4、5 ;将文件D”的段順位在[1,2]间的数据段的自我标识1、8 与文件D’的段順位在[1,2]间的数据段的自我标识1、2,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,即1和1比较,8和2比较,由于8禾Π 2不同, 自我标识8属于文件D”,那么与这个自我标识8对应的是文件D”的第二数据段,此时,认定文件D”的第二数据段相对于服务器的文件D’为新;将文件D”的第二数据段,第二数据段在文件D”的段順位,及文件D”的段数为ニ,上传给服务器;(L8)服务器将上传的文件D”的第二数据段替代文件D’的第二数据段,由于上传的文件D”的段数为ニ,而文件D’的段数为四,删除文件D’的第三数据段、第四数据段,从而,服务器的文件D’被更新为文件D”,文件D”包括两段数据段,自身标识分别为1、8。本发明不局限于上述实施例,基于上述实施例的、未做出创造性劳动的简单替换, 应当属于本发明揭露的范围。
权利要求
1.一种传输文件的系统,包括用于保存数据的服务器和用于安装在用户端以实现用户端登录服务器的用户端软件,用户端软件包括判断模块,用于在用户端软件的待上传文件上传之前判断出该待上传文件是否是服务器上某个文件的修改版;分段模块,用于当所述待上传文件为所述某个文件的修改版时,则将待上传文件按分段规则从前往后地分成M个数据段,M为大于等于1的自然数,所述分段规则为当文件的大小量小于*KB,* > 0,则该文件整体为ー数据段;当文件的大小量为*KB的T倍,N为正整数,则该文件从前往后依順序均勻分为T个大小量为*KB的数据段;当文件的大小量为*KB 的(T+A)倍,0<A< 1,则该文件的前T个*Kb的数据从前往后依順序分为T个大小量为 *KB的数据段,剩下的数据作为一数据段;对比模块,用于当所述待上传文件为所述某个文件的修改版吋,确定出所述待上传文件的M个数据段中相对于所述某个文件为新的数据段;及上传模块,用于当该待上传文件不是服务器上某个文件的修改版时则将该待上传文件按数据从前往后的排列地上传给服务器,当该待上传文件是服务器上某个文件的修改版时则将对比模块确定出新的数据段及该数据段在所述待上传文件的段順位、所述待上传文件的段数M上传给服务器; 在服务器端,对于上传的文件,服务器将文件按所述分段规则分段存储;对于上传的数据段,若上传的数据段所在的待上传文件的段数M小于或等于与该待上传文件对应的某个文件的段数N,N为大于等于1的自然数,将上传的数据段按照其段順位对应地替代某个文件的数据段,并将某个文件的后面的A段数据删除,A = N-M ;若数据段所在的待上传文件的段数M大于与该待上传文件对应的某个文件的段数N,将段顺位在[1,N] 之间的上传的数据段按照其段顺位对应地替代某个文件的数据段,并将段順位在(N,M]之间的上传的数据段按段順位排列作为某个文件的后续数据段。
2.根据权利要求1所述的系统,其特征在干,在服务器端,对每个文件的各数据段按计算规则分别计算出每数据段的自我标识并保存;所述对比模块包括计算模块,对分段模块得出的所述待上传文件的各数据段按所述计算规则分别计算出每数据段的自我标识;获取模块,从服务器上获取所述某个文件的数据段的段数N和每数据段的自我标识; 及分析模块,其从计算模块和获取模块接收結果,进行以下分析以确定出所述待上传文件的相对于所述某个文件为新的数据段当M > N,将所述待上传文件和所述某个文件的段順位在[1,N]间的数据段的自我标识,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的的数据段认定为相对于所述某个文件为新的数据段,所述待上传文件的段順位在(N,M]间的数据段也认定为相对于所述某个文件为新的数据段;当M < N,将两个文件的段順位在[1,M]间的数据段的自我标识,按同段順位的两个自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段。
3.一种从用户端软件上传文件给服务器的方法,其特征在干,包括以下步骤(1)、用户端软件在将待上传文件上传之前判断出该待上传文件是否是服务器上某个文件的修改版,若是,转步骤;若否转步骤O);O)、将待上传文件按分段规则从前往后地分成M个数据段,M为大于等于1的自然数, 所述分段规则为当文件的大小量小干*KB,* > 0,则该文件整体为ー数据段;当文件的大小量为*KB的T倍,N为正整数,则该文件从前往后依順序均勻分为T个大小量为*KB的数据段;当文件的大小量为*KB的(T+A)倍,0 < A < 1,则该文件的前T个*Kb的数据从前往后依順序分为T个大小量为*KB的数据段,剩下的数据作为一数据段;(3)、确定待上传文件的M个数据段中相对于所述某个文件为新的数据段;(4)、当该待上传文件不是服务器上某个文件的修改版则将该待上传文件按数据从前往后的排列地上传给服务器;当所述待上传文件为所述某个文件的修改版时则将对比模块确定出新的数据段及该数据段在所述待上传文件的段順位、所述待上传文件的段数M上传给服务器;(5)、在服务器上,对于上传的文件,服务器将文件按所述分段规则分段存储;对于上传的数据段,若上传的数据段所在的待上传文件的段数M小于或等于与该待上传文件对应的某个文件的段数N,N为大于等于1的自然数,服务器将上传的数据段按照其段順位对应地替代某个文件的数据段,并将某个文件的后面的A段数据删除,A = N-M ;若数据段所在的待上传文件的段数M大于与该待上传文件对应的某个文件的段数N,将段顺位在[1,N]之间的上传的数据段按照其段顺位对应地替代某个文件的数据段,并将段順位在(N,M]之间的上传的数据段按段順位排列作为某个文件的后续数据段。
4.根据权利要求3所述的方法,其特征在干,所述步骤C3)具体包括(301)、对步骤( 得出的所述待上传文件的各数据段按所述计算规则分别计算出每数据段的自我标识;(302)、从服务器上获取所述某个文件的数据段的段数N和每数据段的自我标识;(303)、从计算模块和获取模块接收結果,进行以下分析以确定出所述待上传文件的相对于所述某个文件为新的数据段当M > N,将所述待上传文件和所述某个文件的段順位在 [1,N]间的数据段的自我标识,按同段順位的两个数据段的自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段,所述待上传文件的段順位在(N,M]间的数据段也认定为相对于所述某个文件为新的数据段;当 M < N,将两个文件的段順位在[1,M]间的数据段的自我标识,按同段順位的两个自我标识之间比较是否相同的对比方式进行对比,确定出所有对比结果为不同的两个自我标识中属于所述待上传文件的自我标识,与这些自我标识对应的数据段认定为相对于所述某个文件为新的数据段。
全文摘要
本发明涉及一种传输文件的系统,其包括用户端软件和服务器,用户端软件包括判断模块、分段模块、对比模块及上传模块;在服务器上将文件进行分段存储,然后在用户端软件上对待上传文件进行分段分析,以确定出待上传文件相对服务器上文件为新的数据段,然后将新的数据段进行上传,服务器就可以实现待上传文件在服务器的保存。因此,本发明系统能便于用户端软件快速上传文件给服务器,也不会多占用服务器的空间。
文档编号H04L29/08GK102571952SQ201110461119
公开日2012年7月11日 申请日期2011年12月31日 优先权日2011年12月31日
发明者谭仲北 申请人:珠海金山办公软件有限公司, 珠海金山软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1