一种电子设备及应用于电子设备的文件分块方法

文档序号:7987394阅读:88来源:国知局
一种电子设备及应用于电子设备的文件分块方法
【专利摘要】本发明公开了一种电子设备及应用于电子设备的文件分块方法,所述方法应用于一电子设备中,所述方法包括:接收文件修改操作;根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围;获得一第一文件分块指令;根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果;获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。利用分块历史结果,在文件修改后,能够获得文件修改操作对应的文件分块范围,只针对文件分块范围内的数据进行重新分块,减少了文件分块的时间,提高了文件分块的效率,减少了文件同步时传输的数据量。
【专利说明】一种电子设备及应用于电子设备的文件分块方法
【技术领域】
[0001]本发明涉及通信【技术领域】,具体涉及一种电子设备及应用于电子设备的文件分块方法。
【背景技术】
[0002]移动设备与云端服务器之间交互过程中可能产生重复数据的传输,这很大程度上降低了数据同步的效率。例如:某一个文件中用户可能只更改了其中的几个字节,如果同步算法仍然将整个文件完全上传到云端服务器中则会导致无谓的流量开销和时间开销。因此,需要采用只上传文件差分部分的方式进行文件同步。
[0003]目前的差分算法都需要事先对整个文件进行分块,在现有技术中一般采用基于内容分块的可变长度切分方法。但是,这种方法需要对整个文件进行扫描以完成文件分块,即使修改范围很小,每次文件修改后都需要对整个文件重新扫描进行文件分块,在得到文件分块结果后,再传输文件差分部分进行文件同步。在文件修改后对文件整体进行扫描分块,一方面在文件分块时对未发生变化的部分重复进行分块操作,会造成耗时较长、效率低下的问题,另一方面,也可能造成文件分块结果变化较大,增加文件同步时差分部分传输的数据量。

【发明内容】

