文件备份方法和装置制造方法

文档序号:6625110阅读:281来源:国知局
文件备份方法和装置制造方法
【专利摘要】本公开提出一种文件备份方法,所述方法包括:根据预设算法确定文件的散列值;在本地备份数据库中查询确定出的散列值;当查询到所述本地备份数据库中已记录了所述散列值,不再向备份服务器备份所述文件。本公开可以避免将不同文件路径名中的相同文件重复备份。
【专利说明】文件备份方法和装置

【技术领域】
[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] 通告模块,用于在查询到所述本地备份数据库中已记录了所述散列值,则向所述 终端通告该散列值对应的文件已上传成功。
[0070] 可选的,所述装置还包括:
[0071] 第二确定模块,用于根据预设算法确定终端上传的文件的散列值;
[0072] 第二保存模块,用于在所述文件在本地备份成功后,将确定出的散列值在本地备 份数据库中进行保存。
[0073] 可选的,所述第二确定模块包括:
[0074] 第二判断子模块,用于判断所述文件的大小是否大于或等于预设阈值;
[0075] 第三确定子模块,用于在判断出所述文件的大小大于或等于所述预设阈值时,在 所述文件中提取若干个文件片段,针对所述若干个文件片段进行散列值确定,得出所述文 件的散列值;
[0076] 第四确定子模块,用于在判断出所述文件的大小小于所述预设阈值时,对所述文 件进行散列值确定得出散列值。
[0077] 可选的,所述第三确定子模块包括:
[0078] 第二提取子模块,用于在所述文件中均匀提取若干个预设大小的文件片段;其中, 所述预设大小的文件片段占用的字节数小于所述预设阈值。
[0079] 根据本公开实施例的第五方面,提供一种文件备份装置,包括:
[0080] 处理器;
[0081] 用于存储处理器可执行指令的存储器;
[0082] 其中,所述处理器被配置为:
[0083] 根据预设算法确定文件的散列值;
[0084] 在本地备份数据库中查询确定出的散列值;
[0085] 当查询到所述本地备份数据库中已记录了所述散列值,不再向备份服务器备份所 述文件。
[0086] 根据本公开实施例的第六方面,提供一种文件备份装置,包括:
[0087] 处理器;
[0088] 用于存储处理器可执行指令的存储器;
[0089] 其中,所述处理器被配置为:
[0090] 接收终端上传的查询请求,所述查询请求中携带散列值;
[0091] 在本地备份数据库中查询所述散列值;
[0092] 当查询到所述本地备份数据库中已记录了所述散列值,则向所述终端通告该散列 值对应的文件已上传成功。
[0093] 本公开的实施例提供的技术方案可以包括以下有益效果:
[0094] 本公开的以上实施例中,通过预设算法对所述文件进行散列值确定,并在本地备 份数据库查询确定出的散列值,当查询到本地备份数据路中记录了所述散列值时,停止向 备份服务器备份该文件,可以避免将不同文件路径名中的相同文件重复备份。
[0095] 本公开的以上实施例中,根据预设算法确定所述文件的散列值时,通过对所述文 件进行阈值化处理,在所述文件大小大于预设阈值时,从该文件中提取若干个文件片段,针 对所述若干个文件片段进行散列值确定,得到所述文件的散列值,可以在所述文件过大时, 有效的减少在确定该文件散列值时的计算量,降低设备的耗电量。
[0096] 本公开的以上实施例中,通过在所述文件中提取均匀分布,并且预设大小小于所 述预设阈值的文件片段,可以在减少确定散列值时的计算量的基础上,使得针对所述各文 件片段的散列值确定结果与针对所述文件的散列值确定结果尽可能保持一致。
[0097] 本公开的以上实施例中,当在本地备份数据库中未查询到所述散列值时,通过将 所述散列值对应的文件上传到备份服务器,并将该散列值在本地备份数据库中进行保存, 使得不同路径名的同一文件再次进行备份时,可以在本地备份数据库中查询到确定出的散 列值,从而可以避免同一文件的重复备份。
[0098] 本公开的以上实施例中,通过在将所述散列值对应的文件成功上传到备份服务器 后,将所述散列值在本地备份数据库中标记为已上传状态,使得在本地备份数据库中进行 散列值查询时,可以获知文件的上传状态。
[0099] 本公开的以上实施例中,通过在停止向备份服务器备份所述文件之前,在本地备 份数据库中查询所述散列值是否被标记为已上传状态,如果已标记为已上传状态则停止向 备份服务器备份该文件;如果未标记为已上传状态,进一步向备份服务器确定该文件是否 上传成功,当确定出该文件上传成功,停止向备份服务器备份该文件;当确定出该文件未上 传成功,则向备份服务器备份该文件。通过该方案,可以有效避免由于文件上传不成功而导 致的误操作。
[0100] 本公开的以上实施例中,通过在本地数据库中记录文件的最后更改时间和文件 大小等属性信息,并在所述文件的属性信息与本地记录的属性信息不同时,更新本地备份 数据库的属性信息以及记录的该文件的散列值,可以有效避免对文件进行备份时的误判操 作。
[0101] 本公开的以上实施例中,通过在本地备份数据库中查询从终端接收到的查询请求 中携带的散列值,并在本地备份数据库中已记录了所述散列值时,向终端通告该文件对应 的文件已上传成功,可以有效避免终端由于文件上传不成功而导致的误操作,将不同文件 路径名中的相同文件向备份服务器进行重复备份。
[0102] 本公开的以上实施例中,通过预设算法确定终端上传的文件的散列值,并在该文 件在本地备份成功后,将确定出的散列值在本地备份数据库中进行保存,使得备份服务器 在本地备份数据库中再次查找到该散列值时,可以将该散列对应的文件的已上传状态通告 给对应的终端。
[0103] 本公开的以上实施例中,根据预设算法确定所述文件的散列值时,通过对所述文 件进行阈值化处理,在所述文件大小大于预设阈值时,从该文件中提取若干个文件片段,针 对所述若干个文件片段进行散列值确定,得到所述文件的散列值,可以在所述文件过大时, 有效的减少在确定该文件散列值时的计算量,降低设备的耗电量。
[0104] 本公开的以上实施例中,通过在所述文件中提取均匀分布,并且预设大小小于所 述预设阈值的文件片段,可以在减少散列值确定量的基础上,使得针对所述各文件片段的 散列值确定结果与针对所述文件的散列值确定结果保持一致。
[0105] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不 能限制本公开。

