基于網絡的文件云同步方法
【技術領域】
[0001]本發明涉及一種應用于智能機中的文件同步的技術領域,特別是涉及一種基于網絡的文件云同步方法。
【背景技術】
[0002]隨著通信網絡的迅猛發展,人們會通過不同的終端,例如智能手機、筆記本、臺式機、平板電腦等編輯、使用同一文件。如何讓這些不同終端上的同一文件保持同步,是一個非常現實的問題,現有的做法是通過網絡利用云存儲的自動同步備份功能來實現文件的同步。
[0003]而在同步文件的過程中經常會出現字段重復、圖片相似、音頻視頻內容相似等問題,如果所有文件不經過分析都執行同步操作,這不僅增加了云存儲的容量,而且信息的冗余也會給用戶帶來困擾,例如,當用戶在同步微信的聯系人信息時,如果不加分析的將之前修改的舊的聯系人信息也一并同步了,則可能在終端上針對同一聯系人既有新的聯系人信息,又有舊的聯系人信息,兩者混合在一起,不但信息量很龐大,而且也給用戶帶來了困擾,到底哪個是新的聯系人信息呢?因此,要實現多終端的同步,如何記錄不同終端保存文件的差異就顯得尤為重要。現在的做法是通過比較文件元數據信息,或者將元數據信息的變化記錄到相關日志中,來發現客戶端和服務器數據的差異,并進一步同步這些差異化的文件,利用元數據組合信息的進行集合,用于標識用戶的文件特征屬性,包括文件名、路徑、修改時間、作者、權限、內容、哈希值等內容。
[0004]現有技術在一定程度上是成功,但是也有不足之處,例如在云存儲平臺上,有時候元數據的信息量很大,搜索匹配會帶來一定的系統開銷,并且有時候對于具有重復內容的文件,無法區別。而且對于同步的文件,在客戶端下載的時候,只會同步覆蓋,無法做到增量下載。這樣是一種粗粒度的同步方法。
[0005]因此,如何在保證多終端文件同步的同時,避免重復的內容重復同步,相似的內容得以增量同步,這些問題都亟待得以解決。
【發明內容】
[0006]鑒于以上所述現有技術的缺點,本發明的目的在于提供一種基于網絡的文件云同步方法,以有效避免重復的同步操作,進而節省服務器的I/O流量,同時對待同步下載的文件也進行了優化處理,防止重復數據同步下載的問題。
[0007]為實現上述目的及其他相關目的,本發明提供一種基于網絡的文件云同步方法,主要是用于實現在同一云存儲空間基于網絡的多個用戶終端與服務器之間的文件同步操作,其特征在于,所述基于網絡的文件云同步方法包括以下步驟:1)在同一云存儲空間針對多個用戶終端以及服務器端分別建立文件登記信息表,所述各用戶終端的文件登記信息表包括各用戶終端中各自所創建的所有文件的識別碼,所述服務器端的文件登記信息表包括已經上傳至服務器端的文件的識別碼;2)判斷一待同步文件是否存儲在服務器端,若是,則進至步驟3),若否,則表明存儲在其中一用戶終端,則進至步驟4) ;3)在當前所使用的用戶終端中,自針對服務器端的文件登記信息表中提取出所述待同步文件的識別碼,且對待同步文件的數據內容進行隨機掃描,以獲取一隨機特征碼,并予以同步保存至所述云存儲空間中,接著進至步驟5) ;4)在當前所使用的用戶終端中,自針對當前所使用的用戶終端的文件登記信息表中提取出所述待同步文件的識別碼,且對待同步文件的數據內容進行隨機掃描,以獲取一隨機特征碼,并予以同步保存至所述云存儲空間中,接著進至步驟6) ;5)自針對當前所使用的用戶終端的文件登記信息表中搜尋是否存在與所提取的對應所述待同步文件的識別碼相同的識別碼,若是,則進至步驟7),若否,則在當前所使用的用戶終端與服務器端之間對所述待同步文件執行整個文件的同步操作;6)自針對服務器端的文件登記信息表中搜尋是否存在與所提取的對應所述待同步文件的識別碼相同的識別碼,若是,則進至步驟7),若否,則在當前所使用的用戶終端與服務器端之間對所述待同步文件執行整個文件的同步操作;以及7)采用后綴樹(Suffix Tree)算法分析所述待同步文件的隨機特征碼是否與所保存的具有相同識別碼的文件的隨機特征碼一致,若是,則終止對所述待同步文件執行同步操作,若否,則根據分析的結果在當前所使用的用戶終端與服務器端之間對所述待同步文件執行增量同步操作。其中,該識別碼為用戶終端為所創建的每個文件所分配的唯一的文件識別碼。該文件登記信息表還包括文件名、修改時間、權限或者哈希值等。
[0008]優選地,上述步驟2)進一步包括:在當前所使用的用戶終端中,對待同步文件的數據內容進行隨機掃描,以構成一數據有限原子集合,再從所述數據有限原子集合中隨機截取特征碼,以生成一隨機特征碼,并將該隨機特征碼同步保存至所述云存儲空間。其中,該數據有限原子集合是基于該待同步文件的哈希值而獲取的待同步文件中的頭文件、字節碼、文件數據流或者待同步文件中的若干內容等,該數據有限原子集合又或者是以差分取值方式自所述待同步文件中截取的數值。
[0009]如上所述,本發明的基于網絡的文件云同步方法,主要是在用戶終端與服務器之間同步文件之前,先在多個用戶終端以及服務器端分別建立文件登記信息表,各用戶終端的文件登記信息表包括各用戶終端中各自所創建的所有文件的識別碼,服務器端的文件登記信息表包括已經上傳至服務器端的文件的識別碼,然后,在當前所使用的用戶終端中,對待同步文件的數據內容進行隨機掃描,以獲取一隨機特征碼,并予以保存,接著通過二次比對來判斷待同步文件的數據是否需要相應的更新,根據已建立的文件登記信息表判斷是否存在與待同步文件的識別碼相同的識別碼,若是,則進一步判斷識別碼相同的兩個文件的隨機特征碼是否相同,若是,則為相同文件,不執行同步操作,若否,則進行增量同步操作。從而有效的避免了重復同步操作,極大節省了服務器的I/o流量。
【附圖說明】
[0010]圖1顯示為本發明的基于網絡的文件云同步方法的操作流程圖。
[0011]圖2顯不為圖1的應用環境的具體實例不意圖。
[0012]元件標號說明
[0013]I網絡
[0014]2服務器
[0015]21云存儲空間
[0016]A筆記本電腦
[0017]B智能手機
[0018]C平板電腦
[0019]SlOO ?S162 步驟
【具體實施方式】
[0020]以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節也可以基于不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。需說明的是,在不沖突的情況下,以下實施例及實施例中的特征可以相互組合。
[0021]需要說明的是,以下實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪制,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為復雜。
[0022]請參閱圖1,本發明提供一種基于網絡的文件云同步方法,主要是用于實現在同一云存儲空間基于網絡的多個用戶終端與服務器之間的文件同步操作。其中,該文件可以是多媒體數據、音頻、視頻、圖片或者文本等。
[0023]如圖1所示,首先,執行步驟S100,在同一云存儲空間針對多個用戶終端以及服務器端分別建立文件登記信息表,各該用戶終端的文件登記信息表包括各用戶終端中各自所創建的所有文件的文件名、修改時間、權限、哈希值以及識別碼,該服務器端的文件登記信息表包括已經上傳至服務器端的文件的文件名、修改時間、權限、哈希值以及識別碼。其中,該識別碼為用戶終端為所創建的每個文件所分配的唯一的文件識別碼。接著,進行步驟
SllOo
[0024]在步驟SllO中,判斷待同步文件是否存儲在服務器端,若是,則進至步驟S121,若否,則表明存儲在其中一用戶終端,則進至步驟S122。
[0025]在步驟S121中,在當前所使用的用戶終端中,自針對服務器端的文件登記信息表中提取出該待同步文件的識別碼,且對待同步文件的數據內容進行隨機掃描,以獲取一隨機特征碼,并予以同步保存至該云存儲空間中。具體而言,是在當前所使用的用戶終端中,對待同步文件的數據內容進行隨機掃描,以構成一數據有限原子集合,再從該數據有限原子集合中隨機截取特征碼,以生成一隨機特征碼,并將該隨機特征碼予以同步保存至該云存儲空間中,其中,該數據有限原子集合為基于該待同步文件的哈希值而獲取的該待同步文件中的頭文件、字節碼、文件數據流或者該待同步文件中的若干內容等,又或者是以差分取值的方式獲得的數值,此處需予以說明的是,獲取數據有限原子集合的方式不僅僅局限于上述所枚舉的幾種方式,因獲取的方式為本技術領域所熟知的技術,于此就不一一例舉。因此,從該數據有限原子集合中隨機截取特征碼而生成的隨機特征碼,就顯得比較隨意,因而能夠有效代表數據文件本身特征。接著,進行步驟S130。
[0026]在步驟S122中,在當前所使用的用戶終端中,自針對當前所使用的用戶終端的文件登記信息表中提取出該待同步文件的識別碼,且對待同步文件的數據內容進行隨機掃描,以獲取一隨機特征碼,并予以同步保存至所述云存儲空間中。接著,進行步驟S140。
[0027]在步驟S130中,自針對當前所使用的用戶終端的文件登記信息表中搜尋是否存在與所提取