CN103414759B - 网盘文件传输方法和装置 - Google Patents
网盘文件传输方法和装置 Download PDFInfo
- Publication number
- CN103414759B CN103414759B CN201310308895.0A CN201310308895A CN103414759B CN 103414759 B CN103414759 B CN 103414759B CN 201310308895 A CN201310308895 A CN 201310308895A CN 103414759 B CN103414759 B CN 103414759B
- Authority
- CN
- China
- Prior art keywords
- data block
- file
- server
- finger print
- print information
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种网盘文件传输方法和装置,属于网络存储技术领域。所述方法包括:对第一待上传文件进行切片,生成所述第一待上传文件的数据块;生成所述数据块的客户端数据块位置标识以及数据块指纹信息;比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块;根据所述数据块和所述确定的重复数据块,将所述数据块中的除重复数据块以外的数据块写入第二待上传文件,并将第二待上传文件上传至网盘服务器。本发明避免了相同数据的重复上传,进而减少网盘客户端带宽的消耗,也减少对网盘服务器的数据存储空间的占用。
Description
技术领域
本发明涉及网络存储技术领域,特别涉及一种网盘文件传输方法和装置。
背景技术
网盘,又称网络U盘、网络硬盘,是一种在线存储服务。网盘服务器端能够接收网盘客户端上传的任意文件,为用户提供文件的存储、访问、备份、共享等文件管理功能。
在现有技术中,网盘客户端上传文件操作是通过调用SOAP(Simple ObjectAccess Protocol,简单对象访问协议)或HTTP(Hyper Text Transfer Protocol,超文本传输协议)接口实现的。网盘客户端首先通过调用SOAP/HTTP接口登陆网盘服务器端并获得相关权限,然后选择待上传的本地文件,调用SOAP/HTTP接口上传该文件至网盘服务器端。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
网盘客户端在上传本地文件时,对上传的文件内容不做任何甄别,导致网盘服务器端资源被大量占用,同时也会加大网盘客户端的带宽消耗,延长用户等待时间。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种网盘文件传输方法和装置。所述技术方案如下:
第一方面,提供了一种网盘文件传输方法,所述方法包括:
对第一待上传文件进行切片,生成所述第一待上传文件的数据块;
生成所述数据块的客户端数据块位置标识以及数据块指纹信息;
比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
根据所述数据块和所述确定的重复数据块,将所述数据块中的除重复数据块以外的数据块写入第二待上传文件,并将所述第二待上传文件上传至网盘服务器。
在第一方面的第一种可能的实现方式中,生成所述数据块的客户端数据块位置标识以及数据块指纹信息包括:
生成临时指纹信息表,所述临时指纹信息表包括客户端数据块位置标识以及数据块指纹信息;
或,
在对所述第一待上传文件的切分过程中,每切分一个数据块,生成切分得到的数据块的客户端数据块位置标识以及数据块指纹信息。
在第一方面的第二种可能的实现方式中,根据所述数据块和所述确定的重复数据块,将所述数据块中的除重复数据块以外的数据块写入第二待上传文件,并将所述第二待上传文件上传至网盘服务器包括:
根据所述数据块和所述确定的重复数据块,将所述数据块中的除所述确定的重复数据块以外的数据块写入所述第二待上传文件,并将所述重复数据块在所述预设服务器指纹信息表中对应的服务器数据块编号写入所述第二待上传文件,并将写入后的所述第二待上传文件上传至所述网盘服务器。
在第一方面的第三种可能的实现方式中,比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块包括:
确定所述数据块中数据块指纹信息与预设服务器指纹信息表数据块指纹信息相同的数据块为重复数据块;
记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号。
在第一方面的第四种可能的实现方式中,记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号之后,所述方法还包括:
根据记录的客户端数据块位置标识以及服务器数据块编号,创建文件属性数据块,所述文件属性数据块携带文件属性标识、所述重复数据块的服务器数据块编号以及所述客户端数据块位置标识;
在上传所述第二待上传文件时,将所述文件属性数据块上传至网盘服务器,使得所述网盘服务器建立所述第二待上传文件与所述文件属性数据块之间的关联关系。
在第一方面的第五种可能的实现方式中,对第一待上传文件进行切片,生成所述第一待上传文件的数据块之前,所述方法还包括:
获取所述网盘服务器的预设服务器指纹信息表。
在第一方面的第六种可能的实现方式中,获取所述网盘服务器的预设服务器指纹信息表包括:
从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表版本号;
当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号不同时,从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表;
当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号相同时,获取所述本地保存的预设服务器指纹信息表。
第二方面,提供了一种网盘文件传输方法,所述方法包括:
获取网盘服务器发送的第一指定文件以及所述第一指定文件的文件属性数据块,所述文件属性数据块携带所述第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;
根据所述文件属性数据块所包括的文件属性标识判断所述第一指定文件是否包括重复数据块;
如果所述第一指定文件不包括重复数据块,删除所述文件属性数据块;
如果所述第一指定文件包括重复数据块,获取所述重复数据块,将所述重复数据块插入所述第一指定文件与所述客户端数据块位置标识对应的位置,生成完整文件。
在第二方面的第一种可能的实现方式中,如果所述第一指定文件包括重复数据块,获取所述重复数据块,将所述重复数据块插入所述第一指定文件与所述客户端数据块位置标识对应的位置,生成完整文件包括:
将所述文件属性数据块进行切分,得到重复数据块信息块,所述重复数据块信息块包括服务器数据块编号以及对应的客户端数据块位置标识;
根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块;
根据所述重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入所述第一指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
在第二方面的第二种可能的实现方式中,根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块包括:
根据所述重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
第三方面,提供了一种网盘文件传输方法,所述方法包括:
获取网盘服务器发送的第二指定文件,所述第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;
根据所述重复数据块的服务器数据块编号,获取所述重复数据块;
根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
在第三方面的第一种可能的实现方式中,根据所述重复数据块的服务器数据块编号,获取所述重复数据块包括:
根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
在第三方面的第二种可能的实现方式中,根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件包括:
根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件与所述客户端数据块位置标识中的文件内偏移量相应的位置,生成完整文件。
第四方面,提供了一种网盘文件处理方法,所述方法包括:
对网盘服务器上保存的文件进行切片,生成数据块;
根据所述数据块,生成预设服务器指纹信息表,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
将所述预设服务器指纹信息表发送至对应的网盘客户端。
在第四方面的第一种可能的实现方式中,根据所述数据块,生成预设服务器指纹信息表之后,所述方法还包括:
根据所述网盘服务器上对所述数据块中任一数据块的操作,更新版本号以及更新记录表,所述版本号以及更新记录表用于记录所述预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异。
在第四方面的第二种可能的实现方式中,所述方法还包括:
当接收到对所述网盘服务器上所述数据块中任一数据块的修改指令时,根据数据块引用信息表判断所述修改指令对应的数据块是否被引用,如果是,则不执行所述修改指令,如果否,执行所述修改指令,所述数据块引用信息表包括服务器数据块编号以及对应的数据块被引用次数。
在第四方面的第三种可能的实现方式中,所述方法还包括:
当获取到临时重复数据块信息表时,遍历所述临时重复数据块信息表中的服务器数据块编号,所述临时重复数据块信息表包括重复数据块的服务器数据块编号、客户端数据块位置标识;
更新所述数据块引用信息表中与所述临时重复数据块信息表中的服务器数据块编号对应的数据块被引用次数。
第五方面,提供了一种网盘文件传输装置,所述装置包括:
第一待上传文件切分模块,用于对第一待上传文件进行切片,生成所述第一待上传文件的数据块;
数据块信息生成模块,用于生成所述数据块的客户端数据块位置标识以及数据块指纹信息;
重复数据块确定模块,用于比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
第二待上传文件上传模块,用于根据所述数据块和所述确定的重复数据块,将所述数据块中的除重复数据块以外的数据块写入第二待上传文件,并将所述第二待上传文件上传至网盘服务器。
在第五方面的第一种可能的实现方式中,所述数据块信息生成模块包括:
临时指纹信息表生成单元,用于生成临时指纹信息表,所述临时指纹信息表包括客户端数据块位置标识以及数据块指纹信息;
或,
单个数据块信息生成单元,用于在对所述第一待上传文件的切分过程中,每切分一个数据块,生成切分得到的数据块的客户端数据块位置标识以及数据块指纹信息。
在第五方面的第二种可能的实现方式中,所述第二待上传文件上传模块包括:
第二待上传文件上传单元,用于根据所述数据块和所述确定的重复数据块,将所述数据块中的除所述确定的重复数据块以外的数据块写入所述第二待上传文件,并将所述重复数据块在所述预设服务器指纹信息表中对应的服务器数据块编号写入所述第二待上传文件,并将写入后的所述第二待上传文件上传至所述网盘服务器。
在第五方面的第三种可能的实现方式中,所述重复数据块确定模块包括:
重复数据块确定单元,用于确定所述数据块中数据块指纹信息与预设服务器指纹信息表数据块指纹信息相同的数据块为重复数据块;
重复数据块信息记录单元,用于记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号。
在第五方面的第四种可能的实现方式中,所述装置还包括:
文件数据数据块创建模块,用于根据记录的客户端数据块位置标识以及服务器数据块编号,创建文件属性数据块,所述文件属性数据块携带文件属性标识、所述重复数据块的服务器数据块编号以及所述客户端数据块位置标识;
文件属性数据块上传模块,用于在上传所述第二待上传文件时,将所述文件属性数据块上传至网盘服务器,使得所述网盘服务器建立所述第二待上传文件与所述文件属性数据块之间的关联关系。
在第五方面的第五种可能的实现方式中,所述装置还包括:
预设服务器指纹信息表获取模块,用于获取所述网盘服务器的预设服务器指纹信息表。
在第五方面的第六种可能的实现方式中,所述预设服务器指纹信息表获取模块包括:
预设服务器指纹信息表版本号获取单元,用于从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表版本号;
第一预设服务器指纹信息表获取单元,用于当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号不同时,从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表;
第二预设服务器指纹信息表获取单元,用于当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号相同时,获取所述本地保存的预设服务器指纹信息表。
第六方面,提供了一种网盘文件传输装置,所述装置包括:
第一指定文件获取模块,用于获取网盘服务器发送的第一指定文件以及所述第一指定文件的文件属性数据块,所述文件属性数据块携带所述第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;
第一指定文件判断模块,用于根据所述文件属性数据块所包括的文件属性标识判断所述第一指定文件是否包括重复数据块;
文件属性数据块删除模块,用于如果所述第一指定文件不包括重复数据块,删除所述文件属性数据块;
第一重复数据块获取模块,用于如果所述第一指定文件包括重复数据块,获取所述重复数据块,将所述重复数据块插入所述第一指定文件与所述客户端数据块位置标识对应的位置,生成完整文件。
在第六方面的第一种可能的实现方式中,所述第一重复数据块获取模块包括:
文件属性数据块切分单元,用于将所述文件属性数据块进行切分,得到重复数据块信息块,所述重复数据块信息块包括服务器数据块编号以及对应的客户端数据块位置标识;
第一重复数据块获取单元,用于根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块;
第一重复数据块插入单元,用于根据所述重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入所述第一指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
在第六方面的第二种可能的实现方式中,所述第一重复数据块获取单元包括:
重复数据块获取子单元,用于根据所述重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
第七方面,提供了一种网盘文件传输装置,所述装置包括:
第二指定文件获取模块,用于获取网盘服务器发送的第二指定文件,所述第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;
第二重复数据块获取模块,用于根据所述重复数据块的服务器数据块编号,获取所述重复数据块;
第二重复数据块插入模块,用于根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
在第七方面的第一种可能的实现方式中,所述第二重复数据块获取模块包括:
第二重复数据块获取单元,用于根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
在第七方面的第二种可能的实现方式中,所述第二重复数据块插入模块包括:
第二重复数据块插入单元,用于根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件与所述客户端数据块位置标识中的文件内偏移量相应的位置,生成完整文件。
第八方面,提供了一种网盘文件处理装置,所述装置包括:
服务器文件切分模块,用于对网盘服务器上保存的文件进行切片,生成数据块;
预设服务器指纹信息表生成模块,用于根据所述数据块,生成预设服务器指纹信息表,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
预设服务器指纹信息表发送模块,用于将所述预设服务器指纹信息表发送至对应的网盘客户端。
在第八方面的第一种可能的实现方式中,所述装置还包括:
更新模块,用于根据所述网盘服务器上对所述数据块中任一数据块的操作,更新版本号以及更新记录表,所述版本号以及更新记录表用于记录所述预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异。
在第八方面的第二种可能的实现方式中,所述装置还包括:
指令执行模块,用于当接收到对所述网盘服务器上所述数据块中任一数据块的修改指令时,根据数据块引用信息表判断所述修改指令对应的数据块是否被引用,如果是,则不执行所述修改指令,如果否,执行所述修改指令,所述数据块引用信息表包括服务器数据块编号以及对应的数据块被引用次数。
在第八方面的第三种可能的实现方式中,所述装置还包括:
服务器数据块编号遍历模块,用于当获取到临时重复数据块信息表时,遍历所述临时重复数据块信息表中的服务器数据块编号,所述临时重复数据块信息表包括重复数据块的服务器数据块编号、客户端数据块位置标识;
更新模块,用于更新所述数据块引用信息表中与所述临时重复数据块信息表中的服务器数据块编号对应的数据块被引用次数。
本发明实施例提供的技术方案带来的有益效果是:
通过将待上传文件切分成至少一个数据块,在上传文件时,当识别出待上传的本地文件数据块与网盘服务器已保存的数据块之间存在重复数据块,剔除重复数据块,仅上传除重复数据块以外的数据块,避免了相同数据的重复上传,进而减少网盘客户端带宽的消耗,同时剔除上传文件中重复数据也可以减少对网盘服务器的数据存储空间的占用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的网盘文件传输方法流程图;
图2是本发明实施例提供的网盘文件传输方法流程图;
图3是本发明实施例提供的网盘文件处理方法流程图;
图4是本发明实施例提供的网盘文件传输方法流程图;
图5是本发明实施例提供的网盘文件处理方法流程图;
图6是本发明实施例提供的第二待上传文件创建方法流程图;
图7是本发明实施例提供的数据块引用信息表更新方法流程图;
图8是本发明实施例提供的网盘文件传输方法流程图;
图9是本发明实施例提供的网盘文件传输方法流程图;
图10是本发明实施例提供的网盘文件传输方法流程图;
图11是本发明实施例提供的网盘文件传输装置结构示意图;
图12是本发明实施例提供的网盘文件传输装置结构示意图;
图13是本发明实施例提供的网盘文件传输装置结构示意图;
图14是本发明实施例提供的网盘文件传输装置结构示意图;
图15是本发明实施例提供的客户端结构示意图;
图16是本发明实施例提供的客户端结构示意图;
图17是本发明实施例提供的客户端结构示意图;
图18是本发明实施例提供的服务器结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的网盘文件传输方法的流程图。参见图1所述方法包括:
101、对第一待上传文件进行切片,生成该第一待上传文件的数据块;
102、生成该数据块的客户端数据块位置标识以及数据块指纹信息;
103、比较该数据块的客户端数据块位置标识以及该数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块,该预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及该服务器数据块对应的数据块指纹信息;
104、根据该数据块和该确定的重复数据块,将该数据块中的除重复数据块以外的数据块写入第二待上传文件,并将该第二待上传文件上传至网盘服务器。
本发明实施例通过将待上传文件切分成至少一个数据块,在上传文件时,当识别出待上传的本地文件数据块与网盘服务器已保存的数据块之间存在重复数据块,剔除重复数据块,仅上传除重复数据块以外的数据块,避免了相同数据的重复上传,进而减少网盘客户端带宽的消耗,同时剔除上传文件中重复数据也可以减少对网盘服务器的数据存储空间的占用。
图2是本发明实施例提供的网盘文件传输方法的流程图。参见图2所述方法包括:
201、获取网盘服务器发送的第一指定文件以及该第一指定文件的文件属性数据块,该文件属性数据块携带该第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;
202、根据该文件属性数据块所包括的文件属性标识判断该第一指定文件是否包括重复数据块;
203、如果该第一指定文件不包括重复数据块,删除该文件属性数据块;
204、如果该第一指定文件包括重复数据块,获取该重复数据块,将该重复数据块插入该第一指定文件与该客户端数据块位置标识对应的位置,生成完整文件。
本发明实施例是与文件去重上传方法对应的文件下载方法的具体实现方式。本实施例通过将文件属性数据块切分成至少一个重复数据块信息块,识别出本地文件数据块与网盘服务器已存在文件数据块中的重复数据块,在下载文件时,将下载的重复数据块插入该文件的相应位置,得到完整文件。
图3是本发明实施例提供的网盘文件处理方法的流程图。参见图3,所述方法包括:
301、对网盘服务器上保存的文件进行切片,生成数据块;
302、根据该数据块,生成预设服务器指纹信息表,该预设服务器指纹信息表包括服务器数据块编号以及该数据块的数据块指纹信息;
303、将该预设服务器指纹信息表发送至对应的网盘客户端。
本发明实施例是与网盘客户端文件去重上传方法对应的网盘服务器文件处理方法的具体实现方式,本实施例通过将网盘服务器保存的文件切分成至少一个数据块,生成预设服务器指纹信息表,将该预设服务器指纹信息表发送至对应的网盘客户端,以便于网盘客户端上传去重文件。
图4是本发明实施例提供的网盘文件处理方法的流程图。参见图4所述方法包括:
401、获取网盘服务器发送的第二指定文件,该第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;
402、根据该重复数据块的服务器数据块编号,获取该重复数据块;
403、根据该客户端数据块位置标识,将该重复数据块插入该第二指定文件的与该客户端数据块位置标识对应的位置,生成完整文件。
本发明实施例是与文件去重上传方法对应的文件下载方法的具体实现方式。本实施例通过获取第二指定文件及其携带的重复数据块的服务器数据块编号以及客户端数据块位置标识,在下载文件时,将下载的重复数据块插入该文件的相应位置,得到完整文件。
图5是本发明实施例提供的网盘文件传输方法的流程图。该实施例仅以网盘客户端向网盘服务器上传文件为例进行说明,参见图5所述方法包括:
501、网盘服务器对网盘服务器上保存的文件进行切片,生成数据块;
具体地,网盘服务器扫描网盘服务器上用户的所有文件,按预设切片算法对所有文件进行切分,将网盘服务器上用户的所有文件切分成至少一个数据块,且每个数据块分配一个服务器数据块编号。
可选地,网盘服务器保存的文件可以是该网盘客户端上传的文件,也可以是网盘服务器上保存的所有客户端上传的文件。
可选地,预设切片算法可以是按固定字节数将文件切分成至少一个数据块,还可以按照其他方式将文件切分成至少一个数据块。
502、网盘服务器根据该数据块,生成预设服务器指纹信息表,该预设服务器指纹信息表包括服务器数据块编号以及该数据块的数据块指纹信息;
具体地,根据该至少一个数据块,按预设指纹提取算法为每一个数据块建立对应指纹信息,该数据块指纹信息与服务器数据块编号是对应的,不同数据块对应的指纹信息不同,生成预设服务器指纹信息表。
进一步地,该预设服务器指纹信息表不仅包括服务器数据块编号以及每个数据对应的数据块指纹信息,还包括服务器数据块位置标识,该服务器数据块位置标识用于标识服务器数据块在文件中的位置,该服务器数据块位置标识包括文件名称和文件内偏移量。
可选地,预设指纹算法可以是信息摘要算法,例如MD5(Message-DigestAlgorithm5,信息-摘要算法5)算法、SHA-1(Secure Hash Algorithm,安全散列算法2)算法等。
在如表1所示的预设服务器指纹信息表中,服务器数据块编号1对应的数据块的指纹信息为a,服务器数据块位置标识文件名称X:偏移量m用于表示该数据块位于X文件内中偏移量m的位置。
表1
服务器数据块编号 | 服务器数据块位置标识 | 数据块指纹信息 |
1 | 文件名称X:偏移量m | 数据块指纹a |
本发明中的指纹信息表都以普通文件的方式存储在网盘服务器对应的用户存储空间中,不仅保障了用户数据的隐私安全而且屏蔽了对网盘服务器端的依赖,方便用户将数据在不同的网盘服务器提供商之间进行迁移。
503、网盘服务器将该预设服务器指纹信息表发送至对应的网盘客户端;
本发明实施例仅以网盘服务器向网盘客户端发送该预设服务器指纹信息表为例进行说明,可选地,网盘服务器可以在接收到网盘客户端发送的预设服务器指纹信息表请求时,将预设服务器指纹信息表发送至对应网盘客户端,还可以是网盘服务器主动将该预设服务器指纹信息表推送至对应网盘客户端,还可以是网盘客户端从网盘服务器主动拉取预设服务器指纹信息表,本发明实施例对此不做限定。
504、当网盘客户端接收到预设服务器指纹信息表时,保存该预设服务器指纹信息表;
需要说明的是,步骤501-504可以是周期性进行,还可以是由网盘客户端上传文件时触发,本实施例在此不做限定,
另外,本发明实施例仅以由网盘服务器生成预设服务器指纹信息表并将生成的信息表发送至网盘客户端为例进行说明,而在实际应用中,该生成服务器指纹信息表的过程也可以是在网盘客户端进行,也即是,该步骤501-504可以由以下步骤代替:网盘客户端获取用户在网盘服务器的所有文件;网盘客户端按预设切片算法对该网盘服务器上的文件进行切片,生成至少一个数据块;网盘客户端根据该至少一个数据块,生成预设服务器指纹信息表;网盘客户端将所述预设服务器指纹信息表上传至网盘服务器。
505、当网盘客户端需要上传第一待上传文件时,获取网盘服务器的预设服务器指纹信息表版本号;
其中,预设服务器指纹信息表版本号为预设服务器指纹信息表每次更新时设置的编号,不同版本号的预设服务器指纹信息表中所包含的数据块指纹信息不同。
该步骤505具体包括:网盘客户端向网盘服务器发送上传文件请求,当网盘服务器接收到该上传文件请求时,向网盘客户端返回上传响应,该上传响应携带网盘服务器的预设服务器指纹信息表版本号,当网盘客户端接收到该上传响应时,获取携带在上传响应中的网盘服务器的预设服务器指纹信息表版本号。
506、网盘客户端比较本地保存的预设服务器指纹信息表版本号和从网盘服务器获取到的预设服务器指纹信息表版本号;
其中,本地保存的预设服务器指纹信息表版本号可以是步骤501-504中获取到的预设服务器指纹信息表的版本号。
507、如果本地保存的预设服务器指纹信息表版本号和从网盘服务器获取到的预设服务器指纹信息表版本号不同,网盘客户端从网盘服务器获取预设服务器指纹信息表;
508、如果本地保存的预设服务器指纹信息表版本号和从网盘服务器获取到的预设服务器指纹信息表版本号相同,网盘客户端从本地获取预设服务器指纹信息表;
优选的,该步骤505-508还可以由以下步骤代替:网盘客户端从网盘服务器获取网盘服务器的预设服务器指纹信息表,避免了对本地保存的预设服务器指纹信息表版本号和从网盘服务器获取到的预设服务器指纹信息表版本号是否一致的判断过程,在每次上传时均获取网盘服务器当前最新的预设服务器指纹信息表。又或者,该步骤505-508还可以由以下步骤代替:网盘客户端获取本地保存的预设服务器指纹信息表,减少了在上传时与网盘服务器之间的交互,减少了上传开始之前准备工作的耗时。
509、网盘客户端对第一待上传文件进行切片,生成该第一待上传文件的数据块;
可选地,网盘客户端按预设切片算法对第一待上传文件进行切分,将第一待上传文件切分成至少一个数据块。
需要说明的是,步骤509中的预设切片算法与步骤501中的预设切片算法相同,这里不再赘述。
另外,该步骤509和上述步骤505-508可以并行进行,还可以以一定的先后顺序进行,本发明实施例对此不作限定。
510、网盘客户端生成临时指纹信息表,该临时指纹信息表包括客户端数据块位置标识以及数据块指纹信息;
可选地,网盘客户端根据该第一待上传文件的至少一个数据块,按预设指纹提取算法为每一个数据块建立对应指纹信息,生成临时指纹信息表,该临时指纹信息表包括客户端数据块位置标识以及对应的数据块指纹信息,其中,该客户端数据位置标识用于标识客户端数据块在客户端中的位置,该客户端数据块位置标识包括文件名称和文件内偏移量。
在如表2所示的临时指纹信息表中,客户端数据块位置标识文件名称X:偏移量m用于表示该数据块位于X文件中偏移量为m的位置,该数据块对应的数据块指纹信息为a。
表2
序号 | 客户端数据块位置标识 | 数据块指纹信息 |
1 | 文件名称X:偏移量m | 数据块指纹a |
需要说明的是,步骤510中的预设指纹提取算法与502中的预设指纹提取算法相同,这里不再赘述。
在本发明实施例中,上述步骤510是根据该至少一个数据块,生成该至少一个数据块的客户端数据块位置标识以及每个数据块对应的数据块指纹信息的过程,在此,仅以用表格的形式记录数据块的客户端数据块位置标识和对应的数据块指纹信息,而实际应用中,也可以用其他形式进行记录。
511、比较该临时指纹信息表和预设服务器指纹信息表,生成临时重复数据块信息表,该预设服务器指纹信息表包括服务器数据块编号以及该服务器数据块对应的数据块指纹信息,该临时重复数据块信息表包括根据该临时指纹信息表和预设服务器指纹信息表确定的重复数据块;
该步骤511具体包括:当该临时指纹信息表与预设服务器指纹信息表中包括相同数据块指纹信息时,该相同数据块指纹信息对应的数据块为重复数据块,将该相同数据块指纹信息在该临时指纹信息表中对应的客户端数据块位置标识以及该相同数据块指纹信息在预设服务器指纹信息表对应的服务器数据块编号记录在该临时重复数据块信息表中。由于相同数据块指纹对应的数据块相同,则该相同数据块指纹对应的数据块即为第一待上传文件与网盘服务器的文件中的重复数据块,因此,对该相同数据块的信息进行记录。
例如,基于表1所示的预设服务器指纹信息表和表2所示的临时指纹信息表,可以确定数据块指纹a对应的数据块为重复数据块,则将数据块指纹a在表2所示的临时指纹信息表中对应的客户端数据块位置标识文件名称X:偏移量m以及数据块指纹a在表1所示的预设服务器指纹信息表中对应的服务器数据块编号1分别写入表3所示的临时重复数据信息表。
表3
序号 | 客户端数据块位置标识 | 服务器数据块编号 |
1 | 文件名称X:偏移量m | 服务器数据块编号1 |
该步骤511是根据生成的数据块指纹信息和预设服务器指纹信息表确定重复数据块的过程,确定该数据块中数据块指纹信息与预设服务器指纹信息表数据块指纹信息相同的数据块为重复数据块;记录该重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及该重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号。在本发明实施例中,仅以将重复数据块的数据块指纹信息对应的客户端数据块位置标识以及该相同数据块指纹信息在预设服务器指纹信息表对应的服务器数据块编号记录在临时重复数据块信息表中为例进行说明。
512、网盘客户端根据该数据块和该临时重复数据块信息表,将该数据块中的除该确定的重复数据块以外的数据块写入第二待上传文件,并将写入后的该第二待上传文件上传至网盘服务器;
其中,第二上传文件中的至少一个数据块不包括第一待上传文件与网盘服务器中文件的重复数据块。
该步骤512即是将第一待上传文件中的重复数据块剔除,并将不重复的数据块上传至网盘服务器的过程,其中,第二待上传文件是临时文件,在上传该第二待上传文件后,可将该第二待上传文件从网盘客户端删除,而不对第一待上传文件本身造成影响。
如图6所示为第二待上传文件的创建方法流程图。详述如下:
首先创建该第二待上传文件;其次遍历第一待上传文件的至少一个数据块,判断遍历到的数据块对应的客户端数据块位置标识是否包括在该临时重复数据块信息表中,如果遍历到的数据块对应的客户端数据块位置标识不包括在该临时重复数据块信息表中,则将该遍历到的数据块写入第二待上传文件,继续遍历其他数据块;如果遍历到的数据块对应的客户端数据块位置标识包括在该临时重复数据块信息表中,继续遍历其他数据块。
513、网盘客户端根据该临时重复数据块信息表,创建文件属性数据块,该文件属性数据块携带文件属性标识、重复数据块的服务器数据块编号以及数据块位置标识;
可选地,该文件属性数据块携带的文件属性标识用于确定文件是否存在重复数据块。该文件属性标识可以为重复数据块个数,当重复数据块个数为0时,确定该文件不存在重复数据块,而当重复数据块个数不为0时,确定该文件存在重复数据块。另外,该文件属性标识还可以为标识位,如0或1,则当该文件属性标识为0时,确定该文件不存在重复数据块,当该文件属性标识为1时,确定该文件存在重复数据块,当然,该0或1具体表示的情况可以由技术人员设置,本发明实施例对此不做限定。
可选地,该文件属性数据块中的每个重复数据块信息块均对应临时重复数据块信息表中一条记录,该重复数据块信息块可以为64个字节,其中,该重复数据块信息块的前32位为客户端数据块位置标识,后32位为服务器数据块编号。
在如表4所示为文件属性数据块中,重复数据块信息块中的客户端数据块位置标识1和服务器数据块编号1用于表示临时重复数据块信息表中的一条记录,该重复数据块信息块的大小为64个字节,其中客户端数据块位置标识1为32个字节,服务器数据块编号1为32个字节。
表4
514、网盘客户端在上传该第二待上传文件时,将该文件属性数据块上传至网盘服务器,使得该网盘服务器建立该第二待上传文件与该文件属性数据块之间的关联关系;
该建立关联关系可以通过建立第二待上传文件以及该文件属性数据块之间的映射关系实现,以便在接收到对该第二待上传文件的下载请求时,能够索引到第二待上传文件以及该文件属性数据块。
515、当网盘服务器获取到临时重复数据块信息表时,更新数据块引用信息表中与该临时重复数据块信息表中的服务器数据块编号对应的数据块被引用次数,该临时重复数据块信息表包括重复数据块的服务器数据块编号、客户端数据块位置标识;
其中,该数据块引用信息表是根据预设服务器指纹信息表中的所有服务器数据块编号创建的,数据块引用信息表中的被引用次数是指服务器数据块编号对应的数据块被其他文件引用的次数。
在如表5所示为数据块引用信息表中,服务器数据块编号1对应的数据块被引用次数为0,即数据块编号1对应的数据块没有被其他文件引用;服务器数据块编号2对应的数据块被引用次数为3,即服务器数据块编号2对应的数据块被3个文件引用。
表5
序号 | 服务器数据块编号 | 被引用次数 |
1 | 服务器数据块编号1 | 0 |
2 | 服务器数据块编号2 | 3 |
当接收到网盘客户端上传的临时重复数据块信息表时,根据该临时重复数据块信息表更新数据块引用信息表。
如图7所示为数据块引用信息表更新方法流程图。详述如下:
遍历该临时重复数据块信息表中的服务器数据块编号;当数据块引用信息表中与该临时重复数据块信息表中的服务器数据块编号相同时,该服务器数据块编号对应的数据块被引用次数+1;当数据块引用信息表中与该临时重复数据块信息表中的服务器数据块编号不同时,继续遍历下一个服务器数据块编号。
516、根据该网盘服务器上对该数据块中任一数据块的操作,更新版本号以及更新记录表,该版本号以及更新记录表用于记录该预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异;
其中,对该至少一个数据块中任一数据块的操作包括但不限于删除、添加等。当前版本与上一个版本之间的差异指增加指纹或删除指纹的操作记录。
517、当接收到对该网盘服务器上该数据块中任一数据块的修改指令时,根据数据块引用信息表判断该修改指令对应的数据块是否被引用,如果是,则不执行该修改指令,如果否,执行该修改指令,该数据块引用信息表包括服务器数据块编号以及该服务器数据块编号对应的数据块被引用次数。
可选地,该网盘服务器上该数据块中任一数据块的修改指令包括但不限于删除、修改或添加等操作指令。
本发明实施例通过将待上传文件切分成至少一个数据块,在上传文件时,当识别出待上传的本地文件数据块与网盘服务器已保存的数据块之间存在重复数据块,剔除重复数据块,仅上传除重复数据块以外的数据块,避免了相同数据的重复上传,进而减少网盘客户端带宽的消耗,同时剔除上传文件中重复数据也可以减少对网盘服务器的数据存储空间的占用。
图8是本发明实施例提供的网盘文件传输方法的流程图。该实施例仅以网盘客户端向网盘服务器上传文件为例进行说明,参见图8,所述方法包括:
801、网盘服务器对网盘服务器上保存的文件进行切片,生成数据块;
802、网盘服务器根据该数据块,生成预设服务器指纹信息表,该预设服务器指纹信息表包括服务器数据块编号以及该数据块的数据块指纹信息;
803、网盘服务器将该预设服务器指纹信息表发送至对应的网盘客户端;
804、当网盘客户端接收到预设服务器指纹信息表时,保存该预设服务器指纹信息表;
805、当网盘客户端需要上传第一待上传文件时,获取网盘服务器的预设服务器指纹信息表版本号;
806、网盘客户端比较本地保存的预设服务器指纹信息表版本号和从网盘服务器获取到的预设服务器指纹信息表版本号;
807、如果本地保存的预设服务器指纹信息表版本号和从网盘服务器获取到的预设服务器指纹信息表版本号不同,网盘客户端从网盘服务器获取预设服务器指纹信息表;
808、如果本地保存的预设服务器指纹信息表版本号和从网盘服务器获取到的预设服务器指纹信息表版本号相同,网盘客户端从本地获取预设服务器指纹信息表;
步骤801-808与步骤501-508实现方法类似,本实施例不再赘述。
809、网盘客户端对第一待上传文件进行切片,生成该第一待上传文件的数据块;
810、在对该第一待上传文件的切分过程中,每切分一个数据块,生成切分得到的数据块的客户端数据块位置标识以及数据块指纹信息;
其中,网盘客户端按预设切分算法对第一待上传文件进行切分,将第一待上传文件切分成至少一个数据块,每切分成一个数据块,即生成该数据块的客户端数据块位置标识以及该切分得到的数据块对应的数据块指纹信息,该客户端数据块位置标识包括文件名称及文件内偏移量,并按预设指纹提取算法生成该数据块对应的数据块指纹信息。
811、比较该数据块的客户端数据块位置标识以及该数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块;
其中,网盘客户端预设切分算法对第一待上传文件进行切分,将第一待上传文件切分成至少一个数据块,每切分成一个数据块,即生成该数据块的客户端数据块位置标识以及对应的数据块指纹信息,每生成该数据块的客户端数据块位置标识以及对应的数据块指纹信息,即比较该数据块的客户端数据块位置标识以及对应的数据块指纹信息和预设服务器指纹信息表,当预设服务器指纹信息表中的确定重复客户端数据块位置标识以及对应的数据块指纹信息与该数据块的客户端数据块位置标识以及对应的数据块指纹信息对应相同时,确定该数据块为重复数据块,继续对第一待上传文件进行切分。
812、根据该数据块和该确定的重复数据块,将该数据块中的除该重复数据块以外的数据块写入该第二待上传文件,并将该重复数据块在该预设服务器指纹信息表中对应的服务器数据块编号写入该第二待上传文件,并将写入后的该第二待上传文件上传至网盘服务器;
其中,将多个数据块中的除重复数据块以外的数据块写入第二待上传文件,重复数据块不写入第二待上传文件中,而是将重复数据块在预设服务器指纹信息表中对应的服务器数据块编号写入第二待上传文件相应位置。
813、根据该网盘服务器上对该数据块中任一数据块的操作,更新版本号以及更新记录表,该版本号以及更新记录表用于记录该预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异;
814、当接收到对该网盘服务器上该数据块中任一数据块的修改指令时,根据数据块引用信息表判断该修改指令对应的数据块是否被引用,如果是,则不执行该修改指令,如果否,执行该修改指令,该数据块引用信息表包括服务器数据块编号以及该服务器数据块编号对应的数据块被引用次数。
步骤813-814与步骤516-517实现方法类似,不再赘述。
本发明实施例通过将待上传文件切分成至少一个数据块,每切分成一个数据块,即识别该数据块是否为重复数据块,剔除重复数据块,仅上传除重复数据块以外的数据块以及重复数据块的客户端数据块位置标识,避免了相同数据的重复上传,进而减少网盘客户端带宽的消耗,同时剔除上传文件中重复数据也可以减少对网盘服务器的数据存储空间的占用。另外,本发明中的指纹信息表都以普通文件的方式存储在网盘服务器对应的用户存储空间中,不仅保障了用户数据的隐私安全而且屏蔽了对网盘服务器端的依赖,方便用户将数据在不同的网盘服务器提供商之间进行迁移。
图9是本发明实施例提供的网盘文件传输方法的流程图。该实施例仅以网盘客户端从网盘服务器下载文件为例进行说明,参见图9,所述方法包括:
901、网盘客户端获取网盘服务器发送的第一指定文件以及该第一指定文件所对应的文件属性数据块,该文件属性数据块携带该第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;
需要说明的是,本实施例中可以先获取网盘服务发送的第一指定文件再获取该第一指定文件所对应的文件属性数据块,也可以先获取该第一指定文件所对应的文件属性数据块再获取网盘服务器发送的第一指定文件,本实施例在此不做限定。
902、网盘服务器根据该文件属性数据块所包括的文件属性标识,判断该第一指定文件是否包括重复数据块;
如果是,执行步骤904;
如果否,执行步骤903。
其中,该文件属性数据块携带的文件属性标识用于确定文件是否存在重复数据块。该文件属性标识可以为重复数据块个数,当重复数据块个数为0时,确定该文件不存在重复数据块,而当重复数据块个数不为0时,确定该文件存在重复数据块。另外,该文件属性标识还可以为标识位,如0或1,则当该文件属性标识为0时,确定该文件不存在重复数据块,当该文件属性标识为1时,确定该文件存在重复数据块,当然,该0或1具体表示的情况可以由技术人员设置,本发明实施例对此不做限定。
903、网盘服务器删除该文件属性数据块,结束;
具体地,该文件属性数据块携带文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识,如果根据文件属性标识,确定第一指定文件不存在重复数据块,则删除该文件属性数据块;
904、网盘服务器将该文件属性数据块进行切分,得到重复数据块信息块,该重复数据块信息块包括服务器数据块编号以及对应的客户端数据块位置标识;
其中,将该文件属性数据块切成至少一个重复数据块信息块,每个重复数据块信息块均对应临时重复数据块信息表中一条记录,该重复数据块信息块可以为64个字节,其中,该重复数据块信息块的前32位为客户端数据块位置标识,后32位为服务器数据块编号。
905、网盘服务器根据该重复数据块信息块所包括的服务器数据块编号从该网盘服务器获取相应的重复数据块;
根据该至少一个重复数据块信息块所包括的服务器数据块编号以及预设服务器指纹信息表,从预设服务器指纹信息表中获取该至少一个重复数据块的服务器数据块编号所对应的客户端数据块位置标识,以根据客户端数据块位置标识中所包含的文件名以及文件内偏移量,从该网盘服务器中与该重复数据信息块对应的客户端数据块位置标识相应的位置获取相应的重复数据块。
906、网盘服务器根据该重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入该第一指定文件与该客户端数据块位置标识对应的位置,生成完整文件。
其中,该重复数据块信息块所包括的客户端数据块位置标识为该数据块在完整文件中应在的位置,该客户端数据块位置标识包括文件名称和偏移量,根据该至少一个重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入该第一指定文件相应的偏移位置,生成完整文件。
本发明实施例是与文件去重上传方法对应的文件下载方法的具体实现方式。本实施例通过将文件属性数据块切分成至少一个重复数据块信息块,识别出本地文件数据块与网盘服务器已存在文件数据块中的重复数据块,在下载文件时,将下载的重复数据块插入该文件的相应位置,得到完整文件。
图10是本发明实施例提供的网盘文件传输方法的流程图。该实施例仅以网盘客户端从网盘服务器下载文件为例进行说明,参见图10,所述方法包括:
1001、获取网盘服务器发送的第二指定文件,该第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;
1002、根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取该服务器数据块编号所对应的客户端数据块位置标识,根据该预设服务器指纹信息表中的客户端数据块位置标识中所包含的文件名以及文件内偏移量,从该网盘服务器的相应位置获取相应的重复数据块;
其中,该预设服务器指纹信息表不仅包括服务器数据块编号以及对应的数据块指纹信息,还包括客户端数据块位置标识,该客户端数据块位置标识用于标识服务器数据块在文件中的位置,该客户端数据块位置标识包括文件名称和文件内偏移量,根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取服务器数据块编号所对应的客户端数据块位置标识,根据预设服务器指纹信息表中的客户端数据块位置标识中所包含的文件名以及文件内偏移量,从网盘服务器的相应位置获取相应的重复数据块。
1003、根据该客户端数据块位置标识,将该重复数据块插入该第二指定文件与该客户端数据块位置标识中的文件内偏移量相应的位置,生成完整文件。
其中,该客户端数据块位置标识为该数据块在完整文件中应在的位置,该客户端数据块位置标识包括文件名称和偏移量,根据该客户端数据块位置标识,将获取到的重复数据块插入该第二指定文件相应的偏移位置,生成完整文件。
上述发明实施例所提供的网盘文件传输方法,可以应用于网盘系统,以便该网盘客户端能够访问该网盘客户端用户在网盘服务器上的存储空间,向该存储空间上传文件或下载存储空间中的文件。
本发明实施例是与文件去重上传方法对应的文件下载方法的具体实现方式。本实施例通过获取第二指定文件及其携带的重复数据块的服务器数据块编号以及数据块位置标识,在下载文件时,将下载的重复数据块插入该文件的相应位置,得到完整文件。
图11是本发明实施例提供的网盘文件传输装置结构图。参见图11,所述装置包括第一待上传文件切分模块111、数据块信息生成模块112、重复数据块确定模块113、第二待上传文件上传模块114。
第一待上传文件切分模块111用于对第一待上传文件进行切片,生成所述第一待上传文件的数据块;第一待上传文件切分模块111与数据块信息生成模块112相连,数据块信息生成模块112用于生成所述数据块的客户端数据块位置标识以及数据块指纹信息;数据块信息生成模块112与重复数据块确定模块113相连,重复数据块确定模块113用于比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;重复数据块确定模块113与第二待上传文件上传模块114相连,第二待上传文件上传模块114用于根据所述数据块和所述确定的重复数据块,将所述数据块中的除重复数据块以外的数据块写入第二待上传文件,并将所述第二待上传文件上传至网盘服务器。
可选地,所述数据块信息生成模块112包括:
临时指纹信息表生成单元,用于生成临时指纹信息表,所述临时指纹信息表包括客户端数据块位置标识以及数据块指纹信息;
或,
单个数据块信息生成单元,用于在对所述第一待上传文件的切分过程中,每切分一个数据块,生成切分得到的数据块的客户端数据块位置标识以及数据块指纹信息。
可选地,所述第二待上传文件上传模块114包括:
第二待上传文件上传单元,用于根据所述数据块和所述确定的重复数据块,将所述数据块中的除所述确定的重复数据块以外的数据块写入所述第二待上传文件,并将所述重复数据块在所述预设服务器指纹信息表中对应的服务器数据块编号写入所述第二待上传文件,并将写入后的所述第二待上传文件上传至所述网盘服务器。
可选地,所述重复数据块确定模块113包括:
重复数据块确定单元,用于确定所述数据块中数据块指纹信息与预设服务器指纹信息表数据块指纹信息相同的数据块为重复数据块;
重复数据块信息记录单元,用于记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号。
可选地,所述装置还包括:
文件数据数据块创建模块,用于根据记录的客户端数据块位置标识以及服务器数据块编号,创建文件属性数据块,所述文件属性数据块携带文件属性标识、所述重复数据块的服务器数据块编号以及所述客户端数据块位置标识;
文件属性数据块上传模块,用于在上传所述第二待上传文件时,将所述文件属性数据块上传至网盘服务器,使得所述网盘服务器建立所述第二待上传文件与所述文件属性数据块之间的关联关系。
可选地,所述装置还包括:
预设服务器指纹信息表获取模块,用于获取所述网盘服务器的预设服务器指纹信息表。
可选地,所述预设服务器指纹信息表获取模块包括:
预设服务器指纹信息表版本号获取单元,用于从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表版本号;
第一预设服务器指纹信息表获取单元,用于当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号不同时,从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表;
第二预设服务器指纹信息表获取单元,用于当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号相同时,获取所述本地保存的预设服务器指纹信息表。
图12是本发明实施例提供的网盘文件传输装置结构图。参见图12,所述装置包括第一指定文件获取模块121、第一指定文件判断模块122、文件属性数据块删除模块123、第一重复数据块获取模块124。
第一指定文件获取模块121用于获取网盘服务器发送的第一指定文件以及所述第一指定文件的文件属性数据块,所述文件属性数据块携带所述第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;第一指定文件获取模块121与第一指定文件判断模块122相连,第一指定文件判断模块122用于根据所述文件属性数据块所包括的文件属性标识判断所述第一指定文件是否包括重复数据块;第一指定文件判断模块122与文件属性数据块删除模块123相连,文件属性数据块删除模块123用于如果所述第一指定文件不包括重复数据块,删除所述文件属性数据块;文件属性数据块删除模块123与第一重复数据块获取模块124相连,第一重复数据块获取模块124用于如果所述第一指定文件包括重复数据块,获取所述重复数据块,将所述重复数据块插入所述第一指定文件与所述客户端数据块位置标识对应的位置,生成完整文件。
可选地,所述第一重复数据块获取模块124包括:
文件属性数据块切分单元,用于将所述文件属性数据块进行切分,得到重复数据块信息块,所述重复数据块信息块包括服务器数据块编号以及对应的客户端数据块位置标识;
第一重复数据块获取单元,用于根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块;
第一重复数据块插入单元,用于根据所述重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入所述第一指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
可选地,所述第一重复数据块获取单元包括:
重复数据块获取子单元,用于根据所述重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
图13是本发明实施例提供的网盘文件传输装置结构图。参见图13,所述装置包括第二指定文件获取模块131、第二重复数据块获取模块132、第二重复数据块插入模块133。
第二指定文件获取模块131用于获取网盘服务器发送的第二指定文件,所述第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;第二指定文件获取模块131与第二重复数据块获取模块132相连,第二重复数据块获取模块132用于根据所述重复数据块的服务器数据块编号,获取所述重复数据块;第二重复数据块获取模块132与相连第二重复数据块插入模块133,第二重复数据块插入模块133用于根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
可选地,所述第二重复数据块获取模块132包括:
第二重复数据块获取单元,用于根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
可选地,所述第二重复数据块插入模块133包括:
第二重复数据块插入单元,用于根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件与所述客户端数据块位置标识中的文件内偏移量相应的位置,生成完整文件。
图14是本发明实施例提供的网盘文件传输装置结构图。参见图14,所述装置包括:服务器文件切分模块141、预设服务器指纹信息表生成模块142、预设服务器指纹信息表发送模块143。
服务器文件切分模块141用于对网盘服务器上保存的文件进行切片,生成数据块;服务器文件切分模块141与预设服务器指纹信息表生成模块142相连,预设服务器指纹信息表生成模块142用于根据所述数据块,生成预设服务器指纹信息表,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;预设服务器指纹信息表生成模块142与预设服务器指纹信息表发送模块143相连,预设服务器指纹信息表发送模块143用于将所述预设服务器指纹信息表发送至对应的网盘客户端。
可选地,所述装置还包括:
更新模块,用于根据所述网盘服务器上对所述数据块中任一数据块的操作,更新版本号以及更新记录表,所述版本号以及更新记录表用于记录所述预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异。
可选地,所述装置还包括:
指令执行模块,用于当接收到对所述网盘服务器上所述数据块中任一数据块的修改指令时,根据数据块引用信息表判断所述修改指令对应的数据块是否被引用,如果是,则不执行所述修改指令,如果否,执行所述修改指令,所述数据块引用信息表包括服务器数据块编号以及对应的数据块被引用次数。
可选地,所述装置还包括:
服务器数据块编号遍历模块,用于当获取到临时重复数据块信息表时,遍历所述临时重复数据块信息表中的服务器数据块编号,所述临时重复数据块信息表包括重复数据块的服务器数据块编号、客户端数据块位置标识;
更新模块,用于更新所述数据块引用信息表中与所述临时重复数据块信息表中的服务器数据块编号对应的数据块被引用次数。
需要说明的是:上述实施例提供的网盘文件传输装置在传输网盘文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网盘文件传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
图15是本发明实施例的客户端的结构示意图。参见图15,所述客户端包括有第一存储器151,第一处理器152以及一个或者一个以上的程序,其中一个或者一个以上程序存储于第一存储器151中,且经配置以由一个或者一个以上第一处理器152执行述一个或者一个以上程序包含用于进行以下操作的指令:
对第一待上传文件进行切片,生成所述第一待上传文件的数据块;
生成所述数据块的客户端数据块位置标识以及数据块指纹信息;
比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
根据所述数据块和所述确定的重复数据块,将所述数据块中的除重复数据块以外的数据块写入第二待上传文件,并将所述第二待上传文件上传至网盘服务器。
可选地,还包含用于进行以下操作的指令:
生成临时指纹信息表,所述临时指纹信息表包括客户端数据块位置标识以及数据块指纹信息;
或,
在对所述第一待上传文件的切分过程中,每切分一个数据块,生成切分得到的数据块的客户端数据块位置标识以及数据块指纹信息。
可选地,还包含用于进行以下操作的指令:
根据所述数据块和所述确定的重复数据块,将所述数据块中的除所述确定的重复数据块以外的数据块写入所述第二待上传文件,并将所述重复数据块在所述预设服务器指纹信息表中对应的服务器数据块编号写入所述第二待上传文件,并将写入后的所述第二待上传文件上传至所述网盘服务器。
可选地,还包含用于进行以下操作的指令:
比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块包括:
确定所述数据块中数据块指纹信息与预设服务器指纹信息表数据块指纹信息相同的数据块为重复数据块;
记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号。
可选地,还包含用于进行以下操作的指令:
根据记录的客户端数据块位置标识以及服务器数据块编号,创建文件属性数据块,所述文件属性数据块携带文件属性标识、所述重复数据块的服务器数据块编号以及所述客户端数据块位置标识;
在上传所述第二待上传文件时,将所述文件属性数据块上传至网盘服务器,使得所述网盘服务器建立所述第二待上传文件与所述文件属性数据块之间的关联关系。
可选地,还包含用于进行以下操作的指令:
获取所述网盘服务器的预设服务器指纹信息表。
可选地,还包含用于进行以下操作的指令:
从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表版本号;
当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号不同时,从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表;
当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号相同时,获取所述本地保存的预设服务器指纹信息表。
图16是本发明实施例的客户端的结构示意图。参见图16,所述客户端包括有第二存储器161,第二处理器162以及一个或者一个以上的程序,其中一个或者一个以上程序存储于第二存储器161中,且经配置以由一个或者一个以上第二处理器162执行述一个或者一个以上程序包含用于进行以下操作的指令:
获取网盘服务器发送的第一指定文件以及所述第一指定文件的文件属性数据块,所述文件属性数据块携带所述第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;
根据所述文件属性数据块所包括的文件属性标识判断所述第一指定文件是否包括重复数据块;
如果所述第一指定文件不包括重复数据块,删除所述文件属性数据块;
如果所述第一指定文件包括重复数据块,获取所述重复数据块,将所述重复数据块插入所述第一指定文件与所述客户端数据块位置标识对应的位置,生成完整文件。
可选地,还包含用于进行以下操作的指令:
将所述文件属性数据块进行切分,得到重复数据块信息块,所述重复数据块信息块包括服务器数据块编号以及对应的客户端数据块位置标识;
根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块;
根据所述重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入所述第一指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
可选地,还包含用于进行以下操作的指令:
根据所述重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
图17是本发明实施例的客户端的结构示意图。参见图17,所述客户端包括有第三存储器171,第三处理器172以及一个或者一个以上的程序,其中一个或者一个以上程序存储于第三存储器171中,且经配置以由一个或者一个以上第三处理器172执行述一个或者一个以上程序包含用于进行以下操作的指令:
获取网盘服务器发送的第二指定文件,所述第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;
根据所述重复数据块的服务器数据块编号,获取所述重复数据块;
根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
可选地,还包含用于进行以下操作的指令:
根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
可选地,还包含用于进行以下操作的指令:
根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件与所述客户端数据块位置标识中的文件内偏移量相应的位置,生成完整文件。
图18是本发明实施例的服务器的结构示意图。参见图18,所述服务器包括有第四存储器181,第四处理器182以及一个或者一个以上的程序,其中一个或者一个以上程序存储于第四存储器181中,且经配置以由一个或者一个以上第四处理器182执行述一个或者一个以上程序包含用于进行以下操作的指令:
对网盘服务器上保存的文件进行切片,生成数据块;
根据所述数据块,生成预设服务器指纹信息表,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
将所述预设服务器指纹信息表发送至对应的网盘客户端。
可选地,还包含用于进行以下操作的指令:
根据所述网盘服务器上对所述数据块中任一数据块的操作,更新版本号以及更新记录表,所述版本号以及更新记录表用于记录所述预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异。
可选地,还包含用于进行以下操作的指令:
当接收到对所述网盘服务器上所述数据块中任一数据块的修改指令时,根据数据块引用信息表判断所述修改指令对应的数据块是否被引用,如果是,则不执行所述修改指令,如果否,执行所述修改指令,所述数据块引用信息表包括服务器数据块编号以及对应的数据块被引用次数。
可选地,还包含用于进行以下操作的指令:
当获取到临时重复数据块信息表时,遍历所述临时重复数据块信息表中的服务器数据块编号,所述临时重复数据块信息表包括重复数据块的服务器数据块编号、客户端数据块位置标识;
更新所述数据块引用信息表中与所述临时重复数据块信息表中的服务器数据块编号对应的数据块被引用次数。
本发明实施例提供了一种网盘文件传输系统,所述系统包括上述实施例所述的任一服务器和客户端。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (26)
1.一种网盘文件传输方法,其特征在于,所述方法包括:
对第一待上传文件进行切片,生成所述第一待上传文件的数据块;
生成所述数据块的客户端数据块位置标识以及数据块指纹信息;
比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
根据所述数据块和所述确定的重复数据块,将所述数据块中的除所述确定的重复数据块以外的数据块写入第二待上传文件,并将所述重复数据块在所述预设服务器指纹信息表中对应的服务器数据块编号写入所述第二待上传文件,并将写入后的所述第二待上传文件上传至网盘服务器。
2.根据权利要求1所述的方法,其特征在于,生成所述数据块的客户端数据块位置标识以及数据块指纹信息包括:
生成临时指纹信息表,所述临时指纹信息表包括客户端数据块位置标识以及数据块指纹信息;
或,
在对所述第一待上传文件的切分过程中,每切分一个数据块,生成切分得到的数据块的客户端数据块位置标识以及数据块指纹信息。
3.根据权利要求1所述的方法,其特征在于,比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块包括:
确定所述数据块中数据块指纹信息与预设服务器指纹信息表数据块指纹信息相同的数据块为重复数据块;
记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号。
4.根据权利要求3所述的方法,其特征在于,记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号之后,所述方法还包括:
根据记录的客户端数据块位置标识以及服务器数据块编号,创建文件属性数据块,所述文件属性数据块携带文件属性标识、所述重复数据块的服务器数据块编号以及所述客户端数据块位置标识;
在上传所述第二待上传文件时,将所述文件属性数据块上传至网盘服务器,使得所述网盘服务器建立所述第二待上传文件与所述文件属性数据块之间的关联关系。
5.根据权利要求1所述的方法,其特征在于,对第一待上传文件进行切片,生成所述第一待上传文件的数据块之前,所述方法还包括:
获取所述网盘服务器的预设服务器指纹信息表。
6.根据权利要求5所述的方法,其特征在于,获取所述网盘服务器的预设服务器指纹信息表包括:
从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表版本号;
当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号不同时,从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表;
当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号相同时,获取所述本地保存的预设服务器指纹信息表。
7.一种网盘文件传输方法,其特征在于,所述方法包括:
获取网盘服务器发送的第一指定文件以及所述第一指定文件的文件属性数据块,所述文件属性数据块携带所述第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;
根据所述文件属性数据块所包括的文件属性标识判断所述第一指定文件是否包括重复数据块;
如果所述第一指定文件不包括重复数据块,删除所述文件属性数据块;
如果所述第一指定文件包括重复数据块,将所述文件属性数据块进行切分,得到重复数据块信息块,所述重复数据块信息块包括服务器数据块编号以及对应的客户端数据块位置标识;
根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块;
根据所述重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入所述第一指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
8.根据权利要求7所述的方法,其特征在于,根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块包括:
根据所述重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
9.一种网盘文件传输方法,其特征在于,所述方法包括:
获取网盘服务器发送的第二指定文件,所述第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;
根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块;
根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
10.根据权利要求9所述的方法,其特征在于,根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件包括:
根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件与所述客户端数据块位置标识中的文件内偏移量相应的位置,生成完整文件。
11.一种网盘文件处理方法,其特征在于,所述方法包括:
对网盘服务器上保存的文件进行切片,生成数据块;
根据所述数据块,生成预设服务器指纹信息表,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
将所述预设服务器指纹信息表发送至对应的网盘客户端;
根据所述网盘服务器上对所述数据块中任一数据块的操作,更新版本号以及更新记录表,所述版本号以及更新记录表用于记录所述预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当接收到对所述网盘服务器上所述数据块中任一数据块的修改指令时,根据数据块引用信息表判断所述修改指令对应的数据块是否被引用,如果是,则不执行所述修改指令,如果否,执行所述修改指令,所述数据块引用信息表包括服务器数据块编号以及对应的数据块被引用次数。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当获取到临时重复数据块信息表时,遍历所述临时重复数据块信息表中的服务器数据块编号,所述临时重复数据块信息表包括重复数据块的服务器数据块编号、客户端数据块位置标识;
更新数据块引用信息表中与所述临时重复数据块信息表中的服务器数据块编号对应的数据块被引用次数。
14.一种网盘文件传输装置,其特征在于,所述装置包括:
第一待上传文件切分模块,用于对第一待上传文件进行切片,生成所述第一待上传文件的数据块;
数据块信息生成模块,用于生成所述数据块的客户端数据块位置标识以及数据块指纹信息;
重复数据块确定模块,用于比较所述数据块的客户端数据块位置标识以及所述数据块的数据块指纹信息和预设服务器指纹信息表,确定重复数据块,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
第二待上传文件上传模块,用于根据所述数据块和所述确定的重复数据块,将所述数据块中的除所述确定的重复数据块以外的数据块写入第二待上传文件,并将所述重复数据块在所述预设服务器指纹信息表中对应的服务器数据块编号写入所述第二待上传文件,并将写入后的所述第二待上传文件上传至网盘服务器。
15.根据权利要求14所述的装置,其特征在于,所述数据块信息生成模块包括:
临时指纹信息表生成单元,用于生成临时指纹信息表,所述临时指纹信息表包括客户端数据块位置标识以及数据块指纹信息;
或,
单个数据块信息生成单元,用于在对所述第一待上传文件的切分过程中,每切分一个数据块,生成切分得到的数据块的客户端数据块位置标识以及数据块指纹信息。
16.根据权利要求14所述的装置,其特征在于,所述重复数据块确定模块包括:
重复数据块确定单元,用于确定所述数据块中数据块指纹信息与预设服务器指纹信息表数据块指纹信息相同的数据块为重复数据块;
重复数据块信息记录单元,用于记录所述重复数据块中的数据块的数据块指纹信息的客户端数据块位置标识以及所述重复数据块中的数据块的数据块指纹信息在预设服务器指纹信息表的服务器数据块编号。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
文件数据数据块创建模块,用于根据记录的客户端数据块位置标识以及服务器数据块编号,创建文件属性数据块,所述文件属性数据块携带文件属性标识、所述重复数据块的服务器数据块编号以及所述客户端数据块位置标识;
文件属性数据块上传模块,用于在上传所述第二待上传文件时,将所述文件属性数据块上传至网盘服务器,使得所述网盘服务器建立所述第二待上传文件与所述文件属性数据块之间的关联关系。
18.根据权利要求14所述的装置,其特征在于,所述装置还包括:
预设服务器指纹信息表获取模块,用于获取所述网盘服务器的预设服务器指纹信息表。
19.根据权利要求18所述的装置,其特征在于,所述预设服务器指纹信息表获取模块包括:
预设服务器指纹信息表版本号获取单元,用于从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表版本号;
第一预设服务器指纹信息表获取单元,用于当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号不同时,从所述网盘服务器获取所述网盘服务器的预设服务器指纹信息表;
第二预设服务器指纹信息表获取单元,用于当本地保存的预设服务器指纹信息表版本号和所述获取到的预设服务器指纹信息表版本号相同时,获取所述本地保存的预设服务器指纹信息表。
20.一种网盘文件传输装置,其特征在于,所述装置包括:
第一指定文件获取模块,用于获取网盘服务器发送的第一指定文件以及所述第一指定文件的文件属性数据块,所述文件属性数据块携带所述第一指定文件所包含的文件属性标识、重复数据块的服务器数据块编号以及客户端数据块位置标识;
第一指定文件判断模块,用于根据所述文件属性数据块所包括的文件属性标识判断所述第一指定文件是否包括重复数据块;
文件属性数据块删除模块,用于如果所述第一指定文件不包括重复数据块,删除所述文件属性数据块;
第一重复数据块获取模块包括:文件属性数据块切分单元,用于将所述文件属性数据块进行切分,得到重复数据块信息块,所述重复数据块信息块包括服务器数据块编号以及对应的客户端数据块位置标识;
第一重复数据块获取单元,用于根据所述重复数据块信息块所包括的服务器数据块编号从所述网盘服务器获取相应的重复数据块;
第一重复数据块插入单元,用于根据所述重复数据块信息块所包括的客户端数据块位置标识,将获取到的重复数据块插入所述第一指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
21.根据权利要求20所述的装置,其特征在于,所述第一重复数据块获取单元包括:
重复数据块获取子单元,用于根据所述重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块。
22.一种网盘文件传输装置,其特征在于,所述装置包括:
第二指定文件获取模块,用于获取网盘服务器发送的第二指定文件,所述第二指定文件携带重复数据块的服务器数据块编号以及客户端数据块位置标识;
第二重复数据块获取模块,用于根据重复数据块的服务器数据块编号,从预设服务器指纹信息表中获取所述服务器数据块编号所对应的服务器数据块位置标识,根据所述预设服务器指纹信息表中的服务器数据块位置标识中所包含的文件名以及文件内偏移量,从所述网盘服务器的相应位置获取相应的重复数据块;
第二重复数据块插入模块,用于根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件的与所述客户端数据块位置标识对应的位置,生成完整文件。
23.根据权利要求22所述的装置,其特征在于,所述第二重复数据块插入模块包括:
第二重复数据块插入单元,用于根据所述客户端数据块位置标识,将所述重复数据块插入所述第二指定文件与所述客户端数据块位置标识中的文件内偏移量相应的位置,生成完整文件。
24.一种网盘文件处理装置,其特征在于,所述装置包括:
服务器文件切分模块,用于对网盘服务器上保存的文件进行切片,生成数据块;
预设服务器指纹信息表生成模块,用于根据所述数据块,生成预设服务器指纹信息表,所述预设服务器指纹信息表包括服务器数据块编号、服务器数据块位置标识以及所述服务器数据块对应的数据块指纹信息;
预设服务器指纹信息表发送模块,用于将所述预设服务器指纹信息表发送至对应的网盘客户端;
更新模块,用于根据所述网盘服务器上对所述数据块中任一数据块的操作,更新版本号以及更新记录表,所述版本号以及更新记录表用于记录所述预设服务器指纹信息表的版本号以及当前版本与上一个版本之间的差异。
25.根据权利要求24所述的装置,其特征在于,所述装置还包括:
指令执行模块,用于当接收到对所述网盘服务器上所述数据块中任一数据块的修改指令时,根据数据块引用信息表判断所述修改指令对应的数据块是否被引用,如果是,则不执行所述修改指令,如果否,执行所述修改指令,所述数据块引用信息表包括服务器数据块编号以及对应的数据块被引用次数。
26.根据权利要求24所述的装置,其特征在于,所述装置还包括:
服务器数据块编号遍历模块,用于当获取到临时重复数据块信息表时,遍历所述临时重复数据块信息表中的服务器数据块编号,所述临时重复数据块信息表包括重复数据块的服务器数据块编号、客户端数据块位置标识;
更新模块,用于更新数据块引用信息表中与所述临时重复数据块信息表中的服务器数据块编号对应的数据块被引用次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310308895.0A CN103414759B (zh) | 2013-07-22 | 2013-07-22 | 网盘文件传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310308895.0A CN103414759B (zh) | 2013-07-22 | 2013-07-22 | 网盘文件传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103414759A CN103414759A (zh) | 2013-11-27 |
CN103414759B true CN103414759B (zh) | 2016-12-28 |
Family
ID=49607745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310308895.0A Active CN103414759B (zh) | 2013-07-22 | 2013-07-22 | 网盘文件传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103414759B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902686B (zh) * | 2014-03-25 | 2017-11-17 | 华为技术有限公司 | 一种数据去重方法及装置 |
CN106063192A (zh) * | 2014-05-21 | 2016-10-26 | 华为技术有限公司 | 无线以太接口硬盘传输方法和相关设备及系统 |
CN105450542B (zh) * | 2014-08-21 | 2019-08-27 | 联想(北京)有限公司 | 一种数据处理方法及第一电子设备 |
CN105468533B (zh) * | 2014-09-10 | 2019-02-19 | 华为技术有限公司 | 数据写入方法、装置及存储器 |
CN105338382A (zh) * | 2015-10-29 | 2016-02-17 | 无锡天脉聚源传媒科技有限公司 | 一种数据处理方法及装置 |
CN105763644A (zh) * | 2016-04-21 | 2016-07-13 | 广州杰赛科技股份有限公司 | 云盘文件同步更新方法与装置 |
CN106341480B (zh) * | 2016-09-20 | 2019-12-20 | 北京奇虎科技有限公司 | 数据包的上传方法及装置 |
CN106446138B (zh) * | 2016-09-20 | 2020-11-20 | 北京奇虎科技有限公司 | 数据包的存储方法及装置 |
CN108073355B (zh) * | 2016-11-15 | 2020-03-17 | 杭州海康威视数字技术股份有限公司 | 一种数据存储和删除方法及装置 |
CN109361772A (zh) * | 2018-12-13 | 2019-02-19 | 浪潮电子信息产业股份有限公司 | 一种分布式对象存储系统中文件上传方法及装置 |
CN110086850B (zh) * | 2019-03-19 | 2022-11-15 | 视联动力信息技术股份有限公司 | 一种文件的处理方法和视联网网盘系统 |
CN110297812A (zh) * | 2019-06-13 | 2019-10-01 | 深圳市比比赞科技有限公司 | 文件存储方法、文件同步的方法、计算机设备及存储介质 |
CN110493344B (zh) * | 2019-08-22 | 2022-04-05 | 视联动力信息技术股份有限公司 | 文件下载方法和装置 |
CN112243041A (zh) * | 2020-12-21 | 2021-01-19 | 成都雨云科技有限公司 | 一种用于远程桌面访问协议的跨域连接系统及其方法 |
CN114598697B (zh) * | 2022-03-29 | 2024-06-07 | 浪潮云信息技术股份公司 | 一种传输文件的方法、装置及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004055817A1 (en) * | 2002-12-13 | 2004-07-01 | Matsushita Electric Industrial Co., Ltd. | Recording and reproducing system, recording apparatus, reproducing apparatus, record medium, recording and reproducing method, recording method, reproducing method, program and record medium |
CN101158954A (zh) * | 2007-11-07 | 2008-04-09 | 上海爱数软件有限公司 | 一种在计算机存储中识别重复数据的方法 |
CN101504670A (zh) * | 2009-03-04 | 2009-08-12 | 成都市华为赛门铁克科技有限公司 | 数据操作方法、系统、客户端和数据服务器 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及系统 |
CN102736961A (zh) * | 2011-03-11 | 2012-10-17 | 微软公司 | 数据去重复的备份和还原策略 |
-
2013
- 2013-07-22 CN CN201310308895.0A patent/CN103414759B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004055817A1 (en) * | 2002-12-13 | 2004-07-01 | Matsushita Electric Industrial Co., Ltd. | Recording and reproducing system, recording apparatus, reproducing apparatus, record medium, recording and reproducing method, recording method, reproducing method, program and record medium |
CN101158954A (zh) * | 2007-11-07 | 2008-04-09 | 上海爱数软件有限公司 | 一种在计算机存储中识别重复数据的方法 |
CN101504670A (zh) * | 2009-03-04 | 2009-08-12 | 成都市华为赛门铁克科技有限公司 | 数据操作方法、系统、客户端和数据服务器 |
CN102736961A (zh) * | 2011-03-11 | 2012-10-17 | 微软公司 | 数据去重复的备份和还原策略 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103414759A (zh) | 2013-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103414759B (zh) | 网盘文件传输方法和装置 | |
US9881175B2 (en) | Requesting modification rights to a linked file set | |
US8601083B1 (en) | Content sharing with limited cloud storage | |
CN106250270B (zh) | 一种云计算平台下的数据备份方法 | |
CN103248645B (zh) | Bt离线数据下载系统及方法 | |
CN105677250B (zh) | 对象存储系统中的对象数据的更新方法和更新装置 | |
US9055063B2 (en) | Managing shared content with a content management system | |
US20140059217A1 (en) | Method for content change notification in a cloud storage system, a corresponding cloud broker and cloud agent | |
US20110276622A1 (en) | Reading a file from a cloud storage solution | |
CN103116615B (zh) | 一种基于版本矢量的数据索引方法及服务器 | |
CN103905495B (zh) | 一种应用的同步方法及后台服务器 | |
CN107770229A (zh) | 云端文件分享方法、系统和云服务器 | |
CN102480494A (zh) | 一种文件更新的方法、装置及系统 | |
WO2017215646A1 (zh) | 数据传输方法和装置 | |
US9811534B2 (en) | File server, information system, and control method thereof | |
US11265182B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
CN108173859A (zh) | 文件共享的方法和系统 | |
Li et al. | Coarse-grained cloud synchronization mechanism design may lead to severe traffic overuse | |
CN105872168A (zh) | 通讯录更新方法及装置 | |
CN106850761A (zh) | 日志文件存储方法及装置 | |
WO2011148377A1 (en) | Data tagging | |
CN103248674A (zh) | 跨域云平台的共享文件管理方法 | |
DE112012000305T5 (de) | Gemeinsame Wiederherstellung von Datenquellen | |
CN108197323A (zh) | 应用于分布式系统地图数据处理方法 | |
CN106326280A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211229 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |