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