[0004]有鉴于此,本发明的主要目的是提供一种电子设备及应用于电子设备的文件分块方法,以解决现有技术进行文件分块时效率低下、文件同步时传输数据量增加的问题。
[0005]为解决上述问题,本发明提供的技术方案如下:
[0006]一种文件分块方法,所述方法应用于一电子设备中,所述方法包括:
[0007]接收文件修改操作;
[0008]根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围;
[0009]获得一第一文件分块指令;
[0010]根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果;
[0011]获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。
[0012]优选的,在所述接收文件修改操作之前,所述方法还包括:
[0013]判断是否存在第二分块结果,产生第一判断结果;
[0014]当所述第一判断结果表示存在第二分块结果时,将第二分块结果变换为第一分块结果;
[0015]当所述第一判断结果表示不存在第二分块结果时,获得一第二文件分块指令后,根据所述第二文件分块指令,对文件的全部数据进行第二分块操作,产生第一分块结果。
[0016]优选的,所述根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围,包括:
[0017]根据所述文件修改操作,获得所述文件修改操作的起始地址和终止地址;
[0018]根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围。
[0019]优选的,当所述文件修改操作为插入操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,包括:
[0020]判断所述插入操作的起始地址和终止地址的差值是否小于第一阈值,产生第二判断结果;
[0021]当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值小于第一阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块;
[0022]当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第一阈值时,判断所述插入操作的起始地址和终止地址的差值是否小于第二阈值,产生第三判断结果;
[0023]当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值小于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块以及与所述插入操作的终止地址所在文件块相邻的文件块;
[0024]当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块。
[0025]优选的,当所述文件修改操作为删除操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,包括:
[0026]判断所述删除操作的起始地址和终止地址的差值是否小于第三阈值,产生第四判断结果;
[0027]当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值小于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块以及所述删除操作的终止地址所在文件块;
[0028]当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值大于或等于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块、所述删除操作的终止地址所在文件块以及与所述删除操作的终止地址所在文件块相邻的文件块。
[0029]优选的,当所述文件修改操作为替换操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,包括:
[0030]根据所述替换操作的起始地址和终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述替换操作的起始地址所在文件块、所述替换操作的终止地址所在文件块以及所述替换操作的起始地址所在文件块与所述替换操作的终止地址所在文件块之间的文件块。[0031]优选的,在所述获得所述文件修改操作对应的文件分块范围之后,所述方法还包括:
[0032]记录并保存所述文件分块范围。
[0033]优选的,所述获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块,包括:
[0034]根据所述第二分块结果,获得各文件块的指纹值;
[0035]获得一文件同步指令时,传输所述指纹值发生改变的文件块。
[0036]本发明还提供一种电子设备,其特征在于,所述电子设备包括:
[0037]第一接收单元,用于接收文件修改操作;
[0038]第一获得单元,用于根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围;
[0039]第二获得单元,用于获得一第一文件分块指令;
[0040]第一分块单元,用于根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果;
[0041]文件同步单元,用于获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。
[0042]优选的,所述电子设备还包括:
[0043]第一判断单元,用于判断是否存在第二分块结果,产生第一判断结果;
[0044]第一变换单元,用于当所述第一判断结果表示存在第二分块结果时,将第二分块结果变换为第一分块结果;
[0045]第二分块单元,应用当所述第一判断结果表示不存在第二分块结果时,获得一第二文件分块指令后,根据所述第二文件分块指令,对文件的全部数据进行第二分块操作,产生第一分块结果。
[0046]优选的,所述第一获得单元包括:
[0047]第一获得子单元,用于根据所述文件修改操作,获得所述文件修改操作的起始地址和终止地址;
[0048]第二获得子单元,根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围。
[0049]优选的,当所述文件修改操作为插入操作时,所述第二获得子单元包括:
[0050]第一判断子单元,用于判断所述插入操作的起始地址和终止地址的差值是否小于
第一阈值,产生第二判断结果;
[0051]第三获得子单元,当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值小于第一阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块;
[0052]第二判断子单元,用于当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第一阈值时,判断所述插入操作的起始地址和终止地址的差值是否小于第二阈值,产生第三判断结果;
[0053]第四获得子单元,用于当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值小于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块以及与所述插入操作的终止地址所在文件块相邻的文件块;
[0054]第五获得子单元,用于当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块。
[0055]优选的,当所述文件修改操作为删除操作时,所述第二获得子单元包括:
[0056]第三判断子单元,用于判断所述删除操作的起始地址和终止地址的差值是否小于第三阈值,产生第四判断结果;
[0057]第六获得子单元,用于当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值小于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块以及所述删除操作的终止地址所在文件块;
[0058]第七获得子单元,用于当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值大于或等于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块、所述删除操作的终止地址所在文件块以及与所述删除操作的终止地址所在文件块相邻的文件块。
[0059]优选的,当所述文件修改操作为替换操作时,所述第二获得子单元具体用于:
[0060]根据所述替换操作的起始地址和终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述替换操作的起始地址所在文件块、所述替换操作的终止地址所在文件块以及所述替换操作的起始地址所在文件块与所述替换操作的终止地址所在文件块之间的文件块。
[0061]优选的,所述电子设备还包括:
[0062]保存单元,用于记录并保存所述文件分块范围。
[0063]优选的,所述文件同步单元包括:
[0064]第八获得子单元,用于根据所述第二分块结果,获得各文件块的指纹值;
[0065]文件传输子单元,用于获得一文件同步指令时,传输所述指纹值发生改变的文件块。
[0066]由此可见,本发明具有如下有益效果:
[0067]本发明利用分块历史结果,在文件修改后,能够获得文件修改操作对应的文件分块范围,即定位文件修改所涉及的文件块,只针对文件分块范围内的数据进行重新分块,减少了文件分块的时间,提高了文件分块的效率。同时,只对文件分块范围内的数据进行重新分块,不会影响文件其他部分的分块历史结果,在需要进行文件同步时,只需根据新的分块结果传输发生变化的文件块,减少了文件同步时传输的数据量。
【专利附图】

