基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法及其裝置制造方法
【專利摘要】本發(fā)明涉及一種基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法及其裝置,包括:調(diào)度同步裝置,期將服務(wù)器端的文件變化同步到本地,同時(shí)自動(dòng)將本地修改的文件同步到服務(wù)器端;緩存管理裝置,用于負(fù)責(zé)在緩存文件狀態(tài)管理,同時(shí)負(fù)責(zé)緩存的清理;監(jiān)控裝置,用于捕捉系統(tǒng)行為;所述的服務(wù)器端包括:文件服務(wù)裝置,用于負(fù)責(zé)客戶端上傳文檔寫入到存儲(chǔ)裝置;同時(shí)負(fù)責(zé)客戶端請求下載的文檔從存儲(chǔ)裝置讀取數(shù)據(jù)并返回給客戶端;存儲(chǔ)裝置,用于負(fù)責(zé)文件的存儲(chǔ)和讀取。與現(xiàn)有技術(shù)相比,本發(fā)明具有用于解決用戶希望使用文件能夠不受阻礙的訪問,同時(shí)又不占用本地空間的問題,能夠在不改變系統(tǒng)使用習(xí)慣并且不受到任何干擾情況下完成工作。
【專利說明】基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法及其裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種計(jì)算機(jī)信息存儲(chǔ)【技術(shù)領(lǐng)域】,尤其是涉及一種基于云存儲(chǔ)的文件按 需下載和自動(dòng)同步方法及其裝置,用戶可以不用主動(dòng)關(guān)心文件上傳、下載行為,不用擔(dān)心本 地磁盤空間占用,也不用需要打開單獨(dú)的客戶端軟件界面去選擇文件下載同步,用戶能夠 在不改變系統(tǒng)使用習(xí)慣并且不受到任何干擾情況下完成工作。
【背景技術(shù)】
[0002] 目前,市面上存在著大量的文件管理系統(tǒng)、網(wǎng)盤、知識管理和內(nèi)容管理系統(tǒng)。基本 上所有系統(tǒng)都通過下列兩種方式為用戶提供文件訪問,每種方式在實(shí)際工作中都會(huì)給用戶 造成一些困擾:
[0003] a)基于Web界面瀏覽文件夾及文件信息,通過Web預(yù)覽功能查看目標(biāo)文檔的內(nèi)容 或通過將文件下載到本地,在本地使用文件相關(guān)的應(yīng)用程序進(jìn)行查看或修改。
[0004] 困擾:當(dāng)用戶需要訪問或修改多個(gè)不同文件,他需要通過多次選擇文件下載、使用 本地應(yīng)用程序修改文件、再通過Web界面選擇上傳完成工作。用戶需要在瀏覽器與本地應(yīng) 用程序間切換工作,并且需要主動(dòng)上傳文件變化,離線后基本上不能工作,非常不方便,會(huì) 干擾用戶工作思路影響效率。
[0005] b)基于客戶端程序主動(dòng)選擇將需要使用的文件夾或文件同步到本地,用戶使用資 源管理器進(jìn)行瀏覽并使用文件相關(guān)的應(yīng)用程序進(jìn)行查看或修改。本地文件內(nèi)容被修改后程 序主動(dòng)將變化內(nèi)容上傳。沒有任何變化時(shí),程序會(huì)定期在后臺檢查服務(wù)器端文件是否被別 人修改,一旦有變化會(huì)主動(dòng)將變化內(nèi)容下載到本地。用戶工作環(huán)境離線仍能工作。
[0006] 困擾:當(dāng)一個(gè)團(tuán)隊(duì)或整個(gè)公司/學(xué)校都基于該系統(tǒng)進(jìn)行工作,并且存放了大量文 檔數(shù)據(jù)時(shí)(比如資料圖片、教學(xué)視頻、收集的背景資料文檔等),所有數(shù)據(jù)同步到本地會(huì)大 量占用本地磁盤空間。通常每個(gè)用戶能夠訪問的公共資源數(shù)據(jù)為50GB?1000GB,甚至更 多,而每個(gè)用戶在工作中真正用到的數(shù)據(jù)可能5GB還不到。市面上大部分的系統(tǒng)都會(huì)在客 戶端程序中為用戶提供"選擇性同步"功能,用戶通過彈出對話框勾選整個(gè)系統(tǒng)中需要同 步到本地的文件夾或文件,這樣能夠解決用戶磁盤空間占用并且減少不必要的網(wǎng)絡(luò)帶寬使 用。但是這個(gè)看似解決用戶困擾的功能實(shí)際上給用戶帶了另一個(gè)困擾:用戶無法預(yù)測自己 將要訪問的文檔會(huì)是哪些,如果全部選擇那會(huì)造成浪費(fèi),并且首次登錄可能會(huì)由于下載大 量數(shù)據(jù)而造成使用體驗(yàn)非常差。如果僅選擇部分那么在將來工作時(shí)發(fā)現(xiàn)需要使用的文檔沒 同步到本地,仍需要通過該彈出對話框找到目標(biāo)文件再次選擇同步,會(huì)干擾用戶工作思路 影響效率。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于云存儲(chǔ)的 文件按需下載和自動(dòng)同步方法及其裝置,用于解決用戶希望使用文件能夠不受阻礙的訪 問,同時(shí)又不占用本地空間的問題,能夠在不改變系統(tǒng)使用習(xí)慣并且不受到任何干擾情況 下完成工作;最終達(dá)到的效果是用戶可以直接在Windows資源管理器中看到所有云存儲(chǔ)中 有權(quán)限的文件列表,而只有在需要打開或者其他使用場景時(shí)才觸發(fā)下載使用,也就是看到 全部,使用少數(shù)。
[0008] 本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
[0009] -種基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法,其特征在于,包括以下流程: [0010] 1)自動(dòng)同步子流程;
[0011] 2)文件觸發(fā)下載流程;
[0012] 3)緩存清理子流程。
[0013] 所述的自動(dòng)同步子流程具體包括以下步驟:
[0014] 11)用戶使用客戶端登錄后,調(diào)度同步裝置發(fā)送請求給服務(wù)器端;
[0015] 12)服務(wù)器端文件服務(wù)裝置獲得用戶有權(quán)限訪問的文件列表,通過深度優(yōu)先算法 逐個(gè)返回給客戶端調(diào)度同步裝置;
[0016] 13)調(diào)度同步裝置根據(jù)緩存管理裝置中文件的歷史信息,對于已經(jīng)具有本地緩存 的文件,請求文件服務(wù)裝置返回內(nèi)容更新本地緩存,并通知緩存管理裝置;
[0017] 14)對于從未緩存的文件,請求文件服務(wù)裝置返回文件屬性信息,包括名稱、屬性、 大小和修改時(shí)間,創(chuàng)建虛擬文件對象,并通知緩存管理裝置;
[0018] 15)緩存管理裝置,在獲得文件對象時(shí),判斷實(shí)體對象和虛擬對象,在文件上疊加 已緩存或者未緩存圖標(biāo)。
[0019] 所述的文件觸發(fā)下載流程具體包括以下步驟:
[0020] 21)用戶雙擊未緩存文件時(shí),或者其他應(yīng)用觸發(fā),監(jiān)控裝置截獲相關(guān)請求,并觸發(fā) 調(diào)度同步裝置,彈出對話框自動(dòng)下載文件;
[0021] 22)如果客戶端程序未啟動(dòng)或離線時(shí),打開未緩存文件時(shí),監(jiān)控裝置截獲請求,并 彈出對話框提示"該文件未下載到本地,無法被正常訪問,請?jiān)诳蛻舳藛?dòng)并且在線時(shí)再次 嘗試,程序?qū)⒆詣?dòng)下載該文件";
[0022] 23)程序未啟動(dòng)或離線時(shí),如果文件舊版本已經(jīng)下載到本地,但是服務(wù)器上已經(jīng)有 了新版本,則彈出對話框提示"當(dāng)前打開的文件不是最新版本,請?jiān)诳蛻舳藛?dòng)并且在線時(shí) 再次嘗試訪問文件,程序?qū)⒆詣?dòng)下載該文件"。
[0023] 所述的緩存清理子流程具體包括以下步驟:
[0024] 31)緩存管理裝置定期檢查緩存目錄數(shù)據(jù)大小,當(dāng)緩存大小超過設(shè)置的最大值時(shí), 觸發(fā)緩存清理操作;
[0025] 32)緩存清理的規(guī)則采用LRU,清除客戶端最長時(shí)間未使用的文件清理;
[0026] 33)用戶選擇某個(gè)緩存子目錄文件夾,選擇清理緩存,觸發(fā)緩存清理操作;
[0027] 34)清理掉的文件轉(zhuǎn)換為未緩存虛擬文件對象,更改文件狀態(tài)。
[0028] -種基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法的裝置,其特征在于,包括客戶 端和服務(wù)器端;
[0029] 所述的客戶端包括:
[0030] 調(diào)度同步裝置,用于負(fù)責(zé)文件上傳、下載及緩存信息記錄,定期將服務(wù)器端的文件 變化同步到本地,同時(shí)自動(dòng)將本地修改的文件同步到服務(wù)器端;
[0031] 緩存管理裝置,用于負(fù)責(zé)在緩存文件狀態(tài)管理,在Windows文件圖標(biāo)上疊加狀態(tài) 圖標(biāo),用戶使用資源管理器瀏覽文件夾及文件時(shí)能夠區(qū)分已下載內(nèi)容和未下載內(nèi)容的文 件;同時(shí)負(fù)責(zé)緩存的清理,當(dāng)本地緩存超過限額時(shí)自動(dòng)觸發(fā)按LRU(Least Recently Used) 規(guī)則清理本地緩存,或者根據(jù)用戶手動(dòng)觸發(fā)清理指定文件夾的緩存文件;
[0032] 監(jiān)控裝置,用于捕捉系統(tǒng)行為,當(dāng)緩存目錄下的文件被觸發(fā)打開時(shí),阻塞住未下載 文件的訪問請求并通知調(diào)度裝置下載文件內(nèi)容,當(dāng)本地文件變化時(shí),自動(dòng)觸發(fā)調(diào)度同步裝 置同步到服務(wù)器端;
[0033] 所述的服務(wù)器端包括:
[0034] 文件服務(wù)裝置,用于負(fù)責(zé)客戶端上傳文檔寫入到存儲(chǔ)裝置;同時(shí)負(fù)責(zé)客戶端請求 下載的文檔從存儲(chǔ)裝置讀取數(shù)據(jù)并返回給客戶端;
[0035] 存儲(chǔ)裝置,用于負(fù)責(zé)文件的存儲(chǔ)和讀取。
[0036] 本發(fā)明具有以下三個(gè)重要的創(chuàng)新點(diǎn):
[0037] 1)通過客戶端程序?qū)⒂脩羲芯哂袡?quán)限訪問的文件信息從系統(tǒng)服務(wù)器上同步到 本地磁盤,包括文件夾及文件,文件信息包含名稱、屬性、大小,不包含文件內(nèi)容,所有文件 信息都記錄到本地緩存目錄下,形成虛擬文件對象。
[0038] 2)用戶通過資源管理器即可瀏覽所有文件夾及文件,當(dāng)用戶瀏覽到希望訪問的文 件并雙擊打開時(shí),打開文件的應(yīng)用程序會(huì)被阻塞,而客戶端程序則會(huì)被觸發(fā)下載文件內(nèi)容 并顯示下載進(jìn)度,當(dāng)文件內(nèi)容下載完成后打開文件的應(yīng)用程序被解阻塞并正常顯示文件內(nèi) 容。
[0039] 3)對于已經(jīng)打開同步到本地的文件,任何修改或者添加都可以自動(dòng)同步到服務(wù)器 端;實(shí)際使用時(shí)用戶不用關(guān)心將要打開的文件是否已經(jīng)下載,訪問時(shí)如何下載。由于僅僅下 載用戶訪問過的文件,因此長時(shí)間使用也不會(huì)占用本地磁盤多過空間。
[0040] 與現(xiàn)有技術(shù)相比,本發(fā)明能夠解決用戶使用文件時(shí),即使是云端的文件,也能夠繼 續(xù)沿用Windows資源管理器使用習(xí)慣,能夠不受阻礙的訪問;這在企業(yè)、學(xué)校等中大型組 織機(jī)構(gòu)中,海量的文檔中,每個(gè)成員可以做到看到全部有權(quán)限的文檔資源,但是可以按需使 用,極大的提升了學(xué)?;蛘咂髽I(yè)海量文檔中心的共享協(xié)作的體驗(yàn)。
【專利附圖】
【附圖說明】
[0041] 圖1為本發(fā)明的流程圖;
[0042] 圖2為本發(fā)明的裝置結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0043] 下面結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。
[0044] 如圖1所示,本發(fā)明主要流程包括:
[0045] 文件更新過程:
[0046] 1)定期探測或者獲得文件列表
[0047] 2)判斷文件內(nèi)容同步或者屬性同步;
[0048] 3)創(chuàng)建虛擬文件對象或者同步實(shí)際文件內(nèi)容;
[0049] 4)更新文件狀態(tài)為已更新或者云端狀態(tài);
[0050] 文件打開過程:
[0051] 1)打開文件;
[0052] 2)判斷是否需要觸發(fā)同步;
[0053] 3)同步內(nèi)容并返回第三方應(yīng)用加載內(nèi)容完成打開操作;
[0054] 如圖2所示,本實(shí)施例由客戶端1和服務(wù)器端2組成,兩者之間通過TCP/IP建立 網(wǎng)絡(luò)連接,所述的客戶端1包括調(diào)度同步裝置11、緩存管理裝置12和監(jiān)控裝置13,所述的 服務(wù)器端2包括文件服務(wù)裝置21和存儲(chǔ)裝置22。
[0055] 文檔使用過程
[0056] 1.用戶U1可以訪問的文件包括個(gè)人文檔、群組文檔庫(比如社團(tuán)的資料中心)、 學(xué)校的文檔庫、其他人共享給U1的文件,預(yù)計(jì)總文件量超過10W,數(shù)據(jù)量超過100GB ;
[0057] 2. U1通過客戶端登錄后,調(diào)度同步裝置發(fā)信息給服務(wù)器端,服務(wù)器端分發(fā)給集群 內(nèi)的任意節(jié)點(diǎn)處理,節(jié)點(diǎn)的文件服務(wù)裝置掃描用戶的文件列表返回給客戶端;
[0058] 3.客戶端緩存管理裝置對比文件列表的文件,如果屬于已經(jīng)緩存過的文件,要求 服務(wù)器端對比文件版本,如果一致則略過,如果不一致,請求服務(wù)器端更新到本地客戶端, 此時(shí)客戶端調(diào)度同步裝置與服務(wù)器端文件服務(wù)裝置同步數(shù)據(jù)。
[0059] 4.如果文件未緩存,則要求服務(wù)器端給出文件屬性,包括大小、修改時(shí)間等,緩存 管理裝置根據(jù)屬性創(chuàng)建虛擬文件對象,并標(biāo)識未緩存的云端圖標(biāo)。
[0060] 5.用戶U1在某文件夾X下看到文件列表,當(dāng)選擇A文件雙擊打開,或者拖進(jìn)郵件 客戶端發(fā)送時(shí),監(jiān)控裝置獲得請求并轉(zhuǎn)給調(diào)度同步裝置處理,此時(shí)如果同步隊(duì)列已經(jīng)有傳 輸對象,則會(huì)優(yōu)先此請求。
[0061] 6.調(diào)度同步裝置同步完成文件內(nèi)容后,觸發(fā)監(jiān)控裝置釋放應(yīng)用程序的打開請求, 應(yīng)用程序加載內(nèi)容并呈現(xiàn)給用戶U1。
[0062] 7.用戶U1修改文件A保存,監(jiān)控裝置探測到變化,通知調(diào)度同步裝置啟動(dòng)同步,調(diào) 度同步裝置將文件A內(nèi)容同步到服務(wù)器端的文件服務(wù)裝置。文件服務(wù)裝置寫入存儲(chǔ)裝置。
[0063] 緩存清理過程
[0064] 1.用戶U1登錄客戶端后,通過緩存管理裝置設(shè)置緩存空間限制,比如1GB ;
[0065] 2.客戶端緩存管理裝置定期掃描緩存目錄,當(dāng)緩存數(shù)據(jù)超過設(shè)置空間限額時(shí),觸 發(fā)緩存清理。
[0066] 3.清理時(shí),采用LRU (Least Recently Used),最近最少使用算法,與傳統(tǒng)最近最少 使用算法略有區(qū)別,在于LRU算法主要根據(jù)文件的最近訪問時(shí)間判斷,對于最近訪問時(shí)間 與當(dāng)前時(shí)間相差最大的倒序,依次清除文件緩存。
[0067] 4.另外一種情況是,用戶選擇緩存目錄下的某個(gè)文件夾Y,選擇清理緩存,觸發(fā)緩 存清理操作。
[0068] 5.清理掉的文件轉(zhuǎn)換為未緩存虛擬文件對象,更改文件狀態(tài)。
【權(quán)利要求】
1. 一種基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法,其特征在于,包括以下流程: 1) 自動(dòng)同步子流程; 2) 文件觸發(fā)下載流程; 3) 緩存清理子流程。
2. 根據(jù)權(quán)利要求1所述的一種基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法,其特征在 于,所述的自動(dòng)同步子流程具體包括以下步驟: 11) 用戶使用客戶端登錄后,調(diào)度同步裝置發(fā)送請求給服務(wù)器端; 12) 服務(wù)器端文件服務(wù)裝置獲得用戶有權(quán)限訪問的文件列表,通過深度優(yōu)先算法逐個(gè) 返回給客戶端調(diào)度同步裝置; 13) 調(diào)度同步裝置根據(jù)緩存管理裝置中文件的歷史信息,對于已經(jīng)具有本地緩存的文 件,請求文件服務(wù)裝置返回內(nèi)容更新本地緩存,并通知緩存管理裝置; 14) 對于從未緩存的文件,請求文件服務(wù)裝置返回文件屬性信息,包括名稱、屬性、大小 和修改時(shí)間,創(chuàng)建虛擬文件對象,并通知緩存管理裝置; 15) 緩存管理裝置,在獲得文件對象時(shí),判斷實(shí)體對象和虛擬對象,在文件上疊加已緩 存或者未緩存圖標(biāo)。
3. 根據(jù)權(quán)利要求1所述的一種基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法,其特征在 于,所述的文件觸發(fā)下載流程具體包括以下步驟: 21) 用戶雙擊未緩存文件時(shí),或者其他應(yīng)用觸發(fā),監(jiān)控裝置截獲相關(guān)請求,并觸發(fā)調(diào)度 同步裝置,彈出對話框自動(dòng)下載文件; 22) 如果客戶端程序未啟動(dòng)或離線時(shí),打開未緩存文件時(shí),監(jiān)控裝置截獲請求,并彈出 對話框提示"該文件未下載到本地,無法被正常訪問,請?jiān)诳蛻舳藛?dòng)并且在線時(shí)再次嘗 試,程序?qū)⒆詣?dòng)下載該文件"; 23) 程序未啟動(dòng)或離線時(shí),如果文件舊版本已經(jīng)下載到本地,但是服務(wù)器上已經(jīng)有了新 版本,則彈出對話框提示"當(dāng)前打開的文件不是最新版本,請?jiān)诳蛻舳藛?dòng)并且在線時(shí)再次 嘗試訪問文件,程序?qū)⒆詣?dòng)下載該文件"。
4. 根據(jù)權(quán)利要求1所述的一種基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法,其特征在 于,所述的緩存清理子流程具體包括以下步驟: 31) 緩存管理裝置定期檢查緩存目錄數(shù)據(jù)大小,當(dāng)緩存大小超過設(shè)置的最大值時(shí),觸發(fā) 緩存清理操作; 32) 緩存清理的規(guī)則采用LRU,清除客戶端最長時(shí)間未使用的文件清理; 33) 用戶選擇某個(gè)緩存子目錄文件夾,選擇清理緩存,觸發(fā)緩存清理操作; 34) 清理掉的文件轉(zhuǎn)換為未緩存虛擬文件對象,更改文件狀態(tài)。
5. -種實(shí)施權(quán)利要求1-4中任一的基于云存儲(chǔ)的文件按需下載和自動(dòng)同步方法的裝 置,其特征在于,包括客戶端和服務(wù)器端; 所述的客戶端包括: 調(diào)度同步裝置,用于負(fù)責(zé)文件上傳、下載及緩存信息記錄,定期將服務(wù)器端的文件變化 同步到本地,同時(shí)自動(dòng)將本地修改的文件同步到服務(wù)器端; 緩存管理裝置,用于負(fù)責(zé)在緩存文件狀態(tài)管理,在Windows文件圖標(biāo)上疊加狀態(tài)圖標(biāo), 用戶使用資源管理器瀏覽文件夾及文件時(shí)能夠區(qū)分已下載內(nèi)容和未下載內(nèi)容的文件;同時(shí) 負(fù)責(zé)緩存的清理,當(dāng)本地緩存超過限額時(shí)自動(dòng)觸發(fā)按LRU規(guī)則清理本地緩存,或者根據(jù)用 戶手動(dòng)觸發(fā)清理指定文件夾的緩存文件; 監(jiān)控裝置,用于捕捉系統(tǒng)行為,當(dāng)緩存目錄下的文件被觸發(fā)打開時(shí),阻塞住未下載文件 的訪問請求并通知調(diào)度裝置下載文件內(nèi)容,當(dāng)本地文件變化時(shí),自動(dòng)觸發(fā)調(diào)度同步裝置同 步到服務(wù)器端; 所述的服務(wù)器端包括: 文件服務(wù)裝置,用于負(fù)責(zé)客戶端上傳文檔寫入到存儲(chǔ)裝置;同時(shí)負(fù)責(zé)客戶端請求下載 的文檔從存儲(chǔ)裝置讀取數(shù)據(jù)并返回給客戶端; 存儲(chǔ)裝置,用于負(fù)責(zé)文件的存儲(chǔ)和讀取。
【文檔編號】H04L29/08GK104219283SQ201410384168
【公開日】2014年12月17日 申請日期:2014年8月6日 優(yōu)先權(quán)日:2014年8月6日
【發(fā)明者】李基亮, 張峰 申請人:上海愛數(shù)軟件有限公司