CN103942208B - 文件处理方法及装置 - Google Patents

文件处理方法及装置 Download PDF

Info

Publication number
CN103942208B
CN103942208B CN201310020004.1A CN201310020004A CN103942208B CN 103942208 B CN103942208 B CN 103942208B CN 201310020004 A CN201310020004 A CN 201310020004A CN 103942208 B CN103942208 B CN 103942208B
Authority
CN
China
Prior art keywords
file
block
files
blocks
difference
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
CN201310020004.1A
Other languages
English (en)
Other versions
CN103942208A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201310020004.1A priority Critical patent/CN103942208B/zh
Publication of CN103942208A publication Critical patent/CN103942208A/zh
Application granted granted Critical
Publication of CN103942208B publication Critical patent/CN103942208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了一种应用于终端设备和服务器中的文件处理方法和装置。一种应用于终端设备的文件处理方法包括:将第一文件的第一版本在文件系统层分块,获得第一数量的文件块;接收在所述第一文件的所述第一版本基础上对所述第一文件的写操作;响应于对所述第一文件的写操作,生成第二数量的新文件块;针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块;接收对所述第一文件的保存操作;以及响应于所述保存操作,保存所述第一文件的第二版本以及所述差分块,其中所述第一文件的第二版本包含了所述写操作的操作结果。

Description

