欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

文件備份方法和裝置制造方法

文檔序號(hào):6625110閱讀:330來源:國知局
文件備份方法和裝置制造方法
【專利摘要】本公開提出一種文件備份方法,所述方法包括:根據(jù)預(yù)設(shè)算法確定文件的散列值;在本地備份數(shù)據(jù)庫中查詢確定出的散列值;當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,不再向備份服務(wù)器備份所述文件。本公開可以避免將不同文件路徑名中的相同文件重復(fù)備份。
【專利說明】文件備份方法和裝置

【技術(shù)領(lǐng)域】
[0001] 本公開涉及存儲(chǔ)領(lǐng)域,尤其涉及文件備份方法和裝置。

【背景技術(shù)】
[0002] 隨著移動(dòng)設(shè)備的廣泛使用和普及,人們對(duì)移動(dòng)設(shè)備上文件的自動(dòng)備份的需求越來 越高??墒怯捎谝苿?dòng)設(shè)備本地存儲(chǔ)空間往往不足,因此可以將移動(dòng)設(shè)備本地的文件自動(dòng)備 份具有更大存儲(chǔ)空間的設(shè)備上,例如,本地服務(wù)器或者智能路由器。
[0003] 然而,在實(shí)際應(yīng)用中,經(jīng)常會(huì)出現(xiàn)多個(gè)不同文件路徑名的文件為同一個(gè)文件的情 況,因此,在將移動(dòng)設(shè)備本地文件自動(dòng)備份到本地服務(wù)器或者智能路由器上時(shí),會(huì)造成同一 個(gè)文件的重復(fù)備份。


【發(fā)明內(nèi)容】

[0004] 為克服相關(guān)技術(shù)中存在的問題,本公開提供一文件備份方法和裝置。
[0005] 根據(jù)本公開實(shí)施例的第一方面,提供一種文件備份方法,所述方法包括:
[0006] 根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0007] 在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0008] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,不再向備份服務(wù)器備份所 述文件。
[0009] 可選的,所述根據(jù)預(yù)設(shè)算法確定文件的散列值包括:
[0010] 判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值;
[0011] 當(dāng)判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在所述文件中提取若干個(gè) 文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文件的散列值;
[0012] 當(dāng)判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),針對(duì)所述文件進(jìn)行散列值確定得 出散列值。
[0013] 可選的,所述在所述文件中提取若干個(gè)文件片段包括:
[0014] 在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段;
[0015] 其中,所述預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
[0016] 可選的,所述方法還包括:
[0017] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中未記錄所述散列值,將所述散列值對(duì)應(yīng)的文件上 傳給備份服務(wù)器;在將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器后,將確定出的所述散列 值在本地備份數(shù)據(jù)庫中進(jìn)行保存。
[0018] 可選的,所述方法還包括
[0019] 當(dāng)所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器后,將所述散列值在所述本地備 份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài)。
[0020] 可選的,所述不再向備份服務(wù)器備份所述文件之前,所述方法還包括:
[0021] 在本地備份數(shù)據(jù)庫中查詢所述散列值是否被標(biāo)記為已上傳狀態(tài);
[0022] 當(dāng)查詢到所述散列值被標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器備份所述文件;
[0023] 當(dāng)查詢到所述散列值未被標(biāo)記為已上傳狀態(tài),向備份服務(wù)器查詢所述散列值對(duì)應(yīng) 的文件是否已上傳成功;
[0024] 當(dāng)查詢到所述散列值對(duì)應(yīng)的文件已上傳成功,在本地備份數(shù)據(jù)庫中將所述散列值 標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器備份該文件;
[0025] 當(dāng)查詢到所述散列值對(duì)應(yīng)的文件未上傳成功,向備份服務(wù)器備份該文件。
[0026] 可選的,所述方法還包括:
[0027] 在所述本地備份數(shù)據(jù)庫中記錄所述文件的屬性信息,所述屬性信息包括最后更改 時(shí)間和文件大??;
[0028] 當(dāng)所述文件的屬性信息與所述本地備份數(shù)據(jù)庫中記錄的屬性信息不同,更新所述 本地備份數(shù)據(jù)庫中記錄的該文件的散列值和屬性信息。
[0029] 根據(jù)本公開實(shí)施例的第二方面,提供一種文件備份方法,所述方法包括:
[0030] 接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值;
[0031] 在本地備份數(shù)據(jù)庫中查詢所述散列值;
[0032] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述終端通告該散列 值對(duì)應(yīng)的文件已上傳成功。
[0033] 可選的,所述方法還包括:
[0034] 根據(jù)預(yù)設(shè)算法確定終端上傳的文件的散列值;
[0035] 當(dāng)所述文件在本地備份成功后,將確定出的散列值在本地備份數(shù)據(jù)庫中進(jìn)行保 存。
[0036] 可選的,所述根據(jù)預(yù)設(shè)算法確定終端上傳的文件的散列值包括:
[0037] 判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值;
[0038] 當(dāng)判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在所述文件中提取若干個(gè) 文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文件的散列值;
[0039] 當(dāng)判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),對(duì)所述文件進(jìn)行散列值確定得出 散列值。
[0040] 可選的,所述在所述文件中提取若干個(gè)文件片段包括:
[0041] 在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段;其中,所述預(yù)設(shè)大小的文件 片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
[0042] 根據(jù)本公開實(shí)施例的第三方面,提供一種文件備份裝置,所述裝置包括
[0043] 第一確定模塊,用于根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0044] 第一查詢模塊,用于在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0045] 處理模塊,用于在查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,不再向備 份服務(wù)器備份所述文件。
[0046] 可選的,所述第一確定模塊包括:
[0047] 第一判斷子模塊,用于判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值;
[0048] 第一確定子模塊,用于在判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在 所述文件中提取若干個(gè)文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文 件的散列值;
[0049] 第二確定子模塊,用于在判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),針對(duì)所述 文件進(jìn)行散列值確定得出散列值。
[0050] 可選的,所述第一確定子模塊包括:
[0051] 第一提取子模塊,用于在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段;其中, 所述預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
[0052] 可選的,所述裝置還包括:
[0053] 上傳模塊,用于在查詢到所述本地備份數(shù)據(jù)庫中未記錄所述散列值時(shí),將所述散 列值對(duì)應(yīng)的文件上傳給備份服務(wù)器;
[0054] 第一保存模塊,用于將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器后,將所述散列 值在本地備份數(shù)據(jù)庫中進(jìn)行保存。
[0055] 可選的,所述裝置還包括
[0056] 標(biāo)記模塊,用于在所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器后,將所述散列 值在所述本地備份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài)。
[0057] 可選的,所述處理模塊包括:
[0058] 第一查詢子模塊,用于在停止向備份服務(wù)器備份所述文件之前,在本地備份數(shù)據(jù) 庫中查詢所述散列值是否被標(biāo)記為已上傳狀態(tài);
[0059] 處理子模塊,用于在查詢到所述散列值被標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器 備份所述文件;
[0060] 第二查詢子模塊,用于在查詢到所述散列值未被標(biāo)記為已上傳狀態(tài),向備份服務(wù) 器查詢所述散列值對(duì)應(yīng)的文件是否已上傳成功;
[0061] 第一標(biāo)記子模塊,用于在查詢到所述散列值對(duì)應(yīng)的文件已上傳成功,在本地備份 數(shù)據(jù)庫中將所述散列值標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器備份該文件;
[0062] 備份子模塊,用于在查詢到所述散列值對(duì)應(yīng)的文件未上傳成功,向備份服務(wù)器備 份該文件。
[0063] 可選的,所述裝置還包括:
[0064] 記錄模塊,用于在所述本地備份數(shù)據(jù)庫中記錄所述文件的屬性信息,所述屬性信 息包括最后更改時(shí)間和文件大?。?br> [0065] 更新模塊,用于在所述文件的屬性信息與所述本地備份數(shù)據(jù)庫中記錄的屬性信息 不同時(shí),更新所述本地備份數(shù)據(jù)庫中記錄的該文件的散列值和屬性信息。
[0066] 根據(jù)本公開實(shí)施例的第四方面,提供一種文件備份裝置,所述裝置包括:
[0067] 接收模塊,用于接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值;
[0068] 第二查詢模塊,用于在本地備份數(shù)據(jù)庫中查詢所述散列值;
[0069] 通告模塊,用于在查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述 終端通告該散列值對(duì)應(yīng)的文件已上傳成功。
[0070] 可選的,所述裝置還包括:
[0071] 第二確定模塊,用于根據(jù)預(yù)設(shè)算法確定終端上傳的文件的散列值;
[0072] 第二保存模塊,用于在所述文件在本地備份成功后,將確定出的散列值在本地備 份數(shù)據(jù)庫中進(jìn)行保存。
[0073] 可選的,所述第二確定模塊包括:
[0074] 第二判斷子模塊,用于判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值;
[0075] 第三確定子模塊,用于在判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在 所述文件中提取若干個(gè)文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文 件的散列值;
[0076] 第四確定子模塊,用于在判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),對(duì)所述文 件進(jìn)行散列值確定得出散列值。
[0077] 可選的,所述第三確定子模塊包括:
[0078] 第二提取子模塊,用于在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段;其中, 所述預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
[0079] 根據(jù)本公開實(shí)施例的第五方面,提供一種文件備份裝置,包括:
[0080] 處理器;
[0081] 用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
[0082] 其中,所述處理器被配置為:
[0083] 根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0084] 在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0085] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,不再向備份服務(wù)器備份所 述文件。
[0086] 根據(jù)本公開實(shí)施例的第六方面,提供一種文件備份裝置,包括:
[0087] 處理器;
[0088] 用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
[0089] 其中,所述處理器被配置為:
[0090] 接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值;
[0091] 在本地備份數(shù)據(jù)庫中查詢所述散列值;
[0092] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述終端通告該散列 值對(duì)應(yīng)的文件已上傳成功。
[0093] 本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0094] 本公開的以上實(shí)施例中,通過預(yù)設(shè)算法對(duì)所述文件進(jìn)行散列值確定,并在本地備 份數(shù)據(jù)庫查詢確定出的散列值,當(dāng)查詢到本地備份數(shù)據(jù)路中記錄了所述散列值時(shí),停止向 備份服務(wù)器備份該文件,可以避免將不同文件路徑名中的相同文件重復(fù)備份。
[0095] 本公開的以上實(shí)施例中,根據(jù)預(yù)設(shè)算法確定所述文件的散列值時(shí),通過對(duì)所述文 件進(jìn)行閾值化處理,在所述文件大小大于預(yù)設(shè)閾值時(shí),從該文件中提取若干個(gè)文件片段,針 對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得到所述文件的散列值,可以在所述文件過大時(shí), 有效的減少在確定該文件散列值時(shí)的計(jì)算量,降低設(shè)備的耗電量。
[0096] 本公開的以上實(shí)施例中,通過在所述文件中提取均勻分布,并且預(yù)設(shè)大小小于所 述預(yù)設(shè)閾值的文件片段,可以在減少確定散列值時(shí)的計(jì)算量的基礎(chǔ)上,使得針對(duì)所述各文 件片段的散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果盡可能保持一致。
[0097] 本公開的以上實(shí)施例中,當(dāng)在本地備份數(shù)據(jù)庫中未查詢到所述散列值時(shí),通過將 所述散列值對(duì)應(yīng)的文件上傳到備份服務(wù)器,并將該散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存, 使得不同路徑名的同一文件再次進(jìn)行備份時(shí),可以在本地備份數(shù)據(jù)庫中查詢到確定出的散 列值,從而可以避免同一文件的重復(fù)備份。
[0098] 本公開的以上實(shí)施例中,通過在將所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器 后,將所述散列值在本地備份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài),使得在本地備份數(shù)據(jù)庫中進(jìn)行 散列值查詢時(shí),可以獲知文件的上傳狀態(tài)。
[0099] 本公開的以上實(shí)施例中,通過在停止向備份服務(wù)器備份所述文件之前,在本地備 份數(shù)據(jù)庫中查詢所述散列值是否被標(biāo)記為已上傳狀態(tài),如果已標(biāo)記為已上傳狀態(tài)則停止向 備份服務(wù)器備份該文件;如果未標(biāo)記為已上傳狀態(tài),進(jìn)一步向備份服務(wù)器確定該文件是否 上傳成功,當(dāng)確定出該文件上傳成功,停止向備份服務(wù)器備份該文件;當(dāng)確定出該文件未上 傳成功,則向備份服務(wù)器備份該文件。通過該方案,可以有效避免由于文件上傳不成功而導(dǎo) 致的誤操作。
[0100] 本公開的以上實(shí)施例中,通過在本地?cái)?shù)據(jù)庫中記錄文件的最后更改時(shí)間和文件 大小等屬性信息,并在所述文件的屬性信息與本地記錄的屬性信息不同時(shí),更新本地備份 數(shù)據(jù)庫的屬性信息以及記錄的該文件的散列值,可以有效避免對(duì)文件進(jìn)行備份時(shí)的誤判操 作。
[0101] 本公開的以上實(shí)施例中,通過在本地備份數(shù)據(jù)庫中查詢從終端接收到的查詢請(qǐng)求 中攜帶的散列值,并在本地備份數(shù)據(jù)庫中已記錄了所述散列值時(shí),向終端通告該文件對(duì)應(yīng) 的文件已上傳成功,可以有效避免終端由于文件上傳不成功而導(dǎo)致的誤操作,將不同文件 路徑名中的相同文件向備份服務(wù)器進(jìn)行重復(fù)備份。
[0102] 本公開的以上實(shí)施例中,通過預(yù)設(shè)算法確定終端上傳的文件的散列值,并在該文 件在本地備份成功后,將確定出的散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存,使得備份服務(wù)器 在本地備份數(shù)據(jù)庫中再次查找到該散列值時(shí),可以將該散列對(duì)應(yīng)的文件的已上傳狀態(tài)通告 給對(duì)應(yīng)的終端。
[0103] 本公開的以上實(shí)施例中,根據(jù)預(yù)設(shè)算法確定所述文件的散列值時(shí),通過對(duì)所述文 件進(jìn)行閾值化處理,在所述文件大小大于預(yù)設(shè)閾值時(shí),從該文件中提取若干個(gè)文件片段,針 對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得到所述文件的散列值,可以在所述文件過大時(shí), 有效的減少在確定該文件散列值時(shí)的計(jì)算量,降低設(shè)備的耗電量。
[0104] 本公開的以上實(shí)施例中,通過在所述文件中提取均勻分布,并且預(yù)設(shè)大小小于所 述預(yù)設(shè)閾值的文件片段,可以在減少散列值確定量的基礎(chǔ)上,使得針對(duì)所述各文件片段的 散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果保持一致。
[0105] 應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不 能限制本公開。