【专利附图】

【附图说明】
[0106] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施 例,并与说明书一起用于解释本公开的原理。
[0107] 图1是根据一示例性实施例示出的一种文件备份方法的流程示意图;
[0108] 图2是根据一示例性实施例示出的另一种文件备份方法的流程示意图;
[0109] 图3是根据一示例性实施例示出的另一种文件备份方法的流程示意图;
[0110] 图4是根据一示例性实施例示出的从视频文件中提取文件片段的示意图;
[0111] 图5是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0112] 图6是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0113] 图7是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0114] 图8是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0115] 图9是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0116] 图10是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0117] 图11是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0118] 图12是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0119] 图13是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0120] 图14是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0121] 图15是根据一示例性实施例示出的一种文件备份装置的示意框图;
[0122] 图16是根据一示例性实施例示出的一种用于文件备份装置的一结构示意图;
[0123] 图17是根据一示例性实施例示出的一种用于文件备份装置的另一结构示意图。

【具体实施方式】
[0124] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例 中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0125] 在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。 在本公开和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该"也旨在包括多 数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语"和/或"是指 并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0126] 应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这 些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离 本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第 一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当…… 时"或"响应于确定"。
[0127] 如图1所示,图1是根据一示例性实施例示出的一种文件备份方法,该文件备份方 法用于终端中,包括以下步骤:
[0128] 在步骤101中,根据预设算法确定文件的散列值;
[0129] 在本实施例中,所述预设算法可以是在对该文件进行散列值确定前,对该文件进 行阈值化处理,然后根据阈值化处理结果分别采取不同的散列值确定方法。
[0130] 例如,可以首先判断该文件的大小是否大于预设阈值,如果该文件的大小不大于 预设阈值,则直接对该文件进行散列值确定;如果该文件的大小大于预设阈值时,此时直接 对该文件进行散列值计算计算量可能偏大;计算量偏大,会造成设备耗电量增加。因此,对 于大于预设阈值的文件,可以从该文件中提取若干个预设大小的文件片段,然后针对提取 出的若干个文件片段进行散列值确定,得出该文件的散列值。例如,在从该文件中提取文件 片段时,可以将该文件分割为预设大小的若干个文件块,然后从分割出的文件块中提取若 干个文件块作为所述文件片段。
[0131] 其中,所述预设大小小于所述预设阈值,所述预设阈值可以根据实际情况进行设 置,或者选取工程经验值作为所述预设阈值,本公开不进行特别限定。例如,本公开用于对 于视频图片文件进行备份时,所述预设阈值可以取工程经验值4M。
[0132] 在从所述文件中提取文件片段时,可以随机提取,也可以均匀提取。随机提取的文 件片段,在所述文件中可能分布不均匀,针对所述文件中分布不均匀的文件片段进行散列 值确定时,确定出的散列值与针对所述文件的散列值确定结果可能存在误差。因此,为了使 针对所述各文件片段的散列值确定结果与针对所述文件的散列值确定结果尽可能的保持 一致,可以从所述文件中均匀提取文件片段,例如,可以按照固定的间隔来提取文件片段, 从而保证提取出的文件片段在所述文件中均匀分布。
[0133] 另外,值得说明的是,从所述文件中提取文件片段时,所提取的文件片段的数量, 不宜过多,也不宜过少;提取文件片段数过多,会导致在进行散列值确定时对算法的频繁调 用,从而无谓占用系统的资源;提取文件片段数过少时,会影响最终离散值确定结果的准确 度。因此,在实际应用中,本领域技术人员可以在同时兼顾二者的前提下,合理设置提取文 件片段的数量,或者采用工程经验值,在本公开中不进行特别限定。
[0134] 通过该方案,可以有效减少在确定该文件散列值时的计算量,可以降低设备的耗 电量。
[0135] 在步骤102中,在本地备份数据库中查询确定出的散列值;
[0136] 在本实施例中,当查询到在本地备份数据库中未记录该散列值,则将该散列值对 应的文件上传给备份服务器,并在将所述散列值对应的文件上传给备份服务器后,将确定 出的所述散列值在本地备份数据库中进行保存。
[0137] 在步骤103中,当查询到所述本地备份数据库中已记录了所述散列值,停止向备 份服务器备份所述文件;
[0138] 在本实施例中,当查询到在本地备份数据库中已记录了该散列值,表明该文件已 经向备份服务器上传过,于是不再向备份服务器备份该文件,以避免同一文件的重复备份。
[0139] 其中,为了防止向备份服务器上传文件时,由于上传失败而导致的误操作,可以在 将所述散列值对应的文件成功上传到备份服务器后,将该散列值在本地备份数据库中标记 为已上传状态。当在本地备份数据库中查询到该散列值时,在停止将该散列值对应的文件 备份到备份服务器前,可以通过在本地备份数据库中查询该散列值是否已被标记为已上传 状态来进一步确定该文件是否已上传成功;如果该散列值已被标记为已上传状态,表明该 散列值对应的文件已上传成功,则停止向备份服务器继续备份该文件。相反,如果该散列值 并未标记为已上传状态,表明该文件很可能未上传成功,可以向备份服务器查询该文件是 否上传成功;如果备份服务器通告该散列值对应的文件已上传成功,则停止向备份服务器 继续备份该文件;同样的道理,如果备份服务器通告该散列值对应的文件未上传成功,则重 新向备份服务器备份该文件。
[0140] 由上述实施例可见,终端通过预设算法对文件进行散列值确定,并在本地备份数 据库查询确定出的散列值,当查询到本地备份数据路中记录了所述散列值时,则停止向备 份服务器备份该文件,可以避免将不同文件路径名中的相同文件重复备份。
[0141] 如图2所示,图2是根据一示例性实施例示出的另一种文件备份方法的流程图,该 文件备份方法用于备份服务器中,包括以下步骤:
[0142] 在步骤201中,接收终端上传的查询请求,所述查询请求中携带散列值;
[0143] 在步骤202中,在本地备份数据库中查询所述散列值;
[0144] 在本实施例中,备份服务器在收到终端上传的文件后,根据预设算法确定终端上 传的文件的散列值;并在该文件在本地备份成功后,通告所述终端,同时将确定出的散列值 在本地备份数据库中进行保存,以方便终端进行查询。
[0145] 其中,备份服务器上采用的所述预设算法与终端上采用的预设算法保持相同,可 以在对该文件进行散列值确定前,判断该文件的大小是否大于预设阈值,如果该文件的大 小不大于预设阈值,则直接对该文件进行散列值确定;如果该文件的大小大于预设阈值时, 此时直接对该文件进行散列值确定时计算量可能偏大;计算量偏大,会造成设备耗电量增 力口。因此,对于大于预设阈值的文件,可以从该文件中提取若干个预设大小的文件片段,然 后针对提取出的若干个文件片段进行散列值确定,得出该文件的散列值。例如,在从该文件 中提取文件片段时,可以将该文件分割为预设大小的若干个文件块,然后从分割出的文件 块中提取若干个文件块作为所述文件片段。
[0146] 其中,所述预设大小小于所述预设阈值,所述预设阈值可以根据实际情况进行设 置,或者选取工程经验值作为所述预设阈值,本公开不进行特别限定。例如,本公开用于对 于视频图片文件进行备份时,所述预设阈值可以取工程经验值4M。
[0147] 在从所述文件中提取文件片段时,可以随机提取,也可以均匀提取。随机提取的文 件片段,在所述文件中可能分布不均匀,针对所述文件中分布不均匀的文件片段进行散列 值确定时,确定出的散列值与针对所述文件的散列值确定结果可能存在误差。因此,为了使 针对所述各文件片段的散列值确定结果与针对所述文件的散列值确定结果尽可能的保持 一致,可以从所述文件中均匀提取文件片段,例如,可以按照固定的间隔来提取文件片段, 从而保证提取出的文件片段在所述文件中均匀分布。
[0148] 另外,值得说明的是,从所述文件中提取文件片段时,所提取的文件片段的数量, 不宜过多,也不宜过少;提取文件片段数过多,会导致在进行散列值确定时对算法的频繁调 用,从而无谓占用系统的资源;提取文件片段数过少时,会影响最终离散值确定结果的准确 度。因此,在实际应用中,本领域技术人员可以在同时兼顾二者的前提下,合理设置提取文 件片段的数量,或者采用工程经验值,在本公开中不进行特别限定。
[0149] 通过该方案,可以有效减少在确定该文件散列值时的计算量,可以降低设备的耗 电量。
[0150] 在步骤203中,当查询到所述本地备份数据库中已记录了所述散列值,则向所述 终端通告该散列值对应的文件已上传成功。
[0151] 在本实施例中,当查询到本地备份数据中已记录了确定出的散列值,表明终端此 次向备份服务器查询的文件,之前已成功上传到了本地,于是备份服务器可以向终端发出 通告消息,通告终端该文件已经上传成功,以使得终端在收到该通告消息后,停止将该文件 继续备份到备份服务器。同样的道理,当查询到本地备份数据中并未记录确定出的散列值, 备份服务器也可以通过向终端发出通告消息,通告终端该文件并未上传成功,以使得终端 在收到该通告消息后,将该文件重新备份到备份服务器。
[0152] 由上述实施例可见,备份服务器通过在本地备份数据库中查询从终端接收到的查 询请求中携带的散列值,并在本地备份数据库中已记录了所述散列值时,向终端通告该文 件对应的文件已上传成功,可以有效避免终端由于文件上传不成功而导致的误操作,将不 同文件路径名中的相同文件向备份服务器进行重复备份。
[0153] 如图3所示,图3是根据一示例性实施例示出的另一种文件备份方法的流程图,包 括以下步骤:
[0154] 在步骤301中,终端根据预设算法确定文件的散列值;
[0155] 在本实施例中,所述预设算法可以是在对该文件进行散列值确定前,可以首先判 断该文件的大小是否大于预设阈值,如果该文件的大小不大于预设阈值,则直接对该文件 进行散列值确定;如果该文件的大小大于预设阈值时,此时直接对该文件进行散列值确定 时,计算量可能偏大;计算量偏大,会造成设备耗电量增加。因此,对于大于预设阈值的文 件,可以从该文件中提取若干个预设大小的文件片段,然后针对提取出的若干个文件片段 进行散列值确定,得出该文件的散列值。例如,在从该文件中提取文件片段时,可以将该文 件分割为预设大小的若干个文件块,然后从分割出的文件块中提取若干个文件块作为所述 文件片段。
[0156] 其中,所述预设大小小于所述预设阈值,所述预设阈值可以根据实际情况进行设 置,或者选取工程经验值作为所述预设阈值,本公开不进行特别限定。例如,本公开用于对 于视频图片文件进行备份时,所述预设阈值可以取工程经验值4M。
[0157] 在从所述文件中提取文件片段时,可以随机提取,也可以均匀提取。随机提取的文 件片段,在所述文件中可能分布不均匀,针对所述文件中分布不均匀的文件片段进行散列 值确定时,确定出的散列值与针对所述文件的散列值确定结果可能存在误差。因此,为了使 针对所述各文件片段的散列值确定结果与针对所述文件的散列值确定结果尽可能的保持 一致,可以从所述文件中均匀提取文件片段,例如,可以按照固定的间隔来提取文件片段, 从而保证提取出的文件片段在所述文件中均匀分布。
[0158] 另外,值得说明的是,从所述文件中提取文件片段时,所提取的文件片段的数量, 不宜过多,也不宜过少;提取文件片段数过多,会导致在进行散列值确定时对算法的频繁调 用,从而无谓占用系统的资源;提取文件片段数过少时,会影响最终离散值确定结果的准确 度。因此,在实际应用中,本领域技术人员可以在同时兼顾二者的前提下,合理设置提取文 件片段的数量,或者采用工程经验值,在本公开中不进行特别限定。
[0159] 例如,假设终端需要对本地一段10M大小的视频文件进行备份,所述预设阈值T取 工程经验值4M;此时该视频文件的大小大于所述预设阈值,于是可以在该视频文件中同样 按照工程经验值提取4段预设大小为1M的文件片段。
[0160] 进一步地,首先将该视频文件划分为4个文件区间,每个文件区间2. 5M,然后在每 个文件区间中提取1M大小的文件片段。同时,为了保证文件片段在该视频文件中均匀分 布,可以为文件片段之间设置固定间隔。比如,可以按照以下区间函数来提取文件片段:
[0161] 【KP,KP+1】
[0162] 上述区间函数中,Ρ为每一个文件区间的大小,Κ取值为(0, 1,…,T-l),Τ为所述 预设阈值。在本实施例中,Ρ值为2.5, Κ取值为(0,1,2, 3),按照上述区间函数,如图4所 示,可以从该视频文件提取出【0, 1Μ】、【2· 5Μ,3· 5Μ】、【5Μ,6Μ】、【7· 5Μ,8· 5Μ】四个固定间隔 为1. 5Μ,大小为1Μ的文件片段。
[0163] 通过该方案,可以有效减少在确定该文件散列值时的计算量,可以降低设备的耗 电量。
[0164] 在步骤302中,终端在本地备份数据库中查询确定出的散列值;
[0165] 在本实施例中,当终端查询到在本地备份数据库中未记录该散列值,则将该散列 值对应的文件上传到备份服务器,并在将所述散列值对应的文件上传给备份服务器后,将 确定出的所述散列值在本地备份数据库中进行保存。同时,当终端获取到所述散列值对应 的文件成功上传到备份服务器后,还可以将所述散列值在本地备份数据库中标记为已上传 状态。其中,终端获取所述散列值对应的文件是否成功上传到备份服务器,可以是在该文件 成功上传到备份服务器后,接收由备份服务器向终端发送的通告消息而获取到的。
[0166] 在步骤303中,当终端查询到本地备份数据库中已记录了所述散列值,继续在本 地备份数据库中查找该散列值是否已被标记为已上传状态;
[0167] 在步骤304中,当终端查询到所述散列值未被标记为已上传状态,向备份服务器 查询所述散列值对应的文件是否已上传成功;
[0168] 在本实施例中,当终端查询到所述散列值被标记为已上传状态,则停止向备份服 务器继续备份该文件;其中,终端向备份服务器查询所述散列值对应的文件是否已上传成 功,可以是通过向备份服务器发送一个携带该散列值的查询请求来实现。
[0169] 在步骤305中,备份服务器在本地备份数据库中查询所述散列值;
[0170] 在本实施例中,当备份服务器收到终端上传的文件时,首先根据预设算法确定该 文件的散列值,并在该文件在本地备份成功后,将确定出的散列值在本地备份数据库中进 行保存,以方便终端进行查询。其中,备份服务器在确定文件散列值时采用的预设算法,与 终端确定文件散列值时采用的算法一致,本实施不再赘述。
[0171] 在步骤306中,当备份服务器查询到本地备份数据库中已记录了所述散列值,则 向所述终端通告该散列值对应的文件已上传成功。
[0172] 在本实施例中,当备份服务器查询到本地备份数据库中已记录了所述散列值,可 以向终端发送一个通告消息通告给终端。
[0173] 在步骤307中,终端在本地备份数据库中将所述散列值标记为已上传状态,停止 向备份服务器备份该文件;
[0174] 在本实施例中,当终端通过接收备份服务器发出的通告消息而获取该所述散列值 对应的文件已成功上传后,将所述散列值标记为已上传状态,并停止向备份服务器继续备 份该文件。等同的,当终端向备份服务器查询到所述散列值对应的文件未上传成功时,则向 备份服务器备份该文件,并在该文件成功上传到备份服务器后,将该文件对应的散列值在 本地备份数据库中标记为已上传状态。
[0175] 由上述实施例可见,本公开通过预设算法对所述文件进行散列值确定,并在终端 的本地备份数据库查询确定出的散列值,当查询到本地备份数据路中记录了所述散列值 时,停止向备份服务器备份该文件,可以避免将不同文件路径名中的相同文件重复备份。同 时,本公开通过对相关技术中确定散列值的算法进行改进,从目标文件中提取若干均匀分 布且较小的文件片段,针对提取出的若干文件片段进行散列值确定,有效的减少在确定该 文件散列值时的计算量,从而可以降低设备的耗电量。
[0176] 在本公开另一个可选的实施例中,结合上述图1或图3示出的实施例,还可以在终 端的本地数据库中记录文件的属性信息。例如,所述属性信息可以包括最后更改时间和文 件大小等。当本地数据库中记录的文件的属性信息,与文件实际的属性信息不相同时,表明 该文件被更改过或者写入了新的内容,因此需要重新确定该文件的散列值,对本地数据库 中记录的散列值进行更新,并同时更新该文件的属性信息。当然,如果本地数据库中记录的 文件的属性信息与文件实际的属性信息相同,那么不需要更新本地备份数据库,可以直接 使用本地备份数据库中的缓存值。
[0177] 以上实施例中,通过在本地数据库中记录文件的最后更改时间和文件大小等属性 信息,并在所述文件的属性信息与本地记录的属性信息不同时,更新本地备份数据库的属 性信息以及记录的该文件的散列值,可以有效避免对文件进行备份时的误判操作。
[0178] 与前述文件备份方法实施例相对应,本公开还提供了文件备份装置的实施例。
[0179] 图5是根据一示例性实施例示出的一种文件备份装置的示意框图,该装置可以应 用在终端内。
[0180] 如图5所不,根据一不例性实施例不出的一种文件备份装置500,包括:第一确定 模块501、第一查询模块502、处理模块503 ;其中:
[0181] 所述第一确定模块501被配置为,根据预设算法确定文件的散列值;
[0182] 所述第一查询模块502被配置为,在本地备份数据库中查询确定出的散列值;
[0183] 所述处理模块503被配置为,在查询到所述本地备份数据库中已记录了所述散列 值,不再向备份服务器备份所述文件。
[0184] 上述实施例中,通过预设算法对所述文件进行散列值确定,并在本地备份数据库 查询确定出的散列值,当查询到本地备份数据路中记录了所述散列值时,停止向备份服务 器备份该文件,可以避免将不同文件路径名中的相同文件重复备份。
[0185] 请参见图6,图6是本公开根据一示例性实施例示出的另一种文件备份装置的示 意框图,该实施例在前述图5所示实施例的基础上,所述第一确定模块501可以包括第一判 断子模块501A、第一确定子模块501B和第二确定子模块501C ;其中:
[0186] 所述第一判断子模块501A被配置为,判断所述文件的大小是否大于或等于预设 阈值;
[0187] 所述第一确定子模块501B被配置为,在判断出所述文件的大小或所述预设阈值 时,在所述文件中提取若干个文件片段,针对所述若干个文件片段进行散列值确定,得出所 述文件的散列值;
[0188] 所述第二确定子模块502B被配置为,在判断出所述文件的大小小于所述预设阈 值时,针对所述文件进行散列值确定得出散列值。
[0189] 上述实施例中,根据预设算法确定所述文件的散列值时,通过对所述文件进行阈 值化处理,在所述文件大小大于预设阈值时,从该文件中提取若干个文件片段,针对所述若 干个文件片段进行散列值确定,得到所述文件的散列值,可以在所述文件过大时,有效的减 少在确定该文件散列值时的确定量,降低设备的耗电量。
[0190] 请参见图7,图7是本公开根据一示例性实施例示出的另一种文件备份装置的示 意框图,该实施例在前述图6所示实施例的基础上,所述第一确定子模块501B可以包括第 一提取子模块501B1 ;
[0191] 所述第一提取子模块501B1被配置为,在所述文件中均匀提取若干个预设大小的 文件片段;其中,所述预设大小的文件片段占用的字节数小于所述预设阈值。
[0192] 上述实施例中,通过在所述文件中提取均匀分布,并且预设大小小于所述预设阈 值的文件片段,可以在减少确定散列值时的计算量的基础上,使得针对所述各文件片段的 散列值确定结果与针对所述文件的散列值确定结果尽可能保持一致。
[0193] 请参见图8,图8是本公开根据一示例性实施例示出的另一种文件备份装置的示 意框图,该实施例在前述图5所示实施例的基础上,所述装置500还可以包括上传模块504 和第一保存模块505 ;其中:
[0194] 所述上传模块504被配置为,在查询到所述本地备份数据库中未记录所述散列值 时,将所述散列值对应的文件上传给备份服务器;
[0195] 所述第一保存模块505被配置为,将所述散列值对应的文件上传给备份服务器 后,将所述散列值在本地备份数据库中进行保存。
[0196] 上述实施例中,通过在将所述散列值对应的文件成功上传到备份服务器后,将所 述散列值在本地备份数据库中标记为已上传状态,使得在本地备份数据库中进行散列值查 询时,可以获知文件的上传状态。
[0197] 需要说明的是,上述图8所示的装置实施例中示出的上传模块504和第一保存模 块505的结构,也可以包含在前述图6至图7的装置实施例中,对此本公开不进行限制。
[0198] 请参见图9,图9是本公开根据一示例性实施例示出的另一种文件备份装置的 示意框图,该实施例在前述图8所示实施例的基础上,所述装置500还可以包括标记模块 506 ;
[0199] 所述标记模块506被配置为,在所述散列值对应的文件成功上传到备份服务器 后,将所述散列值在所述本地备份数据库中标记为已上传状态。
[0200] 在上述实施例中,通过在将所述散列值对应的文件成功上传到备份服务器后,将 所述散列值在本地备份数据库中标记为已上传状态,使得在本地备份数据库中进行散列值 查询时,可以获知文件的上传状态。
[0201] 需要说明的是,上述图9所示的装置实施例中示出的上传模块504和第一保存模 块505的结构,也可以包含在前述图6至于图8的装置实施例中,对此本公开不进行限制。
[0202] 请参见图10,图10是本公开根据一示例性实施例示出的另一种文件备份装置的 示意框图,该实施例在前述图5所示实施例的基础上,所述处理模块503还可以包括第一查 询子模块503A、处理子模块503B、第二查询子模块503C、第一标记子模块503D和备份子模 块503E ;其中:
[0203] 所述第一查询子模块503A被配置为,在停止向备份服务器备份所述文件之前,在 本地备份数据库中查询所述散列值是否被标记为已上传状态;
[0204] 所述处理子模块503B被配置为,在查询到所述散列值被标记为已上传状态,不再 向备份服务器备份所述文件;
[0205] 所述第二查询子模块503C被配置为,在查询到所述散列值未被标记为已上传状 态,向备份服务器查询所述散列值对应的文件是否已上传成功;
[0206] 所述第一标记子模块503D被配置为,在查询到所述散列值对应的文件已上传成 功,在本地备份数据库中将所述散列值标记为已上传状态,不再向备份服务器备份该文 件;
[0207] 所述备份子模块503E被配置为,在查询到所述散列值对应的文件未上传成功,向 备份服务器备份该文件;
[0208] 上述实施例中,通过在停止向备份服务器备份所述文件之前,在本地备份数据库 中查询所述散列值是否被标记为已上传状态,如果已标记为已上传状态则停止向备份服务 器备份该文件;如果未标记为已上传状态,进一步向备份服务器确定该文件是否上传成功, 当确定出该文件上传成功,停止向备份服务器备份该文件;当确定出该文件未上传成功,则 向备份服务器备份该文件。通过该方案,可以有效避免由于文件上传不成功而导致的误操 作。
[0209] 需要说明的是,上述图10所示的装置实施例中示出的第一查询子模块503A、处理 子模块503B、第二查询子模块503C、第一标记子模块503D和备份子模块503E的结构,也可 以包含在前述图6至于图9的装置实施例中,对此本公开不进行限制。
[0210] 请参见图11,图11是本公开根据一示例性实施例示出的另一种文件备份装置的 示意框图,该实施例在前述图5所示实施例的基础上,所述装置500还包括记录模块506和 更新模块507 ;其中:
[0211] 所述记录模块506被配置为,在所述本地备份数据库中记录所述文件的属性信 息,所述属性信息包括最后更改时间和文件大小;
[0212] 所述更新模块507被配置为,在所述文件的属性信息与所述本地备份数据库中记 录的属性信息不同时,更新所述本地备份数据库中记录的该文件的散列值和属性信息。
[0213] 上述实施例中,通过在本地数据库中记录文件的最后更改时间和文件大小等属性 信息,并在所述文件的属性信息与本地记录的属性信息不同时,更新本地备份数据库的属 性信息以及记录的该文件的散列值,可以有效避免对文件进行备份时的误判操作。
[0214] 需要说明的是,上述图11所示的装置实施例中示出的记录模块506和更新模块 507的结构,也可以包含在前述图6至于图10的装置实施例中,对此本公开不进行限制。
[0215] 图12是根据一示例性实施例示出的另一种文件备份装置的示意框图,该装置可 以应用在备份服务器上。
[0216] 如图12所示,根据一示例性实施例示出的另一种文件备份装置1200,包括:接收 模块1201、第二查询模块1202、通告模块1203 ;其中:
[0217] 所述接收模块1201被配置为,接收终端上传的查询请求,所述查询请求中携带散 列值;
[0218] 所述第二查询模块1202被配置为,在本地备份数据库中查询所述散列值;
[0219] 所述通告模块1203被配置为,在查询到所述本地备份数据库中已记录了所述散 列值,则向所述终端通告该散列值对应的文件已上传成功。
[0220] 上述实施例中,通过在本地备份数据库中查询从终端接收到的查询请求中携带的 散列值,并在本地备份数据库中已记录了所述散列值时,向终端通告该文件对应的文件已 上传成功,可以有效避免终端由于文件上传不成功而导致的误操作,将不同文件路径名中 的相同文件向备份服务器进行重复备份。
[0221] 请参见图13,图13是本公开根据一示例性实施例示出的另一种文件备份装置的 示意框图,该实施例在前述图12所示实施例的基础上,所述装置1200还包括第二确定模块 1204和第二保存模块1205 ;其中:
[0222] 所述第二确定模块1204被配置为,根据预设算法确定终端上传的文件的散列值;
[0223] 所述第二保存模块1205被配置为,用于在所述文件在本地备份成功后,将确定出 的散列值在本地备份数据库中进行保存。
[0224] 上述实施例中,通过预设算法确定终端上传的文件的散列值,并在该文件在本地 备份成功后,将确定出的散列值在本地备份数据库中进行保存,使得备份服务器在本地备 份数据库中再次查找到该散列值时,可以将该散列值对应的文件的已上传状态通告给对应 的终端。
[0225] 请参见图14,图14是本公开根据一示例性实施例示出的另一种文件备份装置的 示意框图,该实施例在前述图12所示实施例的基础上,所述第二确定模块1204包括第二判 断子模块1204A、第三确定子模块1204B和第四确定子模块1204C ;其中:
[0226] 所述第二判断子模块1204A被配置为,判断所述文件的大小是否大于或等于预设 阈值;
[0227] 所述第三确定子模块1204B被配置为,在判断出所述文件的大小大于或等于所述 预设阈值时,在所述文件中提取若干个文件片段,针对所述若干个文件片段进行散列值确 定,得出所述文件的散列值;
[0228] 所述第四确定子模块1204C被配置为,在判断出所述文件的大小小于所述预设阈 值时,对所述文件进行散列值确定得出散列值。
[0229] 上述实施例中,根据预设算法确定所述文件的散列值时,通过对所述文件进行阈 值化处理,在所述文件大小大于预设阈值时,从该文件中提取若干个文件片段,针对所述若 干个文件片段进行散列值确定,得到所述文件的散列值,可以在所述文件过大时,有效的减 少在确定该文件散列值时的确定量,降低设备的耗电量。同时,通过在所述文件中提取均匀 分布,并且预设大小小于所述预设阈值的文件片段,可以在减少散列值确定量的基础上,使 得针对所述各文件片段的散列值确定结果与针对所述文件的散列值确定结果保持一致。
[0230] 请参见图15,图15是本公开根据一示例性实施例示出的另一种文件备份装置的 示意框图,该实施例在前述图14所示实施例的基础上,所述第三确定子模块1204B可以包 括第二提取子模块1204B 1 ;
[0231] 所述第二提取子模块1204B1被配置为,在所述文件中均匀提取若干个预设大小 的文件片段;其中,所述预设大小的文件片段占用的字节数小于所述预设阈值。
[0232] 上述实施例中,通过在所述文件中提取均匀分布,并且预设大小小于所述预设阈 值的文件片段,可以在减少确定散列值时的计算量的基础上,使得针对所述各文件片段的 散列值确定结果与针对所述文件的散列值确定结果尽可能保持一致。
[0233] 相应的,本公开还提供一种文件备份装置,所述装置包括有存储器,以及一个或者 一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一 个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0234] 根据预设算法确定文件的散列值;
[0235] 在本地备份数据库中查询确定出的散列值;
[0236] 当查询到所述本地备份数据库中已记录了所述散列值,不再向备份服务器备份所 述文件。
[0237] 图16是根据一示例性实施例示出的一种文件备份装置的结构示意图。
[0238] 如图16所示,根据一示例性实施例示出的一种文件备份装置1600,该装置1600可 以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健 身设备,个人数字助理等。
[0239] 参照图16,装置1600可以包括以下一个或多个组件:处理组件1601,存储器 1602,电源组件1603,多媒体组件1604,音频组件1605,输入/输出(I/O)的接口 1606,传 感器组件1607,以及通信组件1608。
[0240] 处理组件1601通常控制装置1600的整体操作,诸如与显示,电话呼叫,数据通信, 相机操作和记录操作相关联的操作。处理组件1601可以包括一个或多个处理器1609来执 行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1601可以包括一个或多个 模块,便于处理组件1601和其他组件之间的交互。例如,处理部件1601可以包括多媒体模 块,以方便多媒体组件1604和处理组件1601之间的交互。
[0241] 存储器1602被配置为存储各种类型的数据以支持在装置1600的操作。这些数据 的示例包括用于在装置1600上操作的任何应用程序或方法的指令,联系人数据,电话簿数 据,消息,图片,视频等。存储器1602可以由任何类型的易失性或非易失性存储设备或者它 们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPR0M),可 擦除可编程只读存储器(EPROM),可编程只读存储器(PR0M),只读存储器(R0M),磁存储器, 快闪存储器,磁盘或光盘。
[0242] 电源组件1603为装置1600的各种组件提供电力。电源组件1603可以包括电源 管理系统,一个或多个电源,及其他与为装置1600生成、管理和分配电力相关联的组件。
[0243] 多媒体组件1604包括在所述装置1600和用户之间的提供一个输出接口的屏幕。 在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面 板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸 传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动 动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中, 多媒体组件1604包括一个前置摄像头和/或后置摄像头。当装置1600处于操作模式,如 拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个 前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0244] 音频组件1605被配置为输出和/或输入音频信号。例如,音频组件1605包括一 个麦克风(MIC),当装置1600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦 克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1602或 经由通信组件1608发送。在一些实施例中,音频组件1605还包括一个扬声器,用于输出音 频信号。
[0245] I/O接口 1602为处理组件1601和外围接口模块之间提供接口,上述外围接口模块 可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和 锁定按钮。
[0246] 传感器组件1607包括一个或多个传感器,用于为装置1600提供各个方面的状态 评估。例如,传感器组件1607可以检测到装置1600的打开/关闭状态,组件的相对定位, 例如所述组件为装置1600的显示器和小键盘,传感器组件1607还可以检测装置1600或装 置1600 -个组件的位置改变,用户与装置1600接触的存在或不存在,装置1600方位或加 速/减速和装置1600的温度变化。传感器组件1607可以包括接近传感器,被配置用来在 没有任何的物理接触时检测附近物体的存在。传感器组件1607还可以包括光传感器,如 CMOS或C⑶图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1607还 可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0247] 通信组件1608被配置为便于装置1600和其他设备之间有线或无线方式的通信。 装置1600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示 例性实施例中,通信组件1608经由广播信道接收来自外部广播管理系统的广播信号或广 播相关信息。在一个示例性实施例中,所述通信组件1608还包括近场通信(NFC)模块,以促 进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术, 超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0248] 在示例性实施例中,装置1600可以被一个或多个应用专用集成电路(ASIC)、数字 信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列 (FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0249] 在示例性实施例中,还提供了一种包括指令的非临时性确定机可读存储介质,例 如包括指令的存储器1602,上述指令可由装置1600的处理器1609执行以完成上述方法。例 如,所述非临时性确定机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、 软盘和光数据存储设备等。
[0250] -种非临时性确定机可读存储介质,当所述存储介质中的指令由终端设备的处理 器执行时,使得终端能够执行一种安全控制方法,包括:
[0251] 根据预设算法确定文件的散列值;
[0252] 在本地备份数据库中查询确定出的散列值;
[0253] 当查询到所述本地备份数据库中已记录了所述散列值,停止向备份服务器备份所 述文件。
[0254] 相应的,本公开还提供另一种文件备份装置,所述装置包括有存储器,以及一个或 者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者 一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0255] 接收终端上传的查询请求,所述查询请求中携带散列值;
[0256] 在本地备份数据库中查询所述散列值;
[0257] 当查询到所述本地备份数据库中已记录了所述散列值,则向所述终端通告该散列 值对应的文件已上传成功。
[0258] 图17是根据一示例性实施例示出的一种用于文件备份的装置1700的框图。例 如,装置1700可以被提供为一服务器。参照图17,装置1700包括处理组件1722,其进一步 包括一个或多个处理器,以及由存储器1732所代表的存储器资源,用于存储可由处理部件 1722的执行的指令,例如应用程序。存储器1732中存储的应用程序可以包括一个或一个以 上的每一个对应于一组指令的模块。此外,处理组件1722被配置为执行指令,以执行上述 文件备份方法。
[0259] 装置1700还可以包括一个电源组件1726被配置为执行装置1700的电源管理,一 个有线或无线网络接口 1750被配置为将装置1700连接到网络,和一个输入输出(I/O)接 口 1758。装置1700可以操作基于存储在存储器1732的操作系统,例如Windows ServerTM, Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM 或类似。
[0260] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其 它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或 者适应性变化遵循本公开的一般性原理并包括本公开未公开的本【技术领域】中的公知常识 或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的 权利要求指出。
[0261] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并 且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
【权利要求】
1. 一种文件备份方法,其特征在于,所述方法包括: 根据预设算法确定文件的散列值; 在本地备份数据库中查询确定出的散列值; 当查询到所述本地备份数据库中已记录所述散列值,不再向备份服务器备份所述文 件。
2. 如权利要求1所述的方法,其特征在于,所述根据预设算法确定文件的散列值包括: 判断所述文件的大小是否大于或等于预设阈值; 当判断出所述文件的大小大于或等于所述预设阈值时,在所述文件中提取若干个文件 片段,针对所述若干个文件片段进行散列值确定,得出所述文件的散列值; 当判断出所述文件的大小小于所述预设阈值时,针对所述文件进行散列值确定得出散 列值。
3. 如权利要求2所述的方法,其特征在于,所述在所述文件中提取若干个文件片段包 括: 在所述文件中均匀提取若干个预设大小的文件片段; 其中,所述预设大小的文件片段占用的字节数小于所述预设阈值。
4. 如权利要求1所述的方法,其特征在于,所述方法还包括: 当查询到所述本地备份数据库中未记录所述散列值,将所述散列值对应的文件上传给 备份服务器; 在将所述散列值对应的文件上传给备份服务器后,将所述散列值在本地备份数据库中 进行保存。
5. 如权利要求1所述的方法,其特征在于,所述方法还包括 当所述散列值对应的文件成功上传到备份服务器后,将所述散列值在所述本地备份数 据库中标记为已上传状态。
6. 如权利要求1所述的方法,其特征在于,所述不再向备份服务器备份所述文件之前, 所述方法还包括: 在本地备份数据库中查询所述散列值是否被标记为已上传状态; 当查询到所述散列值被标记为已上传状态,不再向备份服务器备份所述文件; 当查询到所述散列值未被标记为已上传状态,向备份服务器查询所述散列值对应的文 件是否已上传成功;当查询到所述散列值对应的文件已上传成功,在本地备份数据库中将 所述散列值标记为已上传状态,不再向备份服务器备份该文件;当查询到所述散列值对应 的文件未上传成功,向备份服务器备份该文件。
7. 如权利要求1所述的方法,其特征在于,所述方法还包括: 在所述本地备份数据库中记录所述文件的属性信息,所述属性信息包括最后更改时间 和文件大小; 当所述文件的属性信息与所述本地备份数据库中记录的属性信息不同,更新所述本地 备份数据库中记录的该文件的散列值和属性信息。
8. -种文件备份方法,其特征在于,所述方法包括: 接收终端上传的查询请求,所述查询请求中携带散列值; 在本地备份数据库中查询所述散列值; 当查询到所述本地备份数据库中已记录了所述散列值,则向所述终端通告该散列值对 应的文件已上传成功。
9. 如权利要求8所述的方法,其特征在于,所述方法还包括: 根据预设算法确定终端上传的文件的散列值; 当所述文件在本地备份成功后,将确定出的散列值在本地备份数据库中进行保存。
10. 如权利要求9所述的方法,其特征在于,所述根据预设算法确定终端上传的文件的 散列值包括: 判断所述文件的大小是否大于或等于预设阈值; 当判断出所述文件的大小大于或等于所述预设阈值时,在所述文件中提取若干个文件 片段,针对所述若干个文件片段进行散列值确定,得出所述文件的散列值; 当判断出所述文件的大小小于所述预设阈值时,对所述文件进行散列值确定得出散列 值。
11. 如权利要求10所述的方法,其特征在于,所述在所述文件中提取若干个文件片段 包括: 在所述文件中均匀提取若干个预设大小的文件片段; 其中,所述预设大小的文件片段占用的字节数小于所述预设阈值。
12. -种文件备份装置,其特征在于,所述装置包括: 第一确定模块,用于根据预设算法确定文件的散列值; 第一查询模块,用于在本地备份数据库中查询确定出的散列值; 处理模块,用于在查询到所述本地备份数据库中已记录了所述散列值,不再向备份服 务器备份所述文件。
13. 如权利要求12所述的装置,其特征在于,所述第一确定模块包括: 第一判断子模块,用于判断所述文件的大小是否大于或等于预设阈值; 第一确定子模块,用于在判断出所述文件的大小大于或等于所述预设阈值时,在所述 文件中提取若干个文件片段,针对所述若干个文件片段进行散列值确定,得出所述文件的 散列值; 第二确定子模块,用于在判断出所述文件的大小小于所述预设阈值时,针对所述文件 进行散列值确定得出散列值。
14. 如权利要求13所述的装置,其特征在于,所述第一确定子模块包括: 第一提取子模块,用于在所述文件中均匀提取若干个预设大小的文件片段;其中,所述 预设大小的文件片段占用的字节数小于所述预设阈值。
15. 如权利要求12所述的装置,其特征在于,所述装置还包括: 上传模块,用于在查询到所述本地备份数据库中未记录所述散列值时,将所述散列值 对应的文件上传给备份服务器; 第一保存模块,用于将所述散列值对应的文件上传给备份服务器后,将所述散列值在 本地备份数据库中进行保存。
16. 如权利要求12所述的装置,其特征在于,所述装置还包括 标记模块,用于在所述散列值对应的文件成功上传到备份服务器后,将所述散列值在 所述本地备份数据库中标记为已上传状态。
17. 如权利要求12所述的装置,其特征在于,所述处理模块包括: 第一查询子模块,用于在本地备份数据库中查询所述散列值是否被标记为已上传状 态; 处理子模块,用于在查询到所述散列值被标记为已上传状态时,不再向备份服务器备 份所述文件; 第二查询子模块,用于在查询到所述散列值未被标记为已上传状态,向备份服务器查 询所述散列值对应的文件是否已上传成功; 第一标记子模块,用于在查询到所述散列值对应的文件已上传成功,在本地备份数据 库中将所述散列值标记为已上传状态,不再向备份服务器备份该文件; 备份子模块,用于在查询到所述散列值对应的文件未上传成功,向备份服务器备份该 文件。
18. 如权利要求12所述的装置,其特征在于,所述装置还包括: 记录模块,用于在所述本地备份数据库中记录所述文件的属性信息,所述属性信息包 括最后更改时间和文件大小; 更新模块,用于在所述文件的属性信息与所述本地备份数据库中记录的属性信息不同 时,更新所述本地备份数据库中记录的该文件的散列值和属性信息。
19. 一种文件备份装置,其特征在于,所述装置包括: 接收模块,用于接收终端上传的查询请求,所述查询请求中携带散列值; 第二查询模块,用于在本地备份数据库中查询所述散列值; 通告模块,用于在查询到所述本地备份数据库中已记录了所述散列值,则向所述终端 通告该散列值对应的文件已上传成功。
20. 如权利要求19所述的装置,其特征在于,所述装置还包括: 第二确定模块,用于根据预设算法确定终端上传的文件的散列值; 第二保存模块,用于在所述文件在本地备份成功后,将确定出的散列值在本地备份数 据库中进行保存。
21. 如权利要求20所述的装置,其特征在于,所述第二确定模块包括: 第二判断子模块,用于判断所述文件的大小是否大于或等于预设阈值; 第三确定子模块,用于在判断出所述文件的大小大于或等于所述预设阈值时,在所述 文件中提取若干个文件片段,针对所述若干个文件片段进行散列值确定,得出所述文件的 散列值; 第四确定子模块,用于在判断出所述文件的大小小于所述预设阈值时,对所述文件进 行散列值确定得出散列值。
22. 如权利要求19所述的装置,其特征在于,所述第三确定子模块包括: 第二提取子模块,用于在所述文件中均匀提取若干个预设大小的文件片段;其中,所述 预设大小的文件片段占用的字节数小于所述预设阈值。
23. -种文件备份装置,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 根据预设算法确定文件的散列值; 在本地备份数据库中查询确定出的散列值; 当查询到所述本地备份数据库中已记录了所述散列值,不再向备份服务器备份所述文 件。
24. -种文件备份装置,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 接收终端上传的查询请求,所述查询请求中携带散列值; 在本地备份数据库中查询所述散列值; 当查询到所述本地备份数据库中已记录了所述散列值,则向所述终端通告该散列值对 应的文件已上传成功。
【文档编号】G06F17/30GK104156284SQ201410429701
【公开日】2014年11月19日 申请日期:2014年8月27日 优先权日:2014年8月27日
【发明者】李春雨, 王益冬, 胡先东 申请人:小米科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1