文件处理方法及装置
技术领域
本发明涉及文件管理,并且更具体地涉及一种能够更有效地存储并传送文件的文件处理方法及装置。
背景技术
当前,网盘大量兴起,例如已经存在新浪网盘、360网盘、百度网盘、华为网盘等等,用户只需要很小的代价就能在网盘上保存自己的文件,从而可以实现随时随地的存取和同步文件。
另一方面,当在终端设备上修改文件之后,用户需要将修改后的整个文件全部上传到网盘服务器上,以利用修改后的文件替换在网盘上保存的原文件。当终端设备为按照网络数据流量付费的终端设备时,诸如移动设备或者按流量收费的ADSL用户的各种终端设备等等,将修改后的整个文件全部上传到网盘服务器可能意味着更多的网络数据流量和系统功耗。
例如,当仅在具有500页的word文件的文件末尾增加了一句话的情况下,将修改后的整个文件全部上传到网盘服务器显然大大增加了网络数据流量和系统功耗。在理想情况下,如果仅将所增加的那句话所涉及的数据上传到网盘服务器,则可能产生最少的数据流量。
因此,需要一种能够以尽量少的网络数据流量在网盘服务器和终端设备之间同步文件的文件处理方法及装置。
发明内容
考虑到上述问题而提出了本发明。本发明提供了一种文件处理方法及装置,其通过将文件在文件系统层分块而将文件划分为多个原始文件块,以此为基础来修改文件,在文件被修改之后生成至少一个新文件块,并且产生新文件块与其对应原始文件块之间的差分块,在网盘服务器和终端设备之间仅同步所产生的差分块,从而大量降低网络数据流量。
根据本发明一方面,提供了一种文件处理方法,应用于终端设备,包括:将第一文件的第一版本在文件系统层分块,获得第一数量的文件块;接收在所述第一文件的所述第一版本基础上对所述第一文件的写操作;响应于对所述第一文件的写操作,生成第二数量的新文件块;针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块;以及接收对所述第一文件的保存操作;响应于所述保存操作,保存所述第一文件的第二版本以及所述差分块,其中所述第一文件的第二版本包含了所述写操作的操作结果。
优选地,所述文件处理方法还包括:接收对所述第一文件的所述第二版本的上传操作;以及响应于所述上传操作,将所保存的关于所述第一文件的所有差分块上传到服务器。
优选地,在所述文件处理方法中,生成第二数量的新文件块包括:针对所述第一数量的文件块中每个,在所述写操作涉及该文件块的情况下,在该文件块的基础上生成其对应的新文件块。
优选地,在所述文件处理方法中,针对所述第一数量的文件块中每个,在所述写操作对应于增加该文件块所涉及的内容的操作时,在该文件块的基础上生成至少一个对应的新文件块;在所述写操作对应于修改该文件块所涉及的内容的操作时,在该文件块的基础上生成至少一个对应的新文件块;在所述写操作对应于删除该文件块所涉及的部分内容的操作时,在该文件块的基础上生成一个对应的新文件块;以及在所述写操作对应于删除该文件块所涉及的全部内容的操作时,生成一个与该文件块对应的空白的新文件块。
优选地,在所述文件处理方法中,针对每个新文件块,确定该新文件块在所述第一数量的文件块中是否存在对应文件块,其中,在所述第一数量的文件块中一个文件块对应于至少一个新文件块的情况下,仅将所述至少一个新文件块中的第一个新文件块与所述文件块彼此对应;在该新文件块存在对应文件块的情况下,生成该新文件块与所述对应文件块的差分块;以及在该新文件块不存在对应文件块的情况下,将该新文件块本身作为其对应的差分块。
优选地,在所述文件处理方法中,针对每个新文件块,在该新文件块存在对应文件块且所述新文件块不为空白新文件块的情况下,利用该新文件块替换所述对应文件块;在该新文件块存在对应文件块且所述新文件块为空白新文件块的情况下,删除所述对应文件块;在该新文件块不存在对应文件块的情况下,保存该新文件块;以及保存所述第一数量的文件块中所述写操作未涉及的那些文件块。
根据本发明另一方面,提供了一种文件处理方法,应用于服务器,所述服务器保存了第一文件的第一版本,包括:接收上传的关于所述第一文件的第二版本的差分块;将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本;以及保存所述第一文件的所述第二版本。
优选地,所述文件处理方法还包括:保存所接收的差分块。
优选地,在所述文件处理方法中,接收上传的关于所述第一文件的第二版本的差分块包括:接收上传的关于所述第一文件的第二版本的差分块集合,所述差分块集合包括至少一个差分块;以及分解所述差分块集合,以得到所述至少一个差分块。
优选地,所述文件处理方法还包括:接收针对所述第一文件的第二版本的同步请求;响应于所述同步请求,传送所保存的关于所述第一文件的第二版本的差分块。
优选地,在所述文件处理方法中,在所述服务器保存的第一文件的第一版本在文件系统层被分块并包括第一数量的文件块,其中,对于每个差分块,确定该差分块在所述第一数量的文件块中是否存在对应文件块;在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块,并且在该新文件块为空白文件块的情况下,丢弃该新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块,以及利用所述第一数量的文件块中所接收的差分块未涉及的那些文件块、以及基于所接收的差分块所生成的新文件块,来生成所述第一文件的所述第二版本。
根据本发明的又一方面,提供了一种文件处理方法,应用于终端设备,在所述终端设备中保存了第一文件的第一版本,所述第一文件的第一版本在文件系统层被分块并且包括第一数量的文件块,包括:接收针对所述第一文件的同步操作;向服务器发送针对所述第一文件的第二版本的同步请求,在所述服务器中保存了关于所述第一文件的第二版本的差分块;从服务器接收关于所述第一文件的第二版本的差分块;将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本;以及保存所述第一文件的所述第二版本。
优选地,在所述文件处理方法中,接收关于所述第一文件的第二版本的差分块集合,所述差分块集合包括至少一个差分块;以及分解所述差分块集合,以得到所述至少一个差分块。
优选地,在所述文件处理方法中,对于每个差分块,确定该差分块在所述第一数量的文件块中是否存在对应文件块;在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块,并且在该新文件块为空白文件块的情况下,丢弃该新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块,以及利用所述第一数量的文件块中所接收的差分块未涉及的那些文件块、以及基于所接收的差分块所生成的新文件块,来生成所述第一文件的所述第二版本。
根据本发明的一方面,提供了一种文件处理装置,应用于终端设备,包括:文件分块部件,其将第一文件的第一版本在文件系统层分块,获得第一数量的文件块;操作接收部件,其接收在所述第一文件的所述第一版本基础上对所述第一文件的写操作;差分块生成部件,其响应于对所述第一文件的写操作,生成第二数量的新文件块,针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块;以及文件保存部件,其响应于所述操作接收部件接收到的对所述第一文件的保存操作,保存所述第一文件的第二版本以及所述差分块,其中所述第一文件的第二版本包含了所述写操作的操作结果。
优选地,所述操作接收部件还接收对所述第一文件的所述第二版本的上传操作,并且所述文件处理装置还包括:差分块上传部件,其响应于所述上传操作,将所保存的关于所述第一文件的所有差分块上传到服务器。
根据本发明的另一方面,提供了一种文件处理装置,应用于终端设备,在所述终端设备中保存了第一文件的第一版本,所述第一文件的第一版本在文件系统层被分块并且包括第一数量的文件块,包括:操作接收部件,其接收针对所述第一文件的同步操作;请求发送部件,其向服务器发送针对所述第一文件的第二版本的同步请求,在所述服务器中保存了关于所述第一文件的第二版本的差分块;差分块接收部件,其从服务器接收关于所述第一文件的第二版本的差分块;以及文件合并部件,其将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本;以及文件保存部件,其保存所述第一文件的所述第二版本。
根据本发明的又一方面,提供了一种文件处理装置,应用于服务器,所述服务器保存了第一文件的第一版本,包括:差分块接收部件,其接收上传的关于所述第一文件的第二版本的差分块;文件合并部件,其将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本;以及文件保存部件,其保存所述第一文件的所述第二版本以及所接收的差分块。
优选地,所述文件处理装置,还包括:请求接收部件,其接收针对所述第一文件的第二版本的同步请求;以及差分块传送部件,其响应于所述同步请求,传送所保存的关于所述第一文件的第二版本的差分块。
利用根据本发明实施例的应用于终端设备和服务器的文件处理方法和装置,通过在文件系统层将文件分块、以块为基础进行操作并在块发生改变时生成差分块、并且仅传送差分块,可以大大降低服务器与终端设备之间的网络数据流量和系统功耗。
附图说明
通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目的、特征、优点将会变得更加清楚,其中:
图1是示出根据本发明实施例的应用于终端设备的文件处理方法的流程图;
图2是示出根据本发明实施例的应用于终端设备的文件处理方法的补充流程图;
图3是示出根据本发明实施例的应用于终端设备的文件处理方法中保存修改后的文件的示意性流程;
图4是示出根据本发明实施例的应用于服务器的文件处理方法的流程图;
图5是示出根据本发明实施例的应用于服务器的文件处理方法的补充流程图;
图6是示出根据本发明实施例的应用于服务器的文件处理方法中保存修改后的文件的示意性流程;
图7是示出根据本发明实施例的应用于终端设备的文件处理方法的流程图;
图8是示出根据本发明实施例的应用于终端设备的文件处理方法中保存修改后的文件的示意性流程;
图9是示出根据本发明实施例的应用于终端设备的文件处理装置的示意性框图;
图10是示出根据本发明实施例的应用于终端设备的文件处理装置的示意性框图;
图11是示出根据本发明实施例的应用于服务器的文件处理装置的示意性框图;以及
图12是示意性地示出根据本发明实施例的文件处理方法的示意性处理结果的图。
具体实施方式
将参考附图描述根据本发明实施例的应用于终端设备和服务器的文件处理方法及装置,本发明绝不限于这里描述的实施例,而可以以其它方式实现,只要这样的方式采用差分块传送方式降低了网络数据流量即可。
接下来,将具体参考图1-3来描述根据本发明实施例的应用于终端设备的文件处理方法100,其具体用于在终端设备中修改文件并将修改后的文件上传到服务器中。
在图1中示出了根据本发明实施例的应用于终端设备的文件处理方法中生成差分块的流程图。在图2中示出了根据本发明实施例的应用于终端设备的文件处理方法中上传差分块的流程图。在图3中示出了根据本发明实施例的应用于终端设备的文件处理方法的修改后文件的保存过程的流程。
首先,根据本发明实施例的应用于终端设备的文件处理方法在步骤S101开始。
在步骤S110,在终端设备中,利用虚拟文件系统将当前保存在终端设备中的第一文件在文件系统层分块。下面,为了描述方便,将当前保存在终端设备中的第一文件称为第一文件的第一版本。因此,在步骤S110中,利用虚拟文件系统将第一文件的第一版本在文件系统层分块,以获得并保存第一数量的文件块。此后,基于第一数量的文件块来进行对第一文件的写操作,所述写操作可以包括修改、增加和删除第一文件的内容。
在步骤S120,在终端设备中,接收对所述第一文件的写操作。如前所述,在所述终端设备中保存的所述第一文件的第一版本的基础上,执行对所述第一文件的写操作。换句话说,在所述第一文件的所述第一数量的文件块的基础上,执行对所述第一文件的写操作。
例如,在执行对所述第一文件的写操作时,所述虚拟文件系统产生所述第一数量的文件块的备份,并且基于所产生的备份来执行所述写操作,而不执行对所保存的所述第一文件的所述第一数量的文件块执行所述写操作。
在步骤S130,在终端设备中,响应于对所述第一文件的写操作,生成第二数量的新文件块。
针对所述第一数量的文件块中每个,在所述写操作涉及该文件块的情况下,在该文件块的基础上生成其对应的新文件块,具体地:
在所述写操作对应于增加该文件块所涉及的内容的操作时,在该文件块的基础上生成至少一个对应的新文件块;
在所述写操作对应于修改该文件块所涉及的内容的操作时,在该文件块的基础上生成至少一个对应的新文件块;
在所述写操作对应于删除该文件块所涉及的部分内容的操作时,在该文件块的基础上生成一个对应的新文件块;以及
在所述写操作对应于删除该文件块所涉及的全部内容的操作时,生成一个与该文件块对应的空白的新文件块。
例如,以对第3文件块进行写操作为例来展开描述,
1)当删除第3文件块的内容时,相应地删除第3文件块中的数据以产生新的第3文件块;
2)当增加第3文件块的内容时,增加第3文件块中的数据以产生新的第3文件块,直至该第3文件块的数据量超出预定值,该预定值例如为文件块的最大数据量,并且接着产生新的第3’文件块并继续在其中存储所增加的内容数据直至该3’文件块的数据量超出预定值,然后接着可以产生新的第3”文件块并继续在其中存储所增加的内容数据,依此类推,在第3文件块的基础上可以产生任意数量的额外文件块,并且所产生的任意数量的额外文件块应在第4文件块之前;
3)当修改第3文件块的内容时,相应地删除第3文件块中要删除的数据并增加第3文件块中的数据,以产生新的第3文件块,并且根据需要也可以如2)所述地产生任意数量的额外文件块。
在此,第二数量的新文件块可以指代新修改和/或新产生的文件块,例如针对原第3文件块而言,新文件块可以包括新的第3文件块,以及如果新的第3’文件块、新的第3”文件块等存在的话,新文件块不仅可以包括新的第3文件块而且还可以包括新的第3’文件块、新的第3”文件块等。
另外,所述第一数量的文件块中未对其进行写操作的文件块可以不被看作新文件块。替代地,所述第一数量的文件块中未对其进行写操作的文件块可以被看作新文件块,只是其内容与原文件块完全相同而已。本发明不受第二数量的新文件块的范围的限制。
在S140,针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块。
在S150,接收对所述第一文件的保存操作。
替代地,可以在S140,接收对所述第一文件的保存操作,并且在S150,针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块。
例如,如图3所示,针对每个新文件块,可以确定该新文件块在所述第一数量的文件块中是否存在对应文件块,其中,在所述第一数量的文件块中一个文件块对应于至少一个新文件块的情况下,仅将所述至少一个新文件块中的第一个新文件块与所述文件块彼此对应。在该新文件块存在对应文件块的情况下,生成该新文件块与所述对应文件块的差分块;而在该新文件块不存在对应文件块的情况下,将该新文件块本身作为其对应的差分块。
仍以对第3文件块进行写操作为例来展开描述,
1)针对原第3文件块产生了一个新的第3文件块,该新的第3文件块对应于原第3文件块,即该新的第3文件块存在一个对应文件块。
2)针对原第3文件块产生了3个文件块:新的第3文件块、新的第3’文件块以及新的第3”文件块,仅将新的第3文件块与原第3文件块彼此对应,换句话说,新的第3’文件块以及新的第3”文件块不存在对应文件块。
在S160,保存所述第一文件的第二版本以及所述差分块,其中所述第一文件的第二版本包含了所述写操作的操作结果。
具体地,在所述第二数量的新文件块中不包括与所述第一数量的文件块中的文件块完全相同的文件块的情况下,所述第一文件的第二版本包含了所述第二数量的新文件块以及所述第一数量的文件块中未对其执行写操作的文件块。另一方面,在所述第二数量的新文件块中包括与所述第一数量的文件块中的文件块完全相同的文件块的情况下,所述第一文件的第二版本包含了所述第二数量的新文件块。
下面,为了描述简便,所述第二数量的新文件块仅指代不包括与所述第一数量的文件块中的文件块完全相同的文件块的情况。
因此,保存所述第一文件的第二版本可以包括:根据所述第二数量的新文件块和所述第一数量的文件块来生成所述第一文件的第二版本;以及保存该第二版本。
针对每个新文件块,在该新文件块存在对应文件块且所述新文件块不为空白新文件块的情况下,利用该新文件块替换所述对应文件块,即删除对应文件块并保存该新文件块;在该新文件块存在对应文件块且所述新文件块为空白新文件块的情况下,删除所述对应文件块;在该新文件块不存在对应文件块的情况下,保存该新文件块。此外,保存所述第一数量的文件块中所述写操作未涉及的那些文件块。
最后,根据本发明实施例的应用于终端设备的文件处理方法中生成差分块的处理在步骤S199结束。
在终端设备中修改第一文件并保存了第一文件的修改后版本(第二版本)之后,用户可能需要将第一文件的修改后版本上传到网盘服务器中。在此情况下,如图2所示的根据本发明实施例的应用于终端设备的文件处理方法中上传差分块的处理开始操作。
在S210,接收对所述第一文件的所述第二版本的上传操作。
在S220,响应于所述上传操作,将所保存的关于所述第一文件的所有差分块上传到服务器。
例如,所述终端设备可以将所述第一文件的所有差分块打包生成差分块集合,并将所生成的差分块集合上传到服务器。
在S230,响应于所述上传操作,删除所保存的关于所述第一文件的所有差分块。
由此,根据本发明实施例的应用于终端设备的文件处理方法中通过将第一文件划分为多个文件块、基于文件块进行第一文件的写操作、并且仅将所述写操作所产生的新文件块与原文件块的差分块上传到服务器,可以大大降低网络数据流量。
接下来,将参考图9来描述根据本发明实施例的应用于终端设备的文件处理装置900,该文件处理装置900执行如图1到3所示的根据本发明实施例的应用于终端设备的文件处理方法100。
如图9所示,根据本发明实施例的应用于终端设备的文件处理装置900包括:文件分块部件910、操作接收部件920、差分块生成部件930、以及文件保存部件940。
文件分块部件910将第一文件的第一版本在文件系统层分块,获得第一数量的文件块。具体地,文件分块部件910如上面描述的S110那样执行操作,在此不再对其操作进行赘述。
操作接收部件920接收在所述第一文件的所述第一版本基础上对所述第一文件的写操作。具体地,操作接收部件920如上面描述的S120那样执行操作,在此不再对其操作进行赘述。
差分块生成部件930响应于对所述第一文件的写操作,生成第二数量的新文件块,针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块。具体地,差分块生成部件930如上面描述的S130和S140那样执行操作,在此不再对其操作进行赘述。
此外,所述操作接收部件920还接收对所述第一文件的保存操作。
文件保存部件950响应于所述操作接收部件920接收到的对所述第一文件的保存操作,保存所述第一文件的第二版本以及所述差分块,其中所述第一文件的第二版本包含了所述写操作的操作结果。具体地,差分块生成部件950如上面描述的S160那样执行操作,在此不再对其操作进行赘述。
此外,所述操作接收部件940还接收对所述第一文件的所述第二版本的上传操作。
根据本发明实施例的应用于终端设备的文件处理装置900还可以包括:差分块上传部件950,其响应于所述上传操作,将所保存的关于所述第一文件的所有差分块上传到服务器。
接下来,将参考图4-6来描述根据本发明实施例的应用于服务器的文件处理方法400,在所述服务器保存了第一文件的第一版本,并且该第一版本包括了该第一文件的第一数量的文件块。所述文件处理方法400具体用于在服务器中接收从终端设备上传的第一文件的差分文件并在服务器中生成并保存第一文件的新版本(第二版本)。
在图4中示出了根据本发明实施例的应用于服务器的文件处理方法中接收差分块并生成第一文件新版本的流程图。在图5中示出了根据本发明实施例的应用于服务器的文件处理方法的下传(传送)差分块的流程图。在图6中示出了根据本发明实施例的应用于服务器的文件处理方法中修改后的文件的保存过程的流程。
首先,根据本发明实施例的应用于服务器的文件处理方法在步骤S401开始。
在S410,服务器从终端设备接收上传的关于所述第一文件的第二版本的差分块。
如前所述,终端设备可以将在所述终端设备中生成的所述第一文件的第二版本和第一版本的所有差分块打包生成差分块集合,并将所生成的差分块集合上传到服务器。相应地,在服务器中,接收上传的关于所述第一文件的第二版本的差分块集合,所述差分块集合包括至少一个差分块,并且分解所述差分块集合,以得到所述至少一个差分块。
在S420,将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本。
例如,如图6所示,对于每个差分块,确定该差分块在所述第一数量的文件块中是否存在对应文件块;在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块,并且在该新文件块为空白文件块的情况下,丢弃/删除该新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块。然后,利用所述第一数量的文件块中所接收的差分块未涉及的那些文件块、以及基于所接收的差分块所生成的新文件块,来生成所述第一文件的所述第二版本。
然后,在S430,保存所述第一文件的所述第二版本。而且,还可以保存所接收的差分块。例如,服务器可以保存从所述终端设备接收的所述第一文件的第二版本和第一版本的所有差分块的差分块集合。
最后,根据本发明实施例的应用于服务器的文件处理方法中接收差分块并生成第一文件新版本的处理在步骤S499结束。
在服务器中保存了第一文件的新版本(第二版本)之后,用户可能从另一终端设备发出请求同步到所述服务器中所保存的第一文件新版本的请求。在此情况下,如图5所示的根据本发明实施例的应用于服务器的文件处理方法中下传差分块的处理开始操作。
在S510,在服务器中,从所述另一终端设备,接收针对所述第一文件的第二版本的同步请求。
在S520,响应于所述同步请求,向所述另一终端设备,传送所保存的关于所述第一文件的第二版本的差分块。
由此,根据本发明实施例的应用于服务器的文件处理方法通过保存第一文件的第一版本的多个文件块、接收第一文件的新版本(第二版本)与旧版本(第一版本)之间的差分块、并且将第一版本的多个文件块与所接收的差分块合并,可以更新服务器中所保存的第一文件的版本,同时可以大大降低网络数据流量。
另一方面,根据本发明实施例的应用于服务器的文件处理方法中通过保存第一文件的新版本(第二版本)与旧版本(第一版本)之间的差分块、并且向保存了所述第一文件的第一版本的多个文件块的终端设备发送所述差分块,可以使得所述终端设备同步到所述第一文件的新版本,同时又可以大大降低网络数据流量。
接下来,将参考图11来描述根据本发明实施例的应用于服务器的文件处理装置1100,所述服务器保存了第一文件的第一版本并且包括在文件系统层分块的所述第一版本的多个文件块,该文件处理装置1100执行如图4到6所示的根据本发明实施例的应用于服务器的文件处理方法400。
如图11所示,根据本发明实施例的应用于服务器的文件处理装置1100包括:差分块接收部件1110、文件合并部件1120、以及文件保存部件1130。
差分块接收部件1110接收上传的关于所述第一文件的第二版本的差分块。具体地,差分块接收部件1110如上面描述的S410那样执行操作,在此不再对其操作进行赘述。
文件合并部件1120将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本。具体地,文件合并部件1120如上面描述的S420那样执行操作,在此不再对其操作进行赘述。
文件保存部件1130保存所述第一文件的所述第二版本以及所接收的差分块。具体地,文件保存部件1130如上面描述的S430那样执行操作,在此不再对其操作进行赘述。
此外,所述文件处理装置1100还可以包括:请求接收部件1140、以及差分块传送部件1150。
请求接收部件1140从终端设备接收针对所述第一文件的第二版本的同步请求。
差分块传送部件1150响应于所述同步请求,向所述终端设备传送所保存的关于所述第一文件的第二版本的差分块。
接下来,将参考图7-8来描述根据本发明实施例的应用于终端设备的文件处理方法700,在所述终端设备中保存了第一文件的第一版本,所述第一文件的第一版本在文件系统层被分块并且包括第一数量的文件块。所述文件处理方法700具体用于在终端设备中从服务器接收第一文件的差分文件并在终端设备中生成并保存第一文件的新版本(第二版本)。
在图7中示出了根据本发明实施例的应用于终端设备的文件处理方法的流程图。在图8中示出了根据本发明实施例的应用于终端设备的文件处理方法中保存修改后的文件的流程。
首先,根据本发明实施例的应用于终端设备的文件处理方法在步骤S701开始。
在S710,在终端设备中,接收针对所述第一文件的同步操作。
在S720,在终端设备中,向服务器发送针对所述第一文件的第二版本的同步请求,在所述服务器中保存了关于所述第一文件的第二版本的差分块。
在S730,从服务器接收关于所述第一文件的第二版本的差分块。
如前所述,在服务器中可以保存所述第一文件的第二版本和第一版本的所有差分块的差分块集合,所述差分块集合包括至少一个差分块。相应地,在S730中,可以从服务器接收所述差分块集合,并且可以分解所述差分块集合以得到所述至少一个差分块。
在S740,在终端设备中,将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本。
例如,如图8所示,对于每个差分块,确定该差分块在所述第一数量的文件块中是否存在对应文件块;在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块,并且在该新文件块为空白文件块的情况下,丢弃/删除该新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块。然后,利用所述第一数量的文件块中所接收的差分块未涉及的那些文件块、以及基于所接收的差分块所生成的新文件块,来生成所述第一文件的所述第二版本。
然后,在S750,保存所述第一文件的所述第二版本。根据需要,还可以保存所接收的差分块或差分块集合。
最后,根据本发明实施例的应用于终端设备的文件处理方法700在步骤S799结束。
由此,根据本发明实施例的应用于终端设备的文件处理方法700通过保存第一文件的第一版本的多个文件块、接收第一文件的新版本(第二版本)与旧版本(第一版本)之间的差分块、并且将第一版本的多个文件块与所接收的差分块合并,可以同步终端设备中所保存的第一文件的版本,同时可以大大降低网络数据流量。
接下来,将参考图10来描述根据本发明实施例的应用于终端设备的文件处理装置1000,在所述终端设备中保存了第一文件的第一版本,所述第一文件的第一版本在文件系统层被分块并且包括第一数量的文件块。该文件处理装置1100执行如图7到8所示的根据本发明实施例的应用于终端设备的文件处理方法700。
如图10所示,根据本发明实施例的应用于终端设备的文件处理装置1000包括:操作接收部件1010、请求发送部件1020、差分块接收部件1030、文件合并部件1040、以及文件保存部件1050。
操作接收部件1010接收针对所述第一文件的同步操作。
请求发送部件1020向服务器发送针对所述第一文件的第二版本的同步请求,在所述服务器中保存了关于所述第一文件的第二版本的差分块。
差分块接收部件1030从服务器接收关于所述第一文件的第二版本的差分块。具体地,差分块接收部件1030如上面描述的S730那样执行操作,在此不再对其操作进行赘述。
文件合并部件1040将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本。具体地,文件合并部件1040如上面描述的S740那样执行操作,在此不再对其操作进行赘述。
文件保存部件1050保存所述第一文件的所述第二版本。
在图12中示意性地示出根据本发明实施例的文件处理方法的示意性处理结果。
首先,在设备1中对文件A执行写操作,假设文件A的2个文件块被改变,并且生成了差分块A1和A2。
接下来,设备1将文件A的差分块A1和A2上传到云存储服务器。应注意,这里可以将差分块A1和A2打包为差分块集合,然后再上传。
然后,云存储服务器利用其保存的原文件A和所接收到的差分块A1和A2生成文件A的新版本,并且利用文件A的新版本替代原文件A,同时还保存所接收到的差分块A1和A2。应注意,这里可以保存差分块A1和A2的差分块集合。
接下来,云存储服务器从设备2接收到同步请求。
然后,云存储服务器将其中保存的差分块A1和A2传送到设备2,从而使得更新设备2处的文件A。
利用根据本发明实施例的应用于终端设备和服务器的文件处理方法和装置,通过在文件系统层将文件分块、以块为基础进行操作并在块发生改变时生成差分块、并且仅传送(设备1向服务器上传、设备2从服务器下载)差分块,可以大大降低服务器与终端设备之间的网络数据流量。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