【專利附圖】

【附圖說明】
[0106] 此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實(shí)施 例,并與說明書一起用于解釋本公開的原理。
[0107] 圖1是根據(jù)一示例性實(shí)施例示出的一種文件備份方法的流程示意圖;
[0108] 圖2是根據(jù)一示例性實(shí)施例示出的另一種文件備份方法的流程示意圖;
[0109] 圖3是根據(jù)一示例性實(shí)施例示出的另一種文件備份方法的流程示意圖;
[0110] 圖4是根據(jù)一示例性實(shí)施例示出的從視頻文件中提取文件片段的示意圖;
[0111] 圖5是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0112] 圖6是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0113] 圖7是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0114] 圖8是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0115] 圖9是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0116] 圖10是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0117] 圖11是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0118] 圖12是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0119] 圖13是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0120] 圖14是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0121] 圖15是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖;
[0122] 圖16是根據(jù)一示例性實(shí)施例示出的一種用于文件備份裝置的一結(jié)構(gòu)示意圖;
[0123] 圖17是根據(jù)一示例性實(shí)施例示出的一種用于文件備份裝置的另一結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0124] 這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及 附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例 中所描述的實(shí)施方式并不代表與本公開相一致的所有實(shí)施方式。相反,它們僅是與如所附 權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
[0125] 在本公開使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本公開。 在本公開和所附權(quán)利要求書中所使用的單數(shù)形式的"一種"、"所述"和"該"也旨在包括多 數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語"和/或"是指 并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
[0126] 應(yīng)當(dāng)理解,盡管在本公開可能采用術(shù)語第一、第二、第三等來描述各種信息,但這 些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離 本公開范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第 一信息。取決于語境,如在此所使用的詞語"如果"可以被解釋成為"在……時(shí)"或"當(dāng)…… 時(shí)"或"響應(yīng)于確定"。
[0127] 如圖1所示,圖1是根據(jù)一示例性實(shí)施例示出的一種文件備份方法,該文件備份方 法用于終端中,包括以下步驟:
[0128] 在步驟101中,根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0129] 在本實(shí)施例中,所述預(yù)設(shè)算法可以是在對(duì)該文件進(jìn)行散列值確定前,對(duì)該文件進(jìn) 行閾值化處理,然后根據(jù)閾值化處理結(jié)果分別采取不同的散列值確定方法。
[0130] 例如,可以首先判斷該文件的大小是否大于預(yù)設(shè)閾值,如果該文件的大小不大于 預(yù)設(shè)閾值,則直接對(duì)該文件進(jìn)行散列值確定;如果該文件的大小大于預(yù)設(shè)閾值時(shí),此時(shí)直接 對(duì)該文件進(jìn)行散列值計(jì)算計(jì)算量可能偏大;計(jì)算量偏大,會(huì)造成設(shè)備耗電量增加。因此,對(duì) 于大于預(yù)設(shè)閾值的文件,可以從該文件中提取若干個(gè)預(yù)設(shè)大小的文件片段,然后針對(duì)提取 出的若干個(gè)文件片段進(jìn)行散列值確定,得出該文件的散列值。例如,在從該文件中提取文件 片段時(shí),可以將該文件分割為預(yù)設(shè)大小的若干個(gè)文件塊,然后從分割出的文件塊中提取若 干個(gè)文件塊作為所述文件片段。
[0131] 其中,所述預(yù)設(shè)大小小于所述預(yù)設(shè)閾值,所述預(yù)設(shè)閾值可以根據(jù)實(shí)際情況進(jìn)行設(shè) 置,或者選取工程經(jīng)驗(yàn)值作為所述預(yù)設(shè)閾值,本公開不進(jìn)行特別限定。例如,本公開用于對(duì) 于視頻圖片文件進(jìn)行備份時(shí),所述預(yù)設(shè)閾值可以取工程經(jīng)驗(yàn)值4M。
[0132] 在從所述文件中提取文件片段時(shí),可以隨機(jī)提取,也可以均勻提取。隨機(jī)提取的文 件片段,在所述文件中可能分布不均勻,針對(duì)所述文件中分布不均勻的文件片段進(jìn)行散列 值確定時(shí),確定出的散列值與針對(duì)所述文件的散列值確定結(jié)果可能存在誤差。因此,為了使 針對(duì)所述各文件片段的散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果盡可能的保持 一致,可以從所述文件中均勻提取文件片段,例如,可以按照固定的間隔來提取文件片段, 從而保證提取出的文件片段在所述文件中均勻分布。
[0133] 另外,值得說明的是,從所述文件中提取文件片段時(shí),所提取的文件片段的數(shù)量, 不宜過多,也不宜過少;提取文件片段數(shù)過多,會(huì)導(dǎo)致在進(jìn)行散列值確定時(shí)對(duì)算法的頻繁調(diào) 用,從而無謂占用系統(tǒng)的資源;提取文件片段數(shù)過少時(shí),會(huì)影響最終離散值確定結(jié)果的準(zhǔn)確 度。因此,在實(shí)際應(yīng)用中,本領(lǐng)域技術(shù)人員可以在同時(shí)兼顧二者的前提下,合理設(shè)置提取文 件片段的數(shù)量,或者采用工程經(jīng)驗(yàn)值,在本公開中不進(jìn)行特別限定。
[0134] 通過該方案,可以有效減少在確定該文件散列值時(shí)的計(jì)算量,可以降低設(shè)備的耗 電量。
[0135] 在步驟102中,在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0136] 在本實(shí)施例中,當(dāng)查詢到在本地備份數(shù)據(jù)庫中未記錄該散列值,則將該散列值對(duì) 應(yīng)的文件上傳給備份服務(wù)器,并在將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器后,將確定 出的所述散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存。
[0137] 在步驟103中,當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,停止向備 份服務(wù)器備份所述文件;
[0138] 在本實(shí)施例中,當(dāng)查詢到在本地備份數(shù)據(jù)庫中已記錄了該散列值,表明該文件已 經(jīng)向備份服務(wù)器上傳過,于是不再向備份服務(wù)器備份該文件,以避免同一文件的重復(fù)備份。
[0139] 其中,為了防止向備份服務(wù)器上傳文件時(shí),由于上傳失敗而導(dǎo)致的誤操作,可以在 將所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器后,將該散列值在本地備份數(shù)據(jù)庫中標(biāo)記 為已上傳狀態(tài)。當(dāng)在本地備份數(shù)據(jù)庫中查詢到該散列值時(shí),在停止將該散列值對(duì)應(yīng)的文件 備份到備份服務(wù)器前,可以通過在本地備份數(shù)據(jù)庫中查詢?cè)撋⒘兄凳欠褚驯粯?biāo)記為已上傳 狀態(tài)來進(jìn)一步確定該文件是否已上傳成功;如果該散列值已被標(biāo)記為已上傳狀態(tài),表明該 散列值對(duì)應(yīng)的文件已上傳成功,則停止向備份服務(wù)器繼續(xù)備份該文件。相反,如果該散列值 并未標(biāo)記為已上傳狀態(tài),表明該文件很可能未上傳成功,可以向備份服務(wù)器查詢?cè)撐募?否上傳成功;如果備份服務(wù)器通告該散列值對(duì)應(yīng)的文件已上傳成功,則停止向備份服務(wù)器 繼續(xù)備份該文件;同樣的道理,如果備份服務(wù)器通告該散列值對(duì)應(yīng)的文件未上傳成功,則重 新向備份服務(wù)器備份該文件。
[0140] 由上述實(shí)施例可見,終端通過預(yù)設(shè)算法對(duì)文件進(jìn)行散列值確定,并在本地備份數(shù) 據(jù)庫查詢確定出的散列值,當(dāng)查詢到本地備份數(shù)據(jù)路中記錄了所述散列值時(shí),則停止向備 份服務(wù)器備份該文件,可以避免將不同文件路徑名中的相同文件重復(fù)備份。
[0141] 如圖2所示,圖2是根據(jù)一示例性實(shí)施例示出的另一種文件備份方法的流程圖,該 文件備份方法用于備份服務(wù)器中,包括以下步驟:
[0142] 在步驟201中,接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值;
[0143] 在步驟202中,在本地備份數(shù)據(jù)庫中查詢所述散列值;
[0144] 在本實(shí)施例中,備份服務(wù)器在收到終端上傳的文件后,根據(jù)預(yù)設(shè)算法確定終端上 傳的文件的散列值;并在該文件在本地備份成功后,通告所述終端,同時(shí)將確定出的散列值 在本地備份數(shù)據(jù)庫中進(jìn)行保存,以方便終端進(jìn)行查詢。
[0145] 其中,備份服務(wù)器上采用的所述預(yù)設(shè)算法與終端上采用的預(yù)設(shè)算法保持相同,可 以在對(duì)該文件進(jìn)行散列值確定前,判斷該文件的大小是否大于預(yù)設(shè)閾值,如果該文件的大 小不大于預(yù)設(shè)閾值,則直接對(duì)該文件進(jìn)行散列值確定;如果該文件的大小大于預(yù)設(shè)閾值時(shí), 此時(shí)直接對(duì)該文件進(jìn)行散列值確定時(shí)計(jì)算量可能偏大;計(jì)算量偏大,會(huì)造成設(shè)備耗電量增 力口。因此,對(duì)于大于預(yù)設(shè)閾值的文件,可以從該文件中提取若干個(gè)預(yù)設(shè)大小的文件片段,然 后針對(duì)提取出的若干個(gè)文件片段進(jìn)行散列值確定,得出該文件的散列值。例如,在從該文件 中提取文件片段時(shí),可以將該文件分割為預(yù)設(shè)大小的若干個(gè)文件塊,然后從分割出的文件 塊中提取若干個(gè)文件塊作為所述文件片段。
[0146] 其中,所述預(yù)設(shè)大小小于所述預(yù)設(shè)閾值,所述預(yù)設(shè)閾值可以根據(jù)實(shí)際情況進(jìn)行設(shè) 置,或者選取工程經(jīng)驗(yàn)值作為所述預(yù)設(shè)閾值,本公開不進(jìn)行特別限定。例如,本公開用于對(duì) 于視頻圖片文件進(jìn)行備份時(shí),所述預(yù)設(shè)閾值可以取工程經(jīng)驗(yàn)值4M。
[0147] 在從所述文件中提取文件片段時(shí),可以隨機(jī)提取,也可以均勻提取。隨機(jī)提取的文 件片段,在所述文件中可能分布不均勻,針對(duì)所述文件中分布不均勻的文件片段進(jìn)行散列 值確定時(shí),確定出的散列值與針對(duì)所述文件的散列值確定結(jié)果可能存在誤差。因此,為了使 針對(duì)所述各文件片段的散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果盡可能的保持 一致,可以從所述文件中均勻提取文件片段,例如,可以按照固定的間隔來提取文件片段, 從而保證提取出的文件片段在所述文件中均勻分布。
[0148] 另外,值得說明的是,從所述文件中提取文件片段時(shí),所提取的文件片段的數(shù)量, 不宜過多,也不宜過少;提取文件片段數(shù)過多,會(huì)導(dǎo)致在進(jìn)行散列值確定時(shí)對(duì)算法的頻繁調(diào) 用,從而無謂占用系統(tǒng)的資源;提取文件片段數(shù)過少時(shí),會(huì)影響最終離散值確定結(jié)果的準(zhǔn)確 度。因此,在實(shí)際應(yīng)用中,本領(lǐng)域技術(shù)人員可以在同時(shí)兼顧二者的前提下,合理設(shè)置提取文 件片段的數(shù)量,或者采用工程經(jīng)驗(yàn)值,在本公開中不進(jìn)行特別限定。
[0149] 通過該方案,可以有效減少在確定該文件散列值時(shí)的計(jì)算量,可以降低設(shè)備的耗 電量。
[0150] 在步驟203中,當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述 終端通告該散列值對(duì)應(yīng)的文件已上傳成功。
[0151] 在本實(shí)施例中,當(dāng)查詢到本地備份數(shù)據(jù)中已記錄了確定出的散列值,表明終端此 次向備份服務(wù)器查詢的文件,之前已成功上傳到了本地,于是備份服務(wù)器可以向終端發(fā)出 通告消息,通告終端該文件已經(jīng)上傳成功,以使得終端在收到該通告消息后,停止將該文件 繼續(xù)備份到備份服務(wù)器。同樣的道理,當(dāng)查詢到本地備份數(shù)據(jù)中并未記錄確定出的散列值, 備份服務(wù)器也可以通過向終端發(fā)出通告消息,通告終端該文件并未上傳成功,以使得終端 在收到該通告消息后,將該文件重新備份到備份服務(wù)器。
[0152] 由上述實(shí)施例可見,備份服務(wù)器通過在本地備份數(shù)據(jù)庫中查詢從終端接收到的查 詢請(qǐng)求中攜帶的散列值,并在本地備份數(shù)據(jù)庫中已記錄了所述散列值時(shí),向終端通告該文 件對(duì)應(yīng)的文件已上傳成功,可以有效避免終端由于文件上傳不成功而導(dǎo)致的誤操作,將不 同文件路徑名中的相同文件向備份服務(wù)器進(jìn)行重復(fù)備份。
[0153] 如圖3所示,圖3是根據(jù)一示例性實(shí)施例示出的另一種文件備份方法的流程圖,包 括以下步驟:
[0154] 在步驟301中,終端根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0155] 在本實(shí)施例中,所述預(yù)設(shè)算法可以是在對(duì)該文件進(jìn)行散列值確定前,可以首先判 斷該文件的大小是否大于預(yù)設(shè)閾值,如果該文件的大小不大于預(yù)設(shè)閾值,則直接對(duì)該文件 進(jìn)行散列值確定;如果該文件的大小大于預(yù)設(shè)閾值時(shí),此時(shí)直接對(duì)該文件進(jìn)行散列值確定 時(shí),計(jì)算量可能偏大;計(jì)算量偏大,會(huì)造成設(shè)備耗電量增加。因此,對(duì)于大于預(yù)設(shè)閾值的文 件,可以從該文件中提取若干個(gè)預(yù)設(shè)大小的文件片段,然后針對(duì)提取出的若干個(gè)文件片段 進(jìn)行散列值確定,得出該文件的散列值。例如,在從該文件中提取文件片段時(shí),可以將該文 件分割為預(yù)設(shè)大小的若干個(gè)文件塊,然后從分割出的文件塊中提取若干個(gè)文件塊作為所述 文件片段。
[0156] 其中,所述預(yù)設(shè)大小小于所述預(yù)設(shè)閾值,所述預(yù)設(shè)閾值可以根據(jù)實(shí)際情況進(jìn)行設(shè) 置,或者選取工程經(jīng)驗(yàn)值作為所述預(yù)設(shè)閾值,本公開不進(jìn)行特別限定。例如,本公開用于對(duì) 于視頻圖片文件進(jìn)行備份時(shí),所述預(yù)設(shè)閾值可以取工程經(jīng)驗(yàn)值4M。
[0157] 在從所述文件中提取文件片段時(shí),可以隨機(jī)提取,也可以均勻提取。隨機(jī)提取的文 件片段,在所述文件中可能分布不均勻,針對(duì)所述文件中分布不均勻的文件片段進(jìn)行散列 值確定時(shí),確定出的散列值與針對(duì)所述文件的散列值確定結(jié)果可能存在誤差。因此,為了使 針對(duì)所述各文件片段的散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果盡可能的保持 一致,可以從所述文件中均勻提取文件片段,例如,可以按照固定的間隔來提取文件片段, 從而保證提取出的文件片段在所述文件中均勻分布。
[0158] 另外,值得說明的是,從所述文件中提取文件片段時(shí),所提取的文件片段的數(shù)量, 不宜過多,也不宜過少;提取文件片段數(shù)過多,會(huì)導(dǎo)致在進(jìn)行散列值確定時(shí)對(duì)算法的頻繁調(diào) 用,從而無謂占用系統(tǒng)的資源;提取文件片段數(shù)過少時(shí),會(huì)影響最終離散值確定結(jié)果的準(zhǔn)確 度。因此,在實(shí)際應(yīng)用中,本領(lǐng)域技術(shù)人員可以在同時(shí)兼顧二者的前提下,合理設(shè)置提取文 件片段的數(shù)量,或者采用工程經(jīng)驗(yàn)值,在本公開中不進(jìn)行特別限定。
[0159] 例如,假設(shè)終端需要對(duì)本地一段10M大小的視頻文件進(jìn)行備份,所述預(yù)設(shè)閾值T取 工程經(jīng)驗(yàn)值4M;此時(shí)該視頻文件的大小大于所述預(yù)設(shè)閾值,于是可以在該視頻文件中同樣 按照工程經(jīng)驗(yàn)值提取4段預(yù)設(shè)大小為1M的文件片段。
[0160] 進(jìn)一步地,首先將該視頻文件劃分為4個(gè)文件區(qū)間,每個(gè)文件區(qū)間2. 5M,然后在每 個(gè)文件區(qū)間中提取1M大小的文件片段。同時(shí),為了保證文件片段在該視頻文件中均勻分 布,可以為文件片段之間設(shè)置固定間隔。比如,可以按照以下區(qū)間函數(shù)來提取文件片段:
[0161] 【KP,KP+1】
[0162] 上述區(qū)間函數(shù)中,Ρ為每一個(gè)文件區(qū)間的大小,Κ取值為(0, 1,…,T-l),Τ為所述 預(yù)設(shè)閾值。在本實(shí)施例中,Ρ值為2.5, Κ取值為(0,1,2, 3),按照上述區(qū)間函數(shù),如圖4所 示,可以從該視頻文件提取出【0, 1Μ】、【2· 5Μ,3· 5Μ】、【5Μ,6Μ】、【7· 5Μ,8· 5Μ】四個(gè)固定間隔 為1. 5Μ,大小為1Μ的文件片段。
[0163] 通過該方案,可以有效減少在確定該文件散列值時(shí)的計(jì)算量,可以降低設(shè)備的耗 電量。
[0164] 在步驟302中,終端在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0165] 在本實(shí)施例中,當(dāng)終端查詢到在本地備份數(shù)據(jù)庫中未記錄該散列值,則將該散列 值對(duì)應(yīng)的文件上傳到備份服務(wù)器,并在將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器后,將 確定出的所述散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存。同時(shí),當(dāng)終端獲取到所述散列值對(duì)應(yīng) 的文件成功上傳到備份服務(wù)器后,還可以將所述散列值在本地備份數(shù)據(jù)庫中標(biāo)記為已上傳 狀態(tài)。其中,終端獲取所述散列值對(duì)應(yīng)的文件是否成功上傳到備份服務(wù)器,可以是在該文件 成功上傳到備份服務(wù)器后,接收由備份服務(wù)器向終端發(fā)送的通告消息而獲取到的。
[0166] 在步驟303中,當(dāng)終端查詢到本地備份數(shù)據(jù)庫中已記錄了所述散列值,繼續(xù)在本 地備份數(shù)據(jù)庫中查找該散列值是否已被標(biāo)記為已上傳狀態(tài);
[0167] 在步驟304中,當(dāng)終端查詢到所述散列值未被標(biāo)記為已上傳狀態(tài),向備份服務(wù)器 查詢所述散列值對(duì)應(yīng)的文件是否已上傳成功;
[0168] 在本實(shí)施例中,當(dāng)終端查詢到所述散列值被標(biāo)記為已上傳狀態(tài),則停止向備份服 務(wù)器繼續(xù)備份該文件;其中,終端向備份服務(wù)器查詢所述散列值對(duì)應(yīng)的文件是否已上傳成 功,可以是通過向備份服務(wù)器發(fā)送一個(gè)攜帶該散列值的查詢請(qǐng)求來實(shí)現(xiàn)。
[0169] 在步驟305中,備份服務(wù)器在本地備份數(shù)據(jù)庫中查詢所述散列值;
[0170] 在本實(shí)施例中,當(dāng)備份服務(wù)器收到終端上傳的文件時(shí),首先根據(jù)預(yù)設(shè)算法確定該 文件的散列值,并在該文件在本地備份成功后,將確定出的散列值在本地備份數(shù)據(jù)庫中進(jìn) 行保存,以方便終端進(jìn)行查詢。其中,備份服務(wù)器在確定文件散列值時(shí)采用的預(yù)設(shè)算法,與 終端確定文件散列值時(shí)采用的算法一致,本實(shí)施不再贅述。
[0171] 在步驟306中,當(dāng)備份服務(wù)器查詢到本地備份數(shù)據(jù)庫中已記錄了所述散列值,則 向所述終端通告該散列值對(duì)應(yīng)的文件已上傳成功。
[0172] 在本實(shí)施例中,當(dāng)備份服務(wù)器查詢到本地備份數(shù)據(jù)庫中已記錄了所述散列值,可 以向終端發(fā)送一個(gè)通告消息通告給終端。
[0173] 在步驟307中,終端在本地備份數(shù)據(jù)庫中將所述散列值標(biāo)記為已上傳狀態(tài),停止 向備份服務(wù)器備份該文件;
[0174] 在本實(shí)施例中,當(dāng)終端通過接收備份服務(wù)器發(fā)出的通告消息而獲取該所述散列值 對(duì)應(yīng)的文件已成功上傳后,將所述散列值標(biāo)記為已上傳狀態(tài),并停止向備份服務(wù)器繼續(xù)備 份該文件。等同的,當(dāng)終端向備份服務(wù)器查詢到所述散列值對(duì)應(yīng)的文件未上傳成功時(shí),則向 備份服務(wù)器備份該文件,并在該文件成功上傳到備份服務(wù)器后,將該文件對(duì)應(yīng)的散列值在 本地備份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài)。
[0175] 由上述實(shí)施例可見,本公開通過預(yù)設(shè)算法對(duì)所述文件進(jìn)行散列值確定,并在終端 的本地備份數(shù)據(jù)庫查詢確定出的散列值,當(dāng)查詢到本地備份數(shù)據(jù)路中記錄了所述散列值 時(shí),停止向備份服務(wù)器備份該文件,可以避免將不同文件路徑名中的相同文件重復(fù)備份。同 時(shí),本公開通過對(duì)相關(guān)技術(shù)中確定散列值的算法進(jìn)行改進(jìn),從目標(biāo)文件中提取若干均勻分 布且較小的文件片段,針對(duì)提取出的若干文件片段進(jìn)行散列值確定,有效的減少在確定該 文件散列值時(shí)的計(jì)算量,從而可以降低設(shè)備的耗電量。
[0176] 在本公開另一個(gè)可選的實(shí)施例中,結(jié)合上述圖1或圖3示出的實(shí)施例,還可以在終 端的本地?cái)?shù)據(jù)庫中記錄文件的屬性信息。例如,所述屬性信息可以包括最后更改時(shí)間和文 件大小等。當(dāng)本地?cái)?shù)據(jù)庫中記錄的文件的屬性信息,與文件實(shí)際的屬性信息不相同時(shí),表明 該文件被更改過或者寫入了新的內(nèi)容,因此需要重新確定該文件的散列值,對(duì)本地?cái)?shù)據(jù)庫 中記錄的散列值進(jìn)行更新,并同時(shí)更新該文件的屬性信息。當(dāng)然,如果本地?cái)?shù)據(jù)庫中記錄的 文件的屬性信息與文件實(shí)際的屬性信息相同,那么不需要更新本地備份數(shù)據(jù)庫,可以直接 使用本地備份數(shù)據(jù)庫中的緩存值。
[0177] 以上實(shí)施例中,通過在本地?cái)?shù)據(jù)庫中記錄文件的最后更改時(shí)間和文件大小等屬性 信息,并在所述文件的屬性信息與本地記錄的屬性信息不同時(shí),更新本地備份數(shù)據(jù)庫的屬 性信息以及記錄的該文件的散列值,可以有效避免對(duì)文件進(jìn)行備份時(shí)的誤判操作。
[0178] 與前述文件備份方法實(shí)施例相對(duì)應(yīng),本公開還提供了文件備份裝置的實(shí)施例。
[0179] 圖5是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的示意框圖,該裝置可以應(yīng) 用在終端內(nèi)。
[0180] 如圖5所不,根據(jù)一不例性實(shí)施例不出的一種文件備份裝置500,包括:第一確定 模塊501、第一查詢模塊502、處理模塊503 ;其中:
[0181] 所述第一確定模塊501被配置為,根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0182] 所述第一查詢模塊502被配置為,在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0183] 所述處理模塊503被配置為,在查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列 值,不再向備份服務(wù)器備份所述文件。
[0184] 上述實(shí)施例中,通過預(yù)設(shè)算法對(duì)所述文件進(jìn)行散列值確定,并在本地備份數(shù)據(jù)庫 查詢確定出的散列值,當(dāng)查詢到本地備份數(shù)據(jù)路中記錄了所述散列值時(shí),停止向備份服務(wù) 器備份該文件,可以避免將不同文件路徑名中的相同文件重復(fù)備份。
[0185] 請(qǐng)參見圖6,圖6是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的示 意框圖,該實(shí)施例在前述圖5所示實(shí)施例的基礎(chǔ)上,所述第一確定模塊501可以包括第一判 斷子模塊501A、第一確定子模塊501B和第二確定子模塊501C ;其中:
[0186] 所述第一判斷子模塊501A被配置為,判斷所述文件的大小是否大于或等于預(yù)設(shè) 閾值;
[0187] 所述第一確定子模塊501B被配置為,在判斷出所述文件的大小或所述預(yù)設(shè)閾值 時(shí),在所述文件中提取若干個(gè)文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所 述文件的散列值;
[0188] 所述第二確定子模塊502B被配置為,在判斷出所述文件的大小小于所述預(yù)設(shè)閾 值時(shí),針對(duì)所述文件進(jìn)行散列值確定得出散列值。
[0189] 上述實(shí)施例中,根據(jù)預(yù)設(shè)算法確定所述文件的散列值時(shí),通過對(duì)所述文件進(jìn)行閾 值化處理,在所述文件大小大于預(yù)設(shè)閾值時(shí),從該文件中提取若干個(gè)文件片段,針對(duì)所述若 干個(gè)文件片段進(jìn)行散列值確定,得到所述文件的散列值,可以在所述文件過大時(shí),有效的減 少在確定該文件散列值時(shí)的確定量,降低設(shè)備的耗電量。
[0190] 請(qǐng)參見圖7,圖7是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的示 意框圖,該實(shí)施例在前述圖6所示實(shí)施例的基礎(chǔ)上,所述第一確定子模塊501B可以包括第 一提取子模塊501B1 ;
[0191] 所述第一提取子模塊501B1被配置為,在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的 文件片段;其中,所述預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
[0192] 上述實(shí)施例中,通過在所述文件中提取均勻分布,并且預(yù)設(shè)大小小于所述預(yù)設(shè)閾 值的文件片段,可以在減少確定散列值時(shí)的計(jì)算量的基礎(chǔ)上,使得針對(duì)所述各文件片段的 散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果盡可能保持一致。
[0193] 請(qǐng)參見圖8,圖8是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的示 意框圖,該實(shí)施例在前述圖5所示實(shí)施例的基礎(chǔ)上,所述裝置500還可以包括上傳模塊504 和第一保存模塊505 ;其中:
[0194] 所述上傳模塊504被配置為,在查詢到所述本地備份數(shù)據(jù)庫中未記錄所述散列值 時(shí),將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器;
[0195] 所述第一保存模塊505被配置為,將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器 后,將所述散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存。
[0196] 上述實(shí)施例中,通過在將所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器后,將所 述散列值在本地備份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài),使得在本地備份數(shù)據(jù)庫中進(jìn)行散列值查 詢時(shí),可以獲知文件的上傳狀態(tài)。
[0197] 需要說明的是,上述圖8所示的裝置實(shí)施例中示出的上傳模塊504和第一保存模 塊505的結(jié)構(gòu),也可以包含在前述圖6至圖7的裝置實(shí)施例中,對(duì)此本公開不進(jìn)行限制。
[0198] 請(qǐng)參見圖9,圖9是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的 示意框圖,該實(shí)施例在前述圖8所示實(shí)施例的基礎(chǔ)上,所述裝置500還可以包括標(biāo)記模塊 506 ;
[0199] 所述標(biāo)記模塊506被配置為,在所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器 后,將所述散列值在所述本地備份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài)。
[0200] 在上述實(shí)施例中,通過在將所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器后,將 所述散列值在本地備份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài),使得在本地備份數(shù)據(jù)庫中進(jìn)行散列值 查詢時(shí),可以獲知文件的上傳狀態(tài)。
[0201] 需要說明的是,上述圖9所示的裝置實(shí)施例中示出的上傳模塊504和第一保存模 塊505的結(jié)構(gòu),也可以包含在前述圖6至于圖8的裝置實(shí)施例中,對(duì)此本公開不進(jìn)行限制。
[0202] 請(qǐng)參見圖10,圖10是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的 示意框圖,該實(shí)施例在前述圖5所示實(shí)施例的基礎(chǔ)上,所述處理模塊503還可以包括第一查 詢子模塊503A、處理子模塊503B、第二查詢子模塊503C、第一標(biāo)記子模塊503D和備份子模 塊503E ;其中:
[0203] 所述第一查詢子模塊503A被配置為,在停止向備份服務(wù)器備份所述文件之前,在 本地備份數(shù)據(jù)庫中查詢所述散列值是否被標(biāo)記為已上傳狀態(tài);
[0204] 所述處理子模塊503B被配置為,在查詢到所述散列值被標(biāo)記為已上傳狀態(tài),不再 向備份服務(wù)器備份所述文件;
[0205] 所述第二查詢子模塊503C被配置為,在查詢到所述散列值未被標(biāo)記為已上傳狀 態(tài),向備份服務(wù)器查詢所述散列值對(duì)應(yīng)的文件是否已上傳成功;
[0206] 所述第一標(biāo)記子模塊503D被配置為,在查詢到所述散列值對(duì)應(yīng)的文件已上傳成 功,在本地備份數(shù)據(jù)庫中將所述散列值標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器備份該文 件;
[0207] 所述備份子模塊503E被配置為,在查詢到所述散列值對(duì)應(yīng)的文件未上傳成功,向 備份服務(wù)器備份該文件;
[0208] 上述實(shí)施例中,通過在停止向備份服務(wù)器備份所述文件之前,在本地備份數(shù)據(jù)庫 中查詢所述散列值是否被標(biāo)記為已上傳狀態(tài),如果已標(biāo)記為已上傳狀態(tài)則停止向備份服務(wù) 器備份該文件;如果未標(biāo)記為已上傳狀態(tài),進(jìn)一步向備份服務(wù)器確定該文件是否上傳成功, 當(dāng)確定出該文件上傳成功,停止向備份服務(wù)器備份該文件;當(dāng)確定出該文件未上傳成功,則 向備份服務(wù)器備份該文件。通過該方案,可以有效避免由于文件上傳不成功而導(dǎo)致的誤操 作。
[0209] 需要說明的是,上述圖10所示的裝置實(shí)施例中示出的第一查詢子模塊503A、處理 子模塊503B、第二查詢子模塊503C、第一標(biāo)記子模塊503D和備份子模塊503E的結(jié)構(gòu),也可 以包含在前述圖6至于圖9的裝置實(shí)施例中,對(duì)此本公開不進(jìn)行限制。
[0210] 請(qǐng)參見圖11,圖11是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的 示意框圖,該實(shí)施例在前述圖5所示實(shí)施例的基礎(chǔ)上,所述裝置500還包括記錄模塊506和 更新模塊507 ;其中:
[0211] 所述記錄模塊506被配置為,在所述本地備份數(shù)據(jù)庫中記錄所述文件的屬性信 息,所述屬性信息包括最后更改時(shí)間和文件大??;
[0212] 所述更新模塊507被配置為,在所述文件的屬性信息與所述本地備份數(shù)據(jù)庫中記 錄的屬性信息不同時(shí),更新所述本地備份數(shù)據(jù)庫中記錄的該文件的散列值和屬性信息。
[0213] 上述實(shí)施例中,通過在本地?cái)?shù)據(jù)庫中記錄文件的最后更改時(shí)間和文件大小等屬性 信息,并在所述文件的屬性信息與本地記錄的屬性信息不同時(shí),更新本地備份數(shù)據(jù)庫的屬 性信息以及記錄的該文件的散列值,可以有效避免對(duì)文件進(jìn)行備份時(shí)的誤判操作。
[0214] 需要說明的是,上述圖11所示的裝置實(shí)施例中示出的記錄模塊506和更新模塊 507的結(jié)構(gòu),也可以包含在前述圖6至于圖10的裝置實(shí)施例中,對(duì)此本公開不進(jìn)行限制。
[0215] 圖12是根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的示意框圖,該裝置可 以應(yīng)用在備份服務(wù)器上。
[0216] 如圖12所示,根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置1200,包括:接收 模塊1201、第二查詢模塊1202、通告模塊1203 ;其中:
[0217] 所述接收模塊1201被配置為,接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散 列值;
[0218] 所述第二查詢模塊1202被配置為,在本地備份數(shù)據(jù)庫中查詢所述散列值;
[0219] 所述通告模塊1203被配置為,在查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散 列值,則向所述終端通告該散列值對(duì)應(yīng)的文件已上傳成功。
[0220] 上述實(shí)施例中,通過在本地備份數(shù)據(jù)庫中查詢從終端接收到的查詢請(qǐng)求中攜帶的 散列值,并在本地備份數(shù)據(jù)庫中已記錄了所述散列值時(shí),向終端通告該文件對(duì)應(yīng)的文件已 上傳成功,可以有效避免終端由于文件上傳不成功而導(dǎo)致的誤操作,將不同文件路徑名中 的相同文件向備份服務(wù)器進(jìn)行重復(fù)備份。
[0221] 請(qǐng)參見圖13,圖13是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的 示意框圖,該實(shí)施例在前述圖12所示實(shí)施例的基礎(chǔ)上,所述裝置1200還包括第二確定模塊 1204和第二保存模塊1205 ;其中:
[0222] 所述第二確定模塊1204被配置為,根據(jù)預(yù)設(shè)算法確定終端上傳的文件的散列值;
[0223] 所述第二保存模塊1205被配置為,用于在所述文件在本地備份成功后,將確定出 的散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存。
[0224] 上述實(shí)施例中,通過預(yù)設(shè)算法確定終端上傳的文件的散列值,并在該文件在本地 備份成功后,將確定出的散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存,使得備份服務(wù)器在本地備 份數(shù)據(jù)庫中再次查找到該散列值時(shí),可以將該散列值對(duì)應(yīng)的文件的已上傳狀態(tài)通告給對(duì)應(yīng) 的終端。
[0225] 請(qǐng)參見圖14,圖14是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的 示意框圖,該實(shí)施例在前述圖12所示實(shí)施例的基礎(chǔ)上,所述第二確定模塊1204包括第二判 斷子模塊1204A、第三確定子模塊1204B和第四確定子模塊1204C ;其中:
[0226] 所述第二判斷子模塊1204A被配置為,判斷所述文件的大小是否大于或等于預(yù)設(shè) 閾值;
[0227] 所述第三確定子模塊1204B被配置為,在判斷出所述文件的大小大于或等于所述 預(yù)設(shè)閾值時(shí),在所述文件中提取若干個(gè)文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確 定,得出所述文件的散列值;
[0228] 所述第四確定子模塊1204C被配置為,在判斷出所述文件的大小小于所述預(yù)設(shè)閾 值時(shí),對(duì)所述文件進(jìn)行散列值確定得出散列值。
[0229] 上述實(shí)施例中,根據(jù)預(yù)設(shè)算法確定所述文件的散列值時(shí),通過對(duì)所述文件進(jìn)行閾 值化處理,在所述文件大小大于預(yù)設(shè)閾值時(shí),從該文件中提取若干個(gè)文件片段,針對(duì)所述若 干個(gè)文件片段進(jìn)行散列值確定,得到所述文件的散列值,可以在所述文件過大時(shí),有效的減 少在確定該文件散列值時(shí)的確定量,降低設(shè)備的耗電量。同時(shí),通過在所述文件中提取均勻 分布,并且預(yù)設(shè)大小小于所述預(yù)設(shè)閾值的文件片段,可以在減少散列值確定量的基礎(chǔ)上,使 得針對(duì)所述各文件片段的散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果保持一致。
[0230] 請(qǐng)參見圖15,圖15是本公開根據(jù)一示例性實(shí)施例示出的另一種文件備份裝置的 示意框圖,該實(shí)施例在前述圖14所示實(shí)施例的基礎(chǔ)上,所述第三確定子模塊1204B可以包 括第二提取子模塊1204B 1 ;
[0231] 所述第二提取子模塊1204B1被配置為,在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小 的文件片段;其中,所述預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
[0232] 上述實(shí)施例中,通過在所述文件中提取均勻分布,并且預(yù)設(shè)大小小于所述預(yù)設(shè)閾 值的文件片段,可以在減少確定散列值時(shí)的計(jì)算量的基礎(chǔ)上,使得針對(duì)所述各文件片段的 散列值確定結(jié)果與針對(duì)所述文件的散列值確定結(jié)果盡可能保持一致。
[0233] 相應(yīng)的,本公開還提供一種文件備份裝置,所述裝置包括有存儲(chǔ)器,以及一個(gè)或者 一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)或者一 個(gè)以上處理器執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:
[0234] 根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0235] 在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0236] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,不再向備份服務(wù)器備份所 述文件。
[0237] 圖16是根據(jù)一示例性實(shí)施例示出的一種文件備份裝置的結(jié)構(gòu)示意圖。
[0238] 如圖16所示,根據(jù)一示例性實(shí)施例示出的一種文件備份裝置1600,該裝置1600可 以是移動(dòng)電話,計(jì)算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺(tái),平板設(shè)備,醫(yī)療設(shè)備,健 身設(shè)備,個(gè)人數(shù)字助理等。
[0239] 參照?qǐng)D16,裝置1600可以包括以下一個(gè)或多個(gè)組件:處理組件1601,存儲(chǔ)器 1602,電源組件1603,多媒體組件1604,音頻組件1605,輸入/輸出(I/O)的接口 1606,傳 感器組件1607,以及通信組件1608。
[0240] 處理組件1601通??刂蒲b置1600的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信, 相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理組件1601可以包括一個(gè)或多個(gè)處理器1609來執(zhí) 行指令,以完成上述的方法的全部或部分步驟。此外,處理組件1601可以包括一個(gè)或多個(gè) 模塊,便于處理組件1601和其他組件之間的交互。例如,處理部件1601可以包括多媒體模 塊,以方便多媒體組件1604和處理組件1601之間的交互。
[0241] 存儲(chǔ)器1602被配置為存儲(chǔ)各種類型的數(shù)據(jù)以支持在裝置1600的操作。這些數(shù)據(jù) 的示例包括用于在裝置1600上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù) 據(jù),消息,圖片,視頻等。存儲(chǔ)器1602可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它 們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),電可擦除可編程只讀存儲(chǔ)器(EEPR0M),可 擦除可編程只讀存儲(chǔ)器(EPROM),可編程只讀存儲(chǔ)器(PR0M),只讀存儲(chǔ)器(R0M),磁存儲(chǔ)器, 快閃存儲(chǔ)器,磁盤或光盤。
[0242] 電源組件1603為裝置1600的各種組件提供電力。電源組件1603可以包括電源 管理系統(tǒng),一個(gè)或多個(gè)電源,及其他與為裝置1600生成、管理和分配電力相關(guān)聯(lián)的組件。
[0243] 多媒體組件1604包括在所述裝置1600和用戶之間的提供一個(gè)輸出接口的屏幕。 在一些實(shí)施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面 板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來自用戶的輸入信號(hào)。觸摸面板包括一個(gè)或多個(gè)觸摸 傳感器以感測觸摸、滑動(dòng)和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動(dòng) 動(dòng)作的邊界,而且還檢測與所述觸摸或滑動(dòng)操作相關(guān)的持續(xù)時(shí)間和壓力。在一些實(shí)施例中, 多媒體組件1604包括一個(gè)前置攝像頭和/或后置攝像頭。當(dāng)裝置1600處于操作模式,如 拍攝模式或視頻模式時(shí),前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個(gè) 前置攝像頭和后置攝像頭可以是一個(gè)固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
[0244] 音頻組件1605被配置為輸出和/或輸入音頻信號(hào)。例如,音頻組件1605包括一 個(gè)麥克風(fēng)(MIC),當(dāng)裝置1600處于操作模式,如呼叫模式、記錄模式和語音識(shí)別模式時(shí),麥 克風(fēng)被配置為接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器1602或 經(jīng)由通信組件1608發(fā)送。在一些實(shí)施例中,音頻組件1605還包括一個(gè)揚(yáng)聲器,用于輸出音 頻信號(hào)。
[0245] I/O接口 1602為處理組件1601和外圍接口模塊之間提供接口,上述外圍接口模塊 可以是鍵盤,點(diǎn)擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動(dòng)按鈕和 鎖定按鈕。
[0246] 傳感器組件1607包括一個(gè)或多個(gè)傳感器,用于為裝置1600提供各個(gè)方面的狀態(tài) 評(píng)估。例如,傳感器組件1607可以檢測到裝置1600的打開/關(guān)閉狀態(tài),組件的相對(duì)定位, 例如所述組件為裝置1600的顯示器和小鍵盤,傳感器組件1607還可以檢測裝置1600或裝 置1600 -個(gè)組件的位置改變,用戶與裝置1600接觸的存在或不存在,裝置1600方位或加 速/減速和裝置1600的溫度變化。傳感器組件1607可以包括接近傳感器,被配置用來在 沒有任何的物理接觸時(shí)檢測附近物體的存在。傳感器組件1607還可以包括光傳感器,如 CMOS或C⑶圖像傳感器,用于在成像應(yīng)用中使用。在一些實(shí)施例中,該傳感器組件1607還 可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
[0247] 通信組件1608被配置為便于裝置1600和其他設(shè)備之間有線或無線方式的通信。 裝置1600可以接入基于通信標(biāo)準(zhǔn)的無線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個(gè)示 例性實(shí)施例中,通信組件1608經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號(hào)或廣 播相關(guān)信息。在一個(gè)示例性實(shí)施例中,所述通信組件1608還包括近場通信(NFC)模塊,以促 進(jìn)短程通信。例如,在NFC模塊可基于射頻識(shí)別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(huì)(IrDA)技術(shù), 超寬帶(UWB)技術(shù),藍(lán)牙(BT)技術(shù)和其他技術(shù)來實(shí)現(xiàn)。
[0248] 在示例性實(shí)施例中,裝置1600可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(ASIC)、數(shù)字 信號(hào)處理器(DSP)、數(shù)字信號(hào)處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列 (FPGA)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。
[0249] 在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性確定機(jī)可讀存儲(chǔ)介質(zhì),例 如包括指令的存儲(chǔ)器1602,上述指令可由裝置1600的處理器1609執(zhí)行以完成上述方法。例 如,所述非臨時(shí)性確定機(jī)可讀存儲(chǔ)介質(zhì)可以是ROM、隨機(jī)存取存儲(chǔ)器(RAM)、CD-ROM、磁帶、 軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。
[0250] -種非臨時(shí)性確定機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由終端設(shè)備的處理 器執(zhí)行時(shí),使得終端能夠執(zhí)行一種安全控制方法,包括:
[0251] 根據(jù)預(yù)設(shè)算法確定文件的散列值;
[0252] 在本地備份數(shù)據(jù)庫中查詢確定出的散列值;
[0253] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,停止向備份服務(wù)器備份所 述文件。
[0254] 相應(yīng)的,本公開還提供另一種文件備份裝置,所述裝置包括有存儲(chǔ)器,以及一個(gè)或 者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)或者 一個(gè)以上處理器執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:
[0255] 接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值;
[0256] 在本地備份數(shù)據(jù)庫中查詢所述散列值;
[0257] 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述終端通告該散列 值對(duì)應(yīng)的文件已上傳成功。
[0258] 圖17是根據(jù)一示例性實(shí)施例示出的一種用于文件備份的裝置1700的框圖。例 如,裝置1700可以被提供為一服務(wù)器。參照?qǐng)D17,裝置1700包括處理組件1722,其進(jìn)一步 包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器1732所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理部件 1722的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器1732中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以 上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理組件1722被配置為執(zhí)行指令,以執(zhí)行上述 文件備份方法。
[0259] 裝置1700還可以包括一個(gè)電源組件1726被配置為執(zhí)行裝置1700的電源管理,一 個(gè)有線或無線網(wǎng)絡(luò)接口 1750被配置為將裝置1700連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(I/O)接 口 1758。裝置1700可以操作基于存儲(chǔ)在存儲(chǔ)器1732的操作系統(tǒng),例如Windows ServerTM, Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM 或類似。
[0260] 本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本公開的其 它實(shí)施方案。本申請(qǐng)旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或 者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本【技術(shù)領(lǐng)域】中的公知常識(shí) 或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本公開的真正范圍和精神由下面的 權(quán)利要求指出。
[0261] 應(yīng)當(dāng)理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并 且可以在不脫離其范圍進(jìn)行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。
【權(quán)利要求】
1. 一種文件備份方法,其特征在于,所述方法包括: 根據(jù)預(yù)設(shè)算法確定文件的散列值; 在本地備份數(shù)據(jù)庫中查詢確定出的散列值; 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄所述散列值,不再向備份服務(wù)器備份所述文 件。
2. 如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)算法確定文件的散列值包括: 判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值; 當(dāng)判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在所述文件中提取若干個(gè)文件 片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文件的散列值; 當(dāng)判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),針對(duì)所述文件進(jìn)行散列值確定得出散 列值。
3. 如權(quán)利要求2所述的方法,其特征在于,所述在所述文件中提取若干個(gè)文件片段包 括: 在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段; 其中,所述預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
4. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中未記錄所述散列值,將所述散列值對(duì)應(yīng)的文件上傳給 備份服務(wù)器; 在將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器后,將所述散列值在本地備份數(shù)據(jù)庫中 進(jìn)行保存。
5. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括 當(dāng)所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器后,將所述散列值在所述本地備份數(shù) 據(jù)庫中標(biāo)記為已上傳狀態(tài)。
6. 如權(quán)利要求1所述的方法,其特征在于,所述不再向備份服務(wù)器備份所述文件之前, 所述方法還包括: 在本地備份數(shù)據(jù)庫中查詢所述散列值是否被標(biāo)記為已上傳狀態(tài); 當(dāng)查詢到所述散列值被標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器備份所述文件; 當(dāng)查詢到所述散列值未被標(biāo)記為已上傳狀態(tài),向備份服務(wù)器查詢所述散列值對(duì)應(yīng)的文 件是否已上傳成功;當(dāng)查詢到所述散列值對(duì)應(yīng)的文件已上傳成功,在本地備份數(shù)據(jù)庫中將 所述散列值標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器備份該文件;當(dāng)查詢到所述散列值對(duì)應(yīng) 的文件未上傳成功,向備份服務(wù)器備份該文件。
7. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在所述本地備份數(shù)據(jù)庫中記錄所述文件的屬性信息,所述屬性信息包括最后更改時(shí)間 和文件大??; 當(dāng)所述文件的屬性信息與所述本地備份數(shù)據(jù)庫中記錄的屬性信息不同,更新所述本地 備份數(shù)據(jù)庫中記錄的該文件的散列值和屬性信息。
8. -種文件備份方法,其特征在于,所述方法包括: 接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值; 在本地備份數(shù)據(jù)庫中查詢所述散列值; 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述終端通告該散列值對(duì) 應(yīng)的文件已上傳成功。
9. 如權(quán)利要求8所述的方法,其特征在于,所述方法還包括: 根據(jù)預(yù)設(shè)算法確定終端上傳的文件的散列值; 當(dāng)所述文件在本地備份成功后,將確定出的散列值在本地備份數(shù)據(jù)庫中進(jìn)行保存。
10. 如權(quán)利要求9所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)算法確定終端上傳的文件的 散列值包括: 判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值; 當(dāng)判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在所述文件中提取若干個(gè)文件 片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文件的散列值; 當(dāng)判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),對(duì)所述文件進(jìn)行散列值確定得出散列 值。
11. 如權(quán)利要求10所述的方法,其特征在于,所述在所述文件中提取若干個(gè)文件片段 包括: 在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段; 其中,所述預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
12. -種文件備份裝置,其特征在于,所述裝置包括: 第一確定模塊,用于根據(jù)預(yù)設(shè)算法確定文件的散列值; 第一查詢模塊,用于在本地備份數(shù)據(jù)庫中查詢確定出的散列值; 處理模塊,用于在查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,不再向備份服 務(wù)器備份所述文件。
13. 如權(quán)利要求12所述的裝置,其特征在于,所述第一確定模塊包括: 第一判斷子模塊,用于判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值; 第一確定子模塊,用于在判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在所述 文件中提取若干個(gè)文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文件的 散列值; 第二確定子模塊,用于在判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),針對(duì)所述文件 進(jìn)行散列值確定得出散列值。
14. 如權(quán)利要求13所述的裝置,其特征在于,所述第一確定子模塊包括: 第一提取子模塊,用于在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段;其中,所述 預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
15. 如權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括: 上傳模塊,用于在查詢到所述本地備份數(shù)據(jù)庫中未記錄所述散列值時(shí),將所述散列值 對(duì)應(yīng)的文件上傳給備份服務(wù)器; 第一保存模塊,用于將所述散列值對(duì)應(yīng)的文件上傳給備份服務(wù)器后,將所述散列值在 本地備份數(shù)據(jù)庫中進(jìn)行保存。
16. 如權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括 標(biāo)記模塊,用于在所述散列值對(duì)應(yīng)的文件成功上傳到備份服務(wù)器后,將所述散列值在 所述本地備份數(shù)據(jù)庫中標(biāo)記為已上傳狀態(tài)。
17. 如權(quán)利要求12所述的裝置,其特征在于,所述處理模塊包括: 第一查詢子模塊,用于在本地備份數(shù)據(jù)庫中查詢所述散列值是否被標(biāo)記為已上傳狀 態(tài); 處理子模塊,用于在查詢到所述散列值被標(biāo)記為已上傳狀態(tài)時(shí),不再向備份服務(wù)器備 份所述文件; 第二查詢子模塊,用于在查詢到所述散列值未被標(biāo)記為已上傳狀態(tài),向備份服務(wù)器查 詢所述散列值對(duì)應(yīng)的文件是否已上傳成功; 第一標(biāo)記子模塊,用于在查詢到所述散列值對(duì)應(yīng)的文件已上傳成功,在本地備份數(shù)據(jù) 庫中將所述散列值標(biāo)記為已上傳狀態(tài),不再向備份服務(wù)器備份該文件; 備份子模塊,用于在查詢到所述散列值對(duì)應(yīng)的文件未上傳成功,向備份服務(wù)器備份該 文件。
18. 如權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括: 記錄模塊,用于在所述本地備份數(shù)據(jù)庫中記錄所述文件的屬性信息,所述屬性信息包 括最后更改時(shí)間和文件大小; 更新模塊,用于在所述文件的屬性信息與所述本地備份數(shù)據(jù)庫中記錄的屬性信息不同 時(shí),更新所述本地備份數(shù)據(jù)庫中記錄的該文件的散列值和屬性信息。
19. 一種文件備份裝置,其特征在于,所述裝置包括: 接收模塊,用于接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值; 第二查詢模塊,用于在本地備份數(shù)據(jù)庫中查詢所述散列值; 通告模塊,用于在查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述終端 通告該散列值對(duì)應(yīng)的文件已上傳成功。
20. 如權(quán)利要求19所述的裝置,其特征在于,所述裝置還包括: 第二確定模塊,用于根據(jù)預(yù)設(shè)算法確定終端上傳的文件的散列值; 第二保存模塊,用于在所述文件在本地備份成功后,將確定出的散列值在本地備份數(shù) 據(jù)庫中進(jìn)行保存。
21. 如權(quán)利要求20所述的裝置,其特征在于,所述第二確定模塊包括: 第二判斷子模塊,用于判斷所述文件的大小是否大于或等于預(yù)設(shè)閾值; 第三確定子模塊,用于在判斷出所述文件的大小大于或等于所述預(yù)設(shè)閾值時(shí),在所述 文件中提取若干個(gè)文件片段,針對(duì)所述若干個(gè)文件片段進(jìn)行散列值確定,得出所述文件的 散列值; 第四確定子模塊,用于在判斷出所述文件的大小小于所述預(yù)設(shè)閾值時(shí),對(duì)所述文件進(jìn) 行散列值確定得出散列值。
22. 如權(quán)利要求19所述的裝置,其特征在于,所述第三確定子模塊包括: 第二提取子模塊,用于在所述文件中均勻提取若干個(gè)預(yù)設(shè)大小的文件片段;其中,所述 預(yù)設(shè)大小的文件片段占用的字節(jié)數(shù)小于所述預(yù)設(shè)閾值。
23. -種文件備份裝置,其特征在于,包括: 處理器; 用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器; 其中,所述處理器被配置為: 根據(jù)預(yù)設(shè)算法確定文件的散列值; 在本地備份數(shù)據(jù)庫中查詢確定出的散列值; 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,不再向備份服務(wù)器備份所述文 件。
24. -種文件備份裝置,其特征在于,包括: 處理器; 用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器; 其中,所述處理器被配置為: 接收終端上傳的查詢請(qǐng)求,所述查詢請(qǐng)求中攜帶散列值; 在本地備份數(shù)據(jù)庫中查詢所述散列值; 當(dāng)查詢到所述本地備份數(shù)據(jù)庫中已記錄了所述散列值,則向所述終端通告該散列值對(duì) 應(yīng)的文件已上傳成功。
【文檔編號(hào)】G06F17/30GK104156284SQ201410429701
【公開日】2014年11月19日 申請(qǐng)日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】李春雨, 王益冬, 胡先東 申請(qǐng)人:小米科技有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
金寨县| 哈密市| 彰武县| 井陉县| 梅河口市| 鸡泽县| 贡觉县| 宣威市| 昌黎县| 天峻县| 介休市| 福鼎市| 彭州市| 济源市| 汤原县| 黎城县| 沁源县| 乌兰县| 芜湖县| 山丹县| 三亚市| 新平| 禄丰县| 广州市| 江城| 文登市| 左云县| 东乡县| 琼结县| 翁源县| 民权县| 龙门县| 永定县| 潞城市| 宁城县| 桦甸市| 六枝特区| 荔浦县| 明光市| 同心县| 陈巴尔虎旗|