【附图说明】
[0068]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0069]图1为本发明文件分块方法实施例1的流程图;
[0070]图2为本发明文件分块方法实施例2的流程图;
[0071]图3为本发明文件分块方法实施例3的流程图;
[0072]图4为本发明文件分块方法在插入操作第I种情况时的示意图;
[0073]图5为本发明文件分块方法在插入操作第2种情况时的示意图;
[0074]图6为本发明文件分块方法在插入操作第3种情况时的示意图;
[0075]图7为本发明文件分块方法实施例4的流程图;
[0076]图8为本发明文件分块方法在删除操作第I种情况时的示意图;
[0077]图9为本发明文件分块方法在删除操作第2种情况时的示意图;
[0078]图10为本发明电子设备实施例1的示意图;
[0079]图11为本发明电子设备实施例2的示意图;
[0080]图12为本发明电子设备实施例3的示意图;
[0081]图13为本发明电子设备实施例4的示意图;
[0082]图14为本发明电子设备实施例5的示意图;
[0083]图15为本发明电子设备实施例6的示意图。
【具体实施方式】
[0084]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明实施例作进一步详细的说明。
[0085]本发明提供一种电子设备及应用于电子设备的文件分块方法,
[0086]参见图1所示,为本发明文件分块方法实施例1的流程图,所述方法应用于一电子设备中,所述方法包括:
[0087]步骤101:接收文件修改操作。
[0088]用户在打开一已有文件或者创建一新文件后,即可对文件进行修改操作,对文件的修改具体的可以包括插入操作、删除操作以及删除插入同时进行的替换操作。电子设备作为用户直接操作的设备,可以实时监控并接收文件修改操作。
[0089]在实际应用中,可以通过在文件操作时调用文件访问接口的方式,例如调用基于Iinux标准文件访问操作接口(read\write\open\close等),以方便接收并记录文件修改操作。
[0090]步骤102:根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围。
[0091]第一分块结果可以认为是历史分块结果,电子设备中可以记录历史分块结果,可以具体包括记录上一次一个文件被分为若干个文件块后与原有文件的对应关系。
[0092]历史分块结果可以由一个描述文件分块的映射表表不,该文件分块映射表可以包括:文件块ID、文件块大小、文件块起始地址以及文件块在文件内部的序号。
[0093]在文件进行修改时,可以通过调用文件接口获得文件修改位置的起始地址以及终止地址,根据文件分块映射表中文件块与修改地址之间的对应关系获得文件修改的部分基于历史分块结果位于哪一个文件块上。
[0094]在获得文件修改的位置后,可以根据文件修改操作中的插入操作、删除操作或替换操作不同的特点,获得文件修改操作对应的文件分块范围,文件修改操作对应的文件分块范围即需要重新进行文件分块的范围。
[0095]需要注意的是,除去对每一个文件块都进行了修改的情况下,文件修改操作对应的文件分块范围是小于整个文件范围的。
[0096]步骤103:获得一第一文件分块指令。
[0097]获得第一文件分块指令具体方式可以为:在文件修改完成后,用户保存文件并关闭文件后,即是向电子设备输入第一文件分块指令。
[0098]步骤104:根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果。
[0099]可以采用⑶C (content-defined chunking,基于内容的分块)算法对文件分块范围内的数据进行第一分块操作,CDC算法是一种变长分块算法,基于文件内容进行文件块切分,文件分块后获得的文件块大小是可变化的。CDC算法可以应用数据指纹(如Rabin指纹)将文件分割成长度大小不等的文件块。算法执行过程中,利用一个固定大小的滑动窗口对文件数据计算数据指纹。并与一个预设值进行比较,如果相等则匹配成功,将该窗口位置作为一个文件分块的切分位置。
[0100]采用CDC算法对文件分块范围内的数据进行第一分块操作,产生第二分块结果,第二分块结果可以认为是本次分块结果。只对文件修改对应的文件分块范围内的数据重新进行分块操作,而不需对所有文件范围内的数据进行重新分块划分。但需要注意的是,还需要修改描述文件分块的映射表内的各项信息,包括文件块ID、文件块在文件内部的序号等。
[0101]步骤105:获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。
[0102]在该步骤中,可以根据所述第二分块结果,获得各文件块的指纹值;获得一文件同步指令时,传输所述指纹值发生改变的文件块。
[0103]各文件块的指纹值与CDC算法中的数据指纹不同,可以用各文件块的指纹值代表各文件块,各文件块通过不同的指纹值进行区分。
[0104]在获得文件同步指令时,通过各文件块的指纹值进行判断,只传输发生改变的文件块,不必传输其他未发生改变的文件块。
[0105]这样,本发明可以利用分块历史结果,在文件修改后,能够获得文件修改操作对应的文件分块范围,即定位文件修改所涉及的文件块,只针对文件分块范围内的数据进行重新分块,减少了文件分块的时间,提高了文件分块的效率。同时,只对文件分块范围内的数据进行重新分块,不会影响文件其他部分的分块历史结果,在需要进行文件同步时,只需根据新的分块结果传输发生变化的文件块,减少了文件同步时传输的数据量。
[0106]参见图2所示,为本发明文件分块方法实施例2的流程图,可以包括以下步骤:
[0107]步骤201:判断是否存在第二分块结果,产生第一判断结果;
[0108]步骤202:当所述第一判断结果表示存在第二分块结果时,将第二分块结果变换为弟一分块结果;
[0109]步骤203:当所述第一判断结果表示不存在第二分块结果时,获得一第二文件分块指令后,根据所述第二文件分块指令,对文件的全部数据进行第二分块操作,产生第一分块结果。[0110]如果用户创建一新文件,保存文件并关闭文件后,由于没有历史分块记录,因此,需要对整个文件进行扫描,即对文件的全部数据进行第二分块操作,产生第一分块结果。对文件的全部数据进行第二分块操作同样也可以采用CD C算法,第一分块操作与第二分块操作不同,不同在于文件分块范围不同,第一分块操作是对文件修改操作对应的文件分块范围内的数据进行分块操作,而第二分块操作则是对整个文件范围内的全部数据进行分块操作。而除去对每一个文件块都进行了修改的情况下,文件修改操作对应的文件分块范围是小于整个文件范围的。
[0111]另外,如果用户打开的是一已有文件,在接收文件修改操作前,可以先将上一次分块产生的分块结果作为历史分块结果,也就是将第二分块结果变换为第一分块结果。
[0112]步骤204:接收文件修改操作;
[0113]步骤205:根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围;
[0114]步骤206:获得一第一文件分块指令。
[0115]步骤207:根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果。
[0116]步骤208:获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。
[0117]步骤204-步骤208与步骤101-步骤105相同,此处不再赘述。
[0118]下面还可以结合具体实例进一步对根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围进行解释说明。
[0119]首先,根据所述文件修改操作,获得所述文件修改操作的起始地址和终止地址;
[0120]之后,根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围。
[0121]具体的,根据文件操作类型的不同,下面分别针对对文件进行插入操作、删除操作以及替换操作时,如何获得所述文件修改操作对应的文件分块范围进行说明。
[0122]参见图3所示,为本发明文件分块方法实施例3的流程图,当所述文件修改操作为插入操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,可以包括以下步骤:
[0123]步骤301:判断所述插入操作的起始地址和终止地址的差值是否小于第一阈值,
产生第二判断结果;
[0124]步骤302:当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值小于第一阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块;
[0125]步骤303:当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第一阈值时,判断所述插入操作的起始地址和终止地址的差值是否小于第二阈值,产生第三判断结果;
[0126]步骤304:当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值小于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块以及与所述插入操作的终止地址所在文件块相邻的文件块;
[0127]步骤305:当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块。
[0128]当所述文件修改操作为插入操作时,可以分为三种情况,插入的数据很少,即插入操作的起始地址和终止地址的差值小于第一阈值时;插入的数据很多,即插入操作的起始地址和终止地址的差值大于或等于第二阈值时;或者以上两种情况折中的情况,即插入操作的起始地址和终止地址的差值大于或等于第一阈值且小于第二阈值时。
[0129]参见图4所示,当插入的数据内容很少时,文件修改操作对应的文件分块范围可以为插入操作的起始地址所在文件块,只对文件修改操作对应的文件分块范围即插入操作的起始地址所在文件块进行第一分块操作,产生第二分块结果,在需要时只传输发生改变的文件块。
[0130]参见图5所示,当插入的数据内容很多时,同样文件修改操作对应的文件分块范围也可以为插入操作的起始地址所在文件块,只对文件修改操作对应的文件分块范围即插入操作的起始地址所在文件块进行第一分块操作,产生第二分块结果,在需要时只传输发生改变的文件块。
[0131]参见图6所示,而当处于以上两种情况之间时,则文件修改操作对应的文件分块范围可以为插入操作的起始地址所在文件块以及其之后相邻的文件块,只对文件修改操作对应的文件分块范围即插入操作的起始地址所在文件块以及之后相邻的文件块进行第一分块操作,产生第二分块结果,在需要时只传输发生改变的文件块。
[0132]这样可以保证对文件进行插入操作后,需要重新分块的文件块即文件修改操作对应的文件分块范围尽可能减少,也能够保证尽量提高分块的效率以及减少文件同步时传输的数据量。
[0133]参见图7所示,为本发明文件分块方法实施例4的流程图,当所述文件修改操作为删除操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,可以包括以下步骤:
[0134]步骤401:判断所述删除操作的起始地址和终止地址的差值是否小于第三阈值,产生第四判断结果;
[0135]步骤402:当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值小于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块以及所述删除操作的终止地址所在文件块;
[0136]步骤403:当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值大于或等于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块、所述删除操作的终止地址所在文件块以及与所述删除操作的终止地址所在文件块相邻的文件块。
[0137]当所述文件修改操作为删除操作时,可以分为两种情况,删除操作的起始地址和终止地址的差值小于第三阈值时以及删除操作的起始地址和终止地址的差值大于或等于第三阈值时。[0138]当删除操作的起始地址和终止地址的差值小于第三阈值时,则文件分块范围为所述删除操作的起始地址所在文件块以及所述删除操作的终止地址所在文件块,参见图8所示,若删除操作的起始地址与终止地址在同一个文件块,则文件分块范围可以为该删除操作所在的文件块,只对文件修改操作对应的文件分块范围即删除操作所在的文件块进行第一分块操作,产生第二分块结果,在需要时只传输发生改变的文件块;若删除操作的起始地址与终止地址在不同文件块,图8中未示出,则文件分块范围可以为删除操作完成后的删除操作的起始地址与终止地址分别所在的文件块。
[0139]参见图9所示,当删除操作的起始地址和终止地址的差值大于或等于第三阈值时,则文件分块范围为删除操作的起始地址所在文件块、删除操作的终止地址所在文件块以及与删除操作的终止地址所在文件块之后相邻的文件块,只对文件修改操作对应的文件分块范围进行第一分块操作,产生第二分块结果,在需要时只传输发生改变的文件块。
[0140]这样可以保证对文件进行删除操作后,需要重新分块的文件块即文件修改操作对应的文件分块范围尽可能减少,也能够保证尽量提高分块的效率以及减少文件同步时传输的数据量。
[0141]而当所述文件修改操作为替换操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,可以具体为:
[0142]根据所述替换操作的起始地址和终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述替换操作的起始地址所在文件块、所述替换操作的终止地址所在文件块以及所述替换操作的起始地址所在文件块与所述替换操作的终止地址所在文件块之间的文件块。
[0143]文件修改操作为替换操作时,确定文件分块范围较为简单,若替换操作的起始地址与终止地址在同一文件块,则文件分块范围为该替换操作所在文件块,若替换操作的起始地址与终止地址处于相邻文件块,则文件分块范围为替换操作的起始地址与终止地址分别所处的文件块,若替换操作的起始地址与终止地址在不相邻的文件块,则文件分块范围为,替换操作的起始地址与终止地址分别所处的文件块以及之间的文件块。
[0144]同样的,这样可以保证对文件进行替换操作后,需要重新分块的文件块即文件修改操作对应的文件分块范围尽可能减少,也能够保证尽量提高分块的效率以及减少文件同步时传输的数据量。
[0145]如果在一次文件打开与关闭之间进行了多处文件修改,例如同时在不同的文件块间进行了插入操作、删除操作以及替换操作,则需要记录多处修改所位于的文件块位置,可以采用置标志位的方式标记所修改的文件块,并基于历史分块记录,分别获得这些文件修改操作对应的文件分块范围,记录并保存这些文件分块范围,可以保存在本地数据库中。
[0146]相应的,本发明还提供一种电子设备,参见图10所示,为本发明电子设备实施例1的示意图,所述电子设备可以包括:
[0147]第一接收单元501,用于接收文件修改操作;
[0148]第一获得单元502,用于根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围;
[0149]第二获得单元503,用于获得一第一文件分块指令;
[0150]第一分块单元504,用于根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果;
[0151]文件同步单元505,用于获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。
[0152]参见图11所示,为本发明电子设备实施例2的示意图,所述电子设备还可以包括:
[0153]第一判断单元601,用于判断是否存在第二分块结果,产生第一判断结果;
[0154]第一变换单元602,用于当所述第一判断结果表示存在第二分块结果时,将第二分块结果变换为第一分块结果;
[0155]第二分块单元603,应用当所述第一判断结果表示不存在第二分块结果时,获得一第二文件分块指令后,根据所述第二文件分块指令,对文件的全部数据进行第二分块操作,产生第一分块结果。
[0156]参见图12所示,为本发明电子设备实施例3的示意图,所述第一获得单元502可以包括:
[0157]第一获得子单元701,用于根据所述文件修改操作,获得所述文件修改操作的起始地址和终止地址;
[0158]第二获得子单元702,根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围。
[0159]参见图13所示,为本发明电子设备实施例4的示意图,当所述文件修改操作为插入操作时,所述第二获得子单元702可以包括:
[0160]第一判断子单元801,用于判断所述插入操作的起始地址和终止地址的差值是否
小于第一阈值,产生第二判断结果;
[0161]第三获得子单元802,当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值小于第一阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块;
[0162]第二判断子单元803,用于当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第一阈值时,判断所述插入操作的起始地址和终止地址的差值是否小于第二阈值,产生第三判断结果;
[0163]第四获得子单元804,用于当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值小于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块以及与所述插入操作的终止地址所在文件块相邻的文件块;
[0164]第五获得子单元805,用于当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块。
[0165]参见图14所示,为本发明电子设备实施例5的示意图,当所述文件修改操作为删除操作时,所述第二获得子单元702可以包括:
[0166]第三判断子单元901,用于判断所述删除操作的起始地址和终止地址的差值是否小于第三阈值,产生第四判断结果;
[0167]第六获得子单元902,用于当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值小于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块以及所述删除操作的终止地址所在文件块;
[0168]第七获得子单元903,用于当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值大于或等于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块、所述删除操作的终止地址所在文件块以及与所述删除操作的终止地址所在文件块相邻的文件块。
[0169]当所述文件修改操作为替换操作时,所述第二获得子单元702可以具体用于:
[0170]根据所述替换操作的起始地址和终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述替换操作的起始地址所在文件块、所述替换操作的终止地址所在文件块以及所述替换操作的起始地址所在文件块与所述替换操作的终止地址所在文件块之间的文件块。
[0171]另外,所述电子设备还可以包括:保存单元,用于记录并保存所述文件分块范围。
[0172]参见图15所示,为本发明电子设备实施例6的示意图,所述文件同步单元505可以包括:
[0173]第八获得子单元1001,用于根据所述第二分块结果,获得各文件块的指纹值;
[0174]文件传输子单元1002,用于获得一文件同步指令时,传输所述指纹值发生改变的文件块。
[0175]这样,本发明利用分块历史结果,在文件修改后,能够获得文件修改操作对应的文件分块范围,即定位文件修改所涉及的文件`块,只针对文件分块范围内的数据进行重新分块,减少了文件分块的时间,提高了文件分块的效率。同时,只对文件分块范围内的数据进行重新分块,不会影响文件其他部分的分块历史结果,在需要进行文件同步时,只需根据新的分块结果传输发生变化的文件块,减少了文件同步时传输的数据量。
[0176]需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0177]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0178]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。[0179] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种文件分块方法,其特征在于,所述方法应用于一电子设备中,所述方法包括: 接收文件修改操作; 根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围; 获得一第一文件分块指令; 根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果; 获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。
2.根据权利要求1所述的方法,其特征在于,在所述接收文件修改操作之前,所述方法还包括: 判断是否存在第二分块结果,产生第一判断结果; 当所述第一判断结果表示存在第二分块结果时,将第二分块结果变换为第一分块结果; 当所述第一判断结果表示不存在第二分块结果时,获得一第二文件分块指令后,根据所述第二文件分块指令,对文件的全部数据进行第二分块操作,产生第一分块结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围,包括: 根据所述文件修改操作,获得所述文件修改操作的起始地址和终止地址;` 根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围。
4.根据权利要求3所述的方法,其特征在于,当所述文件修改操作为插入操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,包括: 判断所述插入操作的起始地址和终止地址的差值是否小于第一阈值,产生第二判断结果; 当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值小于第一阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块; 当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第一阈值时,判断所述插入操作的起始地址和终止地址的差值是否小于第二阈值,产生第三判断结果; 当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值小于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块以及与所述插入操作的终止地址所在文件块相邻的文件块; 当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块。
5.根据权利要求3所述的方法,其特征在于,当所述文件修改操作为删除操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,包括: 判断所述删除操作的起始地址和终止地址的差值是否小于第三阈值,产生第四判断结果; 当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值小于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块以及所述删除操作的终止地址所在文件块;当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值大于或等于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块、所述删除操作的终止地址所在文件块以及与所述删除操作的终止地址所在文件块相邻的文件块。
6.根据权利要求3所述的方法,其特征在于,当所述文件修改操作为替换操作时,所述根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,包括: 根据所述替换操作的起始地址和终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述替换操作的起始地址所在文件块、所述替换操作的终止地址所在文件块以及所述替换操作的起始地址所在文件块与所述替换操作的终止地址所在文件块之间的文件块。
7.根据权利要求4-6任一项所述的方法,其特征在于,在所述获得所述文件修改操作对应的文件分块范围之后,所述方法还包括: 记录并保存所述文件分块范围。`
8.根据权利要求1所述的方法,其特征在于,所述获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块,包括: 根据所述第二分块结果,获得各文件块的指纹值; 获得一文件同步指令时,传输所述指纹值发生改变的文件块。
9.一种电子设备,其特征在于,所述电子设备包括: 第一接收单元,用于接收文件修改操作; 第一获得单元,用于根据所述文件修改操作与第一分块结果,获得所述文件修改操作对应的文件分块范围; 第二获得单元,用于获得一第一文件分块指令; 第一分块单元,用于根据所述第一文件分块指令,对所述文件分块范围内的数据进行第一分块操作,产生第二分块结果; 文件同步单元,用于获得一文件同步指令时,根据所述第二分块结果,传输发生改变的文件块。
10.根据权利要求9所述的电子设备,其特征在于,所述电子设备还包括: 第一判断单元,用于判断是否存在第二分块结果,产生第一判断结果; 第一变换单元,用于当所述第一判断结果表示存在第二分块结果时,将第二分块结果变换为第一分块结果; 第二分块单元,应用当所述第一判断结果表示不存在第二分块结果时,获得一第二文件分块指令后,根据所述第二文件分块指令,对文件的全部数据进行第二分块操作,产生第一分块结果。
11.根据权利要求10所述的电子设备,其特征在于,所述第一获得单元包括: 第一获得子单元,用于根据所述文件修改操作,获得所述文件修改操作的起始地址和终止地址; 第二获得子单元,根据所述起始地址和所述终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围。
12.根据权利要求11所述的电子设备,其特征在于,当所述文件修改操作为插入操作时,所述第二获得子单元包括: 第一判断子单元,用于判断所述插入操作的起始地址和终止地址的差值是否小于第一阈值,产生第二判断结果; 第三获得子单元,当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值小于第一阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块; 第二判断子单元,用于当所述第二判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第 一阈值时,判断所述插入操作的起始地址和终止地址的差值是否小于第二阈值,产生第三判断结果; 第四获得子单元,用于当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值小于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块以及与所述插入操作的终止地址所在文件块相邻的文件块; 第五获得子单元,用于当所述第三判断结果表示所述插入操作的起始地址和终止地址的差值大于或等于第二阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述插入操作的起始地址所在文件块。
13.根据权利要求11所述的电子设备,其特征在于,当所述文件修改操作为删除操作时,所述第二获得子单元,包括: 第三判断子单元,用于判断所述删除操作的起始地址和终止地址的差值是否小于第三阈值,产生第四判断结果; 第六获得子单元,用于当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值小于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块以及所述删除操作的终止地址所在文件块; 第七获得子单元,用于当所述第四判断结果表示所述删除操作的起始地址和终止地址的差值大于或等于第三阈值时,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述删除操作的起始地址所在文件块、所述删除操作的终止地址所在文件块以及与所述删除操作的终止地址所在文件块相邻的文件块。
14.根据权利要求11所述的电子设备,其特征在于,当所述文件修改操作为替换操作时,所述第二获得子单元具体用于: 根据所述替换操作的起始地址和终止地址,与第一分块结果进行比较,获得所述文件修改操作对应的文件分块范围,所述文件分块范围为所述替换操作的起始地址所在文件块、所述替换操作的终止地址所在文件块以及所述替换操作的起始地址所在文件块与所述替换操作的终止地址所在文件块之间的文件块。
15.根据权利要求12-14所述的电子设备,其特征在于,所述电子设备还包括: 保存单元,用于记录并保存所述文件分块范围。
16.根据权利要求9所述的电子设备,其特征在于,所述文件同步单元包括: 第八获得子单元,用于根据所述第二分块结果,获得各文件块的指纹值; 文件传 输子单元,用于获得一文件同步指令时,传输所述指纹值发生改变的文件块。
【文档编号】H04L29/08GK103873522SQ201210546290
【公开日】2014年6月18日 申请日期:2012年12月14日 优先权日:2012年12月14日
【发明者】邓宁 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1