Claims (17)

1.一种文件处理方法,应用于终端设备,包括:
将第一文件的第一版本在文件系统层分块,获得第一数量的文件块;
接收在所述第一文件的所述第一版本基础上对所述第一文件的写操作;
响应于对所述第一文件的写操作,生成第二数量的新文件块;
针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块,其中,在该新文件块存在对应文件块的情况下,生成该新文件块与所述对应文件块的差分块;以及在该新文件块不存在对应文件块的情况下,将该新文件块本身作为其对应的差分块;
接收对所述第一文件的保存操作;以及
响应于所述保存操作,保存所述第一文件的第二版本以及所述差分块,其中所述第一文件的第二版本包含了所述写操作的操作结果;
其中,生成第二数量的新文件块包括:针对所述第一数量的文件块中每个,在所述写操作涉及该文件块的情况下,在该文件块的基础上生成其对应的新文件块。
2.如权利要求1所述的文件处理方法,还包括:
接收对所述第一文件的所述第二版本的上传操作;以及
响应于所述上传操作,将所保存的关于所述第一文件的所有差分块上传到服务器。
3.如权利要求2所述的文件处理方法,还包括:
响应于所述上传操作,删除所保存的关于所述第一文件的所有差分块。
4.如权利要求1所述的文件处理方法,其中,针对所述第一数量的文件块中每个,在所述写操作涉及该文件块的情况下,在该文件块的基础上生成其对应的新文件块包括以下至少一项:
在所述写操作对应于增加该文件块所涉及的内容的操作时,在该文件块的基础上生成至少一个对应的新文件块;
在所述写操作对应于修改该文件块所涉及的内容的操作时,在该文件块的基础上生成至少一个对应的新文件块;
在所述写操作对应于删除该文件块所涉及的部分内容的操作时,在该文件块的基础上生成一个对应的新文件块;以及
在所述写操作对应于删除该文件块所涉及的全部内容的操作时,生成一个与该文件块对应的空白的新文件块。
5.如权利要求1所述的文件处理方法,其中,针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块、并生成该新文件块与所述对应文件块的差分块包括:
确定该新文件块在所述第一数量的文件块中是否存在对应文件块,其中,在所述第一数量的文件块中一个文件块对应于至少一个新文件块的情况下,仅将所述至少一个新文件块中的第一个新文件块与所述文件块彼此对应。
6.如权利要求5所述的文件处理方法,其中,保存所述第一文件的第二版本包括:
通过以下操作来生成所述第一文件的第二版本:
针对每个新文件块,在该新文件块存在对应文件块且所述新文件块不为空白新文件块的情况下,利用该新文件块替换所述对应文件块;在该新文件块存在对应文件块且所述新文件块为空白新文件块的情况下,删除所述对应文件块;在该新文件块不存在对应文件块的情况下,保存该新文件块;以及
保存所述第一数量的文件块中所述写操作未涉及的那些文件块,以及
保存该第二版本。
7.一种文件处理方法,应用于服务器,所述服务器保存了第一文件的第一版本,包括:
接收上传的关于所述第一文件的第二版本的差分块;
将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本,其中,在所述服务器保存的第一文件的第一版本在文件系统层被分块,在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块;以及
保存所述第一文件的所述第二版本;
其中,接收上传的关于所述第一文件的第二版本的差分块包括:接收上传的关于所述第一文件的第二版本的差分块集合,所述差分块集合包括至少一个差分块;以及分解所述差分块集合,以得到所述至少一个差分块。
8.如权利要求7所述的文件处理方法,还包括:
保存所接收的差分块。
9.如权利要求8所述的文件处理方法,还包括:
接收针对所述第一文件的第二版本的同步请求;以及
响应于所述同步请求,传送所保存的关于所述第一文件的第二版本的差分块。
10.如权利要求7所述的文件处理方法,其中,在所述服务器保存的第一文件的第一版本包括第一数量的文件块,
其中,将所接收的差分块与所述第一文件的第一版本合并还包括:
对于每个差分块,确定该差分块在所述第一数量的文件块中是否存在对应文件块;
在该新文件块为空白文件块的情况下,丢弃该新文件块;以及
利用所述第一数量的文件块中所接收的差分块未涉及的那些文件块、以及基于所接收的差分块所生成的新文件块,来生成所述第一文件的所述第二版本。
11.一种文件处理方法,应用于终端设备,在所述终端设备中保存了第一文件的第一版本,所述第一文件的第一版本在文件系统层被分块并且包括第一数量的文件块,包括:
接收针对所述第一文件的同步操作;
向服务器发送针对所述第一文件的第二版本的同步请求,在所述服务器中保存了关于所述第一文件的第二版本的差分块;
从服务器接收关于所述第一文件的第二版本的差分块;
将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本,其中,在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块;以及
保存所述第一文件的所述第二版本;
其中,从服务器接收关于所述第一文件的第二版本的差分块包括:接收关于所述第一文件的第二版本的差分块集合,所述差分块集合包括至少一个差分块;以及分解所述差分块集合,以得到所述至少一个差分块。
12.如权利要求11所述的文件处理方法,其中,将所述第一文件的第一版本与所接收的差分块合并包括:
对于每个差分块,确定该差分块在所述第一数量的文件块中是否存在对应文件块;
在该新文件块为空白文件块的情况下,丢弃该新文件块;以及
利用所述第一数量的文件块中所接收的差分块未涉及的那些文件块、以及基于所接收的差分块所生成的新文件块,来生成所述第一文件的所述第二版本。
13.一种文件处理装置,应用于终端设备,包括:
文件分块部件,其将第一文件的第一版本在文件系统层分块,获得第一数量的文件块;
操作接收部件,其接收在所述第一文件的所述第一版本基础上对所述第一文件的写操作;
差分块生成部件,其响应于对所述第一文件的写操作,生成第二数量的新文件块,针对每个新文件块,确定该新文件块在所述第一数量的文件块中的对应文件块,并生成该新文件块与所述对应文件块的差分块,其中,在该新文件块存在对应文件块的情况下,生成该新文件块与所述对应文件块的差分块;以及在该新文件块不存在对应文件块的情况下,将该新文件块本身作为其对应的差分块;以及
文件保存部件,其响应于所述操作接收部件接收到的对所述第一文件的保存操作,保存所述第一文件的第二版本以及所述差分块,其中所述第一文件的第二版本包含了所述写操作的操作结果;
其中,生成第二数量的新文件块包括:针对所述第一数量的文件块中每个,在所述写操作涉及该文件块的情况下,在该文件块的基础上生成其对应的新文件块。
14.如权利要求13所述的文件处理装置,其中,所述操作接收部件还接收对所述第一文件的所述第二版本的上传操作,并且所述文件处理装置还包括:
差分块上传部件,其响应于所述上传操作,将所保存的关于所述第一文件的所有差分块上传到服务器。
15.一种文件处理装置,应用于终端设备,在所述终端设备中保存了第一文件的第一版本,所述第一文件的第一版本在文件系统层被分块并且包括第一数量的文件块,包括:
操作接收部件,其接收针对所述第一文件的同步操作;
请求发送部件,其向服务器发送针对所述第一文件的第二版本的同步请求,在所述服务器中保存了关于所述第一文件的第二版本的差分块;
差分块接收部件,其从服务器接收关于所述第一文件的第二版本的差分块;
文件合并部件,其将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本,其中,在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块;以及
文件保存部件,其保存所述第一文件的所述第二版本;
其中,从服务器接收关于所述第一文件的第二版本的差分块包括:接收关于所述第一文件的第二版本的差分块集合,所述差分块集合包括至少一个差分块;以及分解所述差分块集合,以得到所述至少一个差分块。
16.一种文件处理装置,应用于服务器,所述服务器保存了第一文件的第一版本,包括:
差分块接收部件,其接收上传的关于所述第一文件的第二版本的差分块;
文件合并部件,其将所述第一文件的第一版本与所接收的差分块合并,以获得所述第一文件的第二版本,其中,在所述服务器保存的第一文件的第一版本在文件系统层被分块,在该差分块存在对应文件块的情况下,将该差分块与所述对应文件块合并以生成一个新文件块;以及在该差分块不存在对应文件块的情况下,将该差分块本身作为一个新文件块;以及
文件保存部件,其保存所述第一文件的所述第二版本以及所接收的差分块;
其中,接收上传的关于所述第一文件的第二版本的差分块包括:接收上传的关于所述第一文件的第二版本的差分块集合,所述差分块集合包括至少一个差分块;以及分解所述差分块集合,以得到所述至少一个差分块。
17.如权利要求16所述的文件处理装置,还包括:
请求接收部件,其接收针对所述第一文件的第二版本的同步请求;以及
差分块传送部件,其响应于所述同步请求,传送所保存的关于所述第一文件的第二版本的差分块。
CN201310020004.1A 2013-01-18 2013-01-18 文件处理方法及装置 Active CN103942208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310020004.1A CN103942208B (zh) 2013-01-18 2013-01-18 文件处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310020004.1A CN103942208B (zh) 2013-01-18 2013-01-18 文件处理方法及装置

Publications (2)

Publication Number Publication Date
CN103942208A CN103942208A (zh) 2014-07-23
CN103942208B true CN103942208B (zh) 2018-07-06

Family

ID=51189878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310020004.1A Active CN103942208B (zh) 2013-01-18 2013-01-18 文件处理方法及装置

Country Status (1)

Country Link
CN (1) CN103942208B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092780A (zh) * 2014-07-29 2014-10-08 中国联合网络通信集团有限公司 基于文件分块的文件修改方法、单文件同步方法及装置
CN105653544B (zh) * 2014-11-12 2019-06-25 联想(北京)有限公司 一种信息处理装置和方法
CN104967660B (zh) * 2015-05-11 2018-01-05 华中科技大学 一种面向多云架构的网络性能提升方法
CN114503075A (zh) * 2019-11-18 2022-05-13 深圳市欢太科技有限公司 一种文件处理方法、文件处理装置及终端设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917396A (zh) * 2010-06-25 2010-12-15 清华大学 一种网络文件系统中数据的实时去重和传输方法
CN102163308A (zh) * 2011-04-18 2011-08-24 中国科学院计算技术研究所 一种流程业务数据上传系统及上传方法
CN102739791A (zh) * 2012-06-28 2012-10-17 奇智软件(北京)有限公司 一种文件的下载、上传方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917396A (zh) * 2010-06-25 2010-12-15 清华大学 一种网络文件系统中数据的实时去重和传输方法
CN102163308A (zh) * 2011-04-18 2011-08-24 中国科学院计算技术研究所 一种流程业务数据上传系统及上传方法
CN102739791A (zh) * 2012-06-28 2012-10-17 奇智软件(北京)有限公司 一种文件的下载、上传方法及装置

Also Published As

Publication number Publication date
CN103942208A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN105069111B (zh) 云存储中基于相似性的数据块级数据去重方法
CN109739810A (zh) 文件同步方法、服务器、客户端及具有存储功能的装置
CN103942208B (zh) 文件处理方法及装置
CN103714123B (zh) 企业云存储分块对象重复数据删除和重组版本控制方法
CN103873451B (zh) 一种数据同步的方法、设备和系统
CN107169083A (zh) 公安卡口海量车辆数据存储与检索方法及装置、电子设备
CN104488248B (zh) 一种文件同步方法、服务器及终端
US10965732B2 (en) Streaming zip
CN103116615B (zh) 一种基于版本矢量的数据索引方法及服务器
CN107332918A (zh) 一种云端‑本地文件同步实现方法及系统
CN104391930A (zh) 分布式文件存储装置和方法
CN104133882A (zh) 一种基于hdfs的小文件处理方法
CN102857570A (zh) 文件的云同步方法及云存储服务器
CN102546836A (zh) 一种上传文件的方法、终端、服务器及系统
CN107426258A (zh) 一种镜像文件的上传和下载方法及装置
CN110110006A (zh) 数据管理方法及相关产品
CN103237046A (zh) 支持混合云存储应用的分布式文件系统及实现方法
CN104348859B (zh) 文件同步方法、装置、服务器、终端及系统
CN110399348A (zh) 文件重删方法、装置、系统及计算机可读存储介质
CN103778202A (zh) 一种企业电子文档管理服务端及系统
CN103605798A (zh) 一种直接操作云端存储文件的方法
CN102811260A (zh) 文件云同步系统及方法
CN101771717A (zh) 数据库同步方法及系统
CN109842652A (zh) 一种文件的上传方法、终端、云服务器和计算机存储介质
CN105354250A (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