專利名稱:實現(xiàn)文件同步存儲的系統(tǒng)和方法
技術領域:
本發(fā)明涉及網絡通信技術領域,具體涉及一種實現(xiàn)文件同步存儲的系統(tǒng)和方法。
背景技術:
一個計算機上的文件都是保存在本地的硬盤中,如果想在其它計算機上使用這些文件,則需要通過移動硬盤或U盤等移動存儲設備進行數(shù)據的拷貝和轉移。目前出現(xiàn)了一些云存儲軟件,將文件拷貝到該軟件的服務器上進行保存,在異地可以從服務器上獲取文件。但是在使用這些云存儲軟件時,用戶也需要打開該軟件進行文件的拷貝傳遞,例如,用戶需要通過下載操作從服務器下載要修改的文件,在修改完畢后再通過上載操作將修改后的文件上傳到服務器行。用戶操作還是比較繁瑣。
發(fā)明內容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種實現(xiàn)文件同步存儲的系統(tǒng)和方法。依據本發(fā)明的一個方面,提供了一種實現(xiàn)文件同步存儲的系統(tǒng),該系統(tǒng)包括服務器和多個客戶端;所述服務器,適于按用戶區(qū)分保存所述多個客戶端上傳的內容,并接受所述多個客戶端對所保存內容的下載和修改;所述客戶端包括顯示單元、緩沖區(qū)單元、登錄單元、指令操作單元和同步單元;所述顯示單元,適于生成顯示框;所述緩沖區(qū)單元,適于按用戶區(qū)分保存數(shù)據;所述登錄單元,適于在用戶登錄時,從服務器端獲取所述用戶的文件列表,將所述用戶的文件列表中文件對應的圖標屬性信息保存在緩沖區(qū)單元中所述用戶目錄下,并在所述顯示框內顯示與所述用戶文件列表中文件對應的圖標;所述指令操作單元,適于在收到所述用戶對所述顯示框中的內容進行操作的操作指令時,對所述緩沖區(qū)單元中所述用戶目錄下的內容和所述顯示框中顯示的內容進行相應處理;所述同步單元,適于監(jiān)控所述緩沖區(qū)單元中所述用戶目錄下的內容,并同步所述緩沖區(qū)單元中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容。可選地,所述指令操作單元,進一步適于執(zhí)行以下操作中的一種或多種當收到向所述顯示框拖入指定圖標的拖入指令時,將所述指定圖標對應的原始文件保存到所述緩沖區(qū)單元中所述用戶目錄下,并在所述顯示框中顯示所述指定圖標;當收到從所述顯示框拖出指定圖標的拖出指令時,先判斷所述指定圖標對應的原始文件是否已在所述緩沖區(qū)單元中所述用戶目錄下,如果是,則直接復制所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置,如果否,則先從服務器端下載所述對應的原始文件到所述緩沖區(qū)單元中所述用戶目錄下,再復制所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置;當收到對所述顯示框中指定圖標對應的原始文件進行修改的修改指令時,先判斷所述對應的原始文件是否已在所述緩沖區(qū)單元中所述用戶目錄下;如果是,直接根據所述修改指令修改所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;如果否,先從服務器端下載所述對應的原始文件到所述緩沖區(qū)單元中所述用戶目錄下,再根據所述修改指令修改所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;當收到修改所述顯示框中的指定圖標的屬性信息的指令時,對應修改所述緩沖區(qū)單元中所述用戶目錄下的所述指定圖標的對應屬性信息,并在所述顯示框中顯示屬性信息 被修改后的所述指定圖標;當收到刪除所述顯示框中的指定圖標的刪除指令時,從所述緩沖區(qū)單元中所述用戶目錄下刪除所述指定圖標的屬性信息,以及如果還存在對應的原始文件,一并刪除,并在所述顯示框中取消顯示所述指定圖標??蛇x地,所述同步單元,進一步適于利用操作系統(tǒng)的文件控件驅動監(jiān)控所述緩沖區(qū)單元中所述用戶目錄下的內容??蛇x地,所述同步單元,進一步適于對比所述緩沖區(qū)單元中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容;如果某一內容在所述緩沖區(qū)單元中所述用戶目錄下存在,而服務器端的所述用戶的文件列表中不存在,則將該內容上傳到服務器端的所述用戶的文件列表中;如果某一內容在所述緩沖區(qū)單元中所述用戶目錄下不存在,而服務器端的所述用戶的文件列表中存在,則從服務器端的所述用戶的文件列表中下載該內容到所述緩沖區(qū)單元中所述用戶目錄下;如果某一內容在所述緩沖區(qū)單元中所述用戶目錄下以及服務器端的所述用戶的文件列表中均存在,但版本不一致,則根據版本的新舊執(zhí)行上傳更新或下載更新??蛇x地,所述同步單元,進一步適于按預設個數(shù)的字節(jié)分片進行哈希值對比;其中,對比的內容包括以下內容中的一種或多種文件名、版本信息、數(shù)據塊??蛇x地,所述同步單元,進一步適于采用多線程斷點續(xù)傳方式執(zhí)行所述上傳和下載過程。可選地,所述顯示單元,進一步適于采用Directn技術繪制所述顯示框。依據本發(fā)明的另一方面,提供了一種實現(xiàn)文件同步存儲的方法,該方法包括在用戶登錄時,從服務器端獲取所述用戶的文件列表,將所述用戶的文件列表中文件對應的圖標屬性信息保存在本地緩沖區(qū)中所述用戶目錄下,并在顯示框內顯示與所述用戶文件列表中文件對應的圖標;當收到所述用戶的對所述顯示框中的內容進行操作的操作指令時,對本地緩沖區(qū)中所述用戶目錄下的內容和顯示框中顯示的內容進行相應處理;以及,監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容,并同步本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容;其中,所述顯示框為采用DirectH技術繪制的窗口。可選地,所述當收到所述用戶的對所述顯示框中的內容進行操作的操作指令時,對本地緩沖區(qū)中所述用戶目錄下的內容和顯示框中顯示的內容進行相應處理包括以下一種或多種當收到向所述顯示框拖入指定圖標的拖入指令時,將所述指定圖標對應的原始文件保存到緩沖區(qū)中所述用戶目錄下,并在所述顯示框中顯示所述指定圖標;當收到從所述顯示框拖出指定圖標的拖出指令時,先判斷所述指定圖標對應的原始文件是否已在本地緩沖區(qū)中所述用戶目錄下,如果是,則直接復制本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置,如果否,則先從服務器端下載所述對應的原始文件到本地緩沖區(qū)中所述用戶目錄下,再復制本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置;當收到對所述顯示框中指定圖標對應的原始文件進行修改的修改指令時,先判斷所述對應的原始文件是否已在本地緩沖區(qū)中所述用戶目錄下;如果是,直接根據所述修改 指令修改本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;如果否,先從服務器端下載所述對應的原始文件到本地緩沖區(qū)中所述用戶目錄下,再根據所述修改指令修改本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;當收到修改所述顯示框中的指定圖標的屬性信息的指令時,對應修改本地緩沖區(qū)中所述用戶目錄下的所述指定圖標的對應屬性信息,并在所述顯示框中顯示屬性信息被修改后的所述指定圖標;當收到刪除所述顯示框中的指定圖標的刪除指令時,從本地緩沖區(qū)中所述用戶目錄下刪除所述指定圖標的屬性信息,以及如果還存在對應的原始文件,一并刪除,并在所述顯示框中取消顯示所述指定圖標。可選地,所述監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容包括利用操作系統(tǒng)的文件控件驅動監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容。可選地,所述同步本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容包括對比本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容;如果某一內容在本地緩沖區(qū)中所述用戶目錄下存在,而服務器端的所述用戶的文件列表中不存在,則將該內容上傳到服務器端的所述用戶的文件列表中;如果某一內容在本地緩沖區(qū)中所述用戶目錄下不存在,而服務器端的所述用戶的文件列表中存在,則從服務器端的所述用戶的文件列表中下載該內容到本地緩沖區(qū)中所述用戶目錄下;如果某一內容在本地緩沖區(qū)中所述用戶目錄下以及服務器端的所述用戶的文件列表中均存在,但版本不一致,則根據版本的新舊執(zhí)行上傳更新或下載更新操作。可選地,所述對比本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容包括按預設個數(shù)的字節(jié)分片進行哈希值對比;對比的內容包括以下內容中的一種或多種文件名、版本信息、數(shù)據塊。可選地,所述上傳和下載過程的數(shù)據傳輸采用多線程斷點續(xù)傳方式。由上述可見,根據本發(fā)明這種在用戶登錄時,從服務器端獲取所述用戶的文件列表,將所述用戶的文件列表中文件對應的圖標屬性信息保存在本地緩沖區(qū)中所述用戶目錄下,并在顯示框內顯示與所述用戶文件列表中文件對應的圖標;當收到所述用戶的對所述顯示框中的內容進行操作的操作指令時,對本地緩沖區(qū)中所述用戶目錄下的內容和顯示框中顯示的內容進行相應處理;以及,監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容,并同步本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容的技術方案,可以將用戶的操作結果都同步保存的服務器端,實現(xiàn)了云存儲軟件的功能,并且在用戶登錄時,只將用戶文件的圖標屬性信息保存在本地緩沖區(qū)中,而不是將所有文件都下載下來,因此節(jié)省了網絡傳輸資源,在顯示框中顯示用戶的所有文件的虛擬圖標,因此對于用戶來說是看到自己的所有文件,當用戶對顯示框中的某個文件進行實際操作時,再對本地緩沖區(qū)中以及顯示框中顯示的內容進行相應處理,并同步本地緩沖區(qū)和服務器端的內容,對于用戶來說就像操作本地文件一樣??梢姳景l(fā)明的技術方案即方便了用戶的操作,又節(jié)省了網絡傳輸資源。 上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據本發(fā)明一個實施例的一種實現(xiàn)文件同步存儲的方法的流程圖;圖2示出了根據本發(fā)明一個實施例的嵌入計算機桌面上的顯示框的示意圖;圖3示出了根據本發(fā)明一個實施例的一種實現(xiàn)文件同步存儲的客戶端的結構圖;圖4示出了根據本發(fā)明一個實施例的一種實現(xiàn)文件同步存儲的系統(tǒng)的組成示意圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。圖1示出了根據本發(fā)明一個實施例的一種實現(xiàn)文件同步存儲的方法的流程圖。如圖1所示,在該實現(xiàn)文件同步存儲的方法中客戶端的執(zhí)行流程包括步驟SI 10,在用戶登錄時,從服務器端獲取所述用戶的文件列表,將所述用戶的文件列表中文件對應的圖標屬性信息保存在本地緩沖區(qū)中所述用戶目錄下,并在顯示框內顯示與所述用戶文件列表中文件對應的圖標。在本發(fā)明的實施例中,服務器端以用戶為單位保存文件。用戶先通過客戶端注冊用戶名和密碼,注冊并登錄后客戶端展示給用戶的是一個窗口形式的顯示框,初始時該顯示框是空的。用戶在登錄后可以向該顯示框拖入文件。用戶在任何計算機上再次登錄客戶端時,之前拖入的文件就可以展示在顯示框中。在用戶登錄時,客戶端并沒有將服務器端的該用戶的文件下載下來,只是將對應的圖標屬性信息保存在本地緩沖區(qū)中所述用戶目錄下,并在顯示框內顯示對應的圖標,因此顯示的是虛擬圖標。圖2示出了根據本發(fā)明一個實施例的嵌入計算機桌面上的顯示框的示意圖。在本發(fā)明的一個實施例中,采用Directn技術繪制顯示框并嵌入系統(tǒng)桌面上,將用戶文件列表中文件對應的圖標展示在系統(tǒng)桌面上的該顯示框中。在圖2中,舉例本發(fā)明的客戶端與“云盤”功能打通,用戶的ID為“Mike”,當用戶Mike登錄云盤后,在顯示框中展示用戶Mike的文件,本實施例中用戶Mike有三個文件名稱為“簡歷”word文檔、名稱為“音樂”的文件夾以及名稱為“視頻”的文件夾。但圖2只是本發(fā)明中的顯示框的一種形式,并不能作為本發(fā)明中的顯示框的限制。步驟S120,當收到所述用戶的對所述顯示框中的內容進行操作的操作指令時,對 本地緩沖區(qū)中所述用戶目錄下的內容和顯示框中顯示的內容進行相應處理。步驟S130,監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容,并同步本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容。在本發(fā)明的一個實施例中,利用操作系統(tǒng)的文件控件驅動監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容。在服務器端,按用戶區(qū)分保存客戶端上傳的內容,并接受客戶端對所保存內容的下載和修改。圖1所示的方法,可以將用戶的操作結果都同步保存在服務器端,實現(xiàn)了云存儲軟件的功能,并且在用戶登錄時,只將用戶文件的圖標屬性信息保存在本地緩沖區(qū)中,而不是將所有文件都下載下來,因此節(jié)省了網絡傳輸資源,在顯示框中顯示用戶的所有文件的虛擬圖標,因此對于用戶來說是看到自己的所有文件,當用戶對顯示框中的某個文件進行實際操作時,再對本地緩沖區(qū)中以及顯示框中顯示的相應內容進行相應處理,并同步本地緩沖區(qū)和服務器端的內容,對于用戶來說就像操作本地文件一樣。可見本發(fā)明的技術方案即方便了用戶的操作,又節(jié)省了網絡傳輸資源。在本發(fā)明的一個實施例中,圖1所示方法的步驟S120中客戶端執(zhí)行的操作包括以下一種或多種(I)用戶向顯示框中拖入文件當收到向顯示框拖入指定圖標的拖入指令時,客戶端將該指定圖標對應的原始文件保存到本地緩沖區(qū)中所述用戶目錄下,并在所述顯示框中顯示所述指定圖標。以圖2為例,當用戶將桌面上的word文檔“日志”拖入到顯示框中時,客戶端將該word文檔“日志”復制到本地緩沖區(qū)中用戶Mike的目錄下,并在顯示框中顯示word文檔“日志”的圖標。因此這種文件上傳操作,對于用戶來說就是將文件拖入顯示框中。(2)用戶從顯示框中拖出文件當收到從顯示框拖出指定圖標的拖出指令時,客戶端先判斷該被拖出的指定圖標對應的原始文件是否已在本地緩沖區(qū)中所述用戶目錄下,如果是,則直接復制本地緩沖區(qū)中該用戶目錄下的對應的原始文件到拖出指令的目標位置,如果否,則先從服務器端下載對應的原始文件到本地緩沖區(qū)中的該用戶目錄下,再復制本地緩沖區(qū)中該用戶目錄下的對應原始文件到拖出指令的目標位置。
以圖2為例,當用戶將顯示框中word文檔“簡歷”的圖標拖出到桌面上時,客戶端先判斷該圖標對應的原始文件(即word文檔的實際內容)是否已在本地緩沖區(qū)中用戶Mike的目錄下,是則直接復制本地緩沖區(qū)中的用戶Mike的目錄下的原始文件復制到桌面,如果否,先從服務器端下載對應的原始文件到本地緩沖區(qū)中,再從緩沖區(qū)中復制到桌面。因此這種文件的下載和復制操作,對于用戶來說就是將文件拖出顯示框中。(3)用戶修改文件內容當收到對顯示框中指定圖標對應的原始文件進行修改的修改指令時,客戶端先判斷對應的原始文件是否已在本地緩沖區(qū)中所述用戶目錄下;如果是,客戶端直接根據修改指令修改本地緩沖區(qū)中該用戶目錄下的對應的原始文件,并對應修改該指定圖標的屬性信息,如修改日期等;如果否,客戶端先從服務器端下載對應的原始文件到本地緩沖區(qū)中的該用戶目錄下,再根據修改指令修改本地緩沖區(qū)中所述用戶目錄下的對應的原始文件,并對應修改該指定圖標的屬性信息??蛻舳说倪@種操作使得用戶可以直接在顯示框中編輯文件,而不需要像現(xiàn)有的云存儲軟件那樣,用戶先進行下載操作將文件下載到本地,在本地進行編輯,然后再通過上載 操作將編輯好的文件同步到服務器端。因此用戶的操作更加方便。(4)用戶修改圖標屬性信息,如修改文件名等當收到修改顯示框中的指定圖標的屬性信息的指令時,客戶端對應修改本地緩沖區(qū)中該用戶目錄下的該指定圖標的對應屬性信息,并在顯示框中顯示屬性信息被修改后的該指定圖標。客戶端的這種操作使得,用戶可以在顯示框中直接編輯圖標的屬性信息,如文件
石寸ο(5)用戶刪除文件當收到刪除顯示框中的指定圖標的刪除指令時,客戶端從本地緩沖區(qū)中該用戶目錄下刪除所述指定圖標的屬性信息,以及如果還存在對應的原始文件,一并刪除,并在顯示框中取消顯示所述指定圖標??蛻舳说倪@種操作使得用戶可以在顯示框中直接刪除文件。在本發(fā)明的一個實施例中,圖1所示方法中的步驟S 130中所述同步本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容具體為1.對比本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容??梢园搭A設個數(shù)的字節(jié)(如512k)分片進行哈希值對比,對比結果為如下的2、3和4。對比的內容包括以下內容中的一種或多種文件名、版本信息、數(shù)據塊等。2.如果某一內容在本地緩沖區(qū)中所述用戶目錄下存在,而服務器端的所述用戶的文件列表中不存在,則客戶端將該內容上傳到服務器端的所述用戶的文件列表中;3.如果某一內容在本地緩沖區(qū)中所述用戶目錄下不存在,而服務器端的所述用戶的文件列表中存在,則客戶端從服務器端的所述用戶的文件列表中下載該內容到本地緩沖區(qū)中所述用戶目錄下;4.如果某一內容在本地緩沖區(qū)中所述用戶目錄下以及服務器端的所述用戶的文件列表中均存在,但版本不一致,則客戶端根據版本的新舊執(zhí)行上傳更新或下載更新操作。通過上述的同步操作,使得用戶對顯示框中文件的操作結果可以同步到服務器端,就如同用戶操作服務器端的文件一樣。在本發(fā)明的實施例中,客戶端和服務器之間進行同步的上傳文件和下載文件的數(shù)據傳輸采用多線程斷點續(xù)傳方式。這樣可以提供同步效率,節(jié)省用戶帶寬,帶來更好的用戶體驗。整個同步過程都是由客戶端完成的,不需要用戶去啟動上傳和下載操作,用戶體驗相當于操作桌面本地文件一樣,方便快捷。例如,在實際生活當中用戶有很多文件或音樂視頻在一臺電腦上使用后,想將其存儲然后放到其它電腦上繼續(xù)編輯或使用。按照現(xiàn)有的方式用戶需要將這些文件拷貝到其他移動存儲設備中或單獨打開一個現(xiàn)有的云存儲設備進行拷貝傳遞。而使用本發(fā)明的技術方案,可以直接在桌面上拖動文件到顯示框中,由客戶端自行同步本地緩沖區(qū)和服務器端的數(shù)據,并且可以在顯示框中直接編輯文件實現(xiàn)實時同步,而不需要單獨打開其他設備進行拷貝。圖3示出了根據本發(fā)明一個實施例的一種實現(xiàn)文件同步存儲的客戶端的結構圖。如圖3所示,該客戶端300包括顯示單元301、緩沖區(qū)單元302、登錄單元303、指令操作單元304和同步單元305。 顯示單元301,適于生成顯示框。緩沖區(qū)單元302,適于按用戶區(qū)分保存數(shù)據。登錄單元303,適于在用戶登錄時,從服務器端獲取該用戶的文件列表,將該用戶的文件列表中文件對應的圖標屬性信息保存在緩沖區(qū)單元302中該用戶的目錄下,并在顯示單元301生成的顯示框內顯示與該用戶文件列表中文件對應的圖標。指令操作單元304,適于在收到用戶對該顯示框中的內容進行操作的操作指令時,對緩沖區(qū)單元302中該用戶目錄下的內容和顯示框中顯示的內容進行相應處理。同步單元305,適于監(jiān)控緩沖區(qū)單元302中該用戶目錄下的內容,并同步緩沖區(qū)單元302中該用戶目錄下的內容和服務器端的該用戶的文件列表中的內容。在本發(fā)明的一個實施例中,指令操作單元304適于執(zhí)行以下操作中的一種或多種當收到向顯示框拖入指定圖標的拖入指令時,將該指定圖標對應的原始文件保存到緩沖區(qū)單元302中該用戶目錄下,并在顯示框中顯示該指定圖標;當收到從顯示框拖出指定圖標的拖出指令時,先判斷該指定圖標對應的原始文件是否已在緩沖區(qū)單元302中該用戶目錄下,如果是,則直接復制緩沖區(qū)單元302中該用戶目錄下的對應的原始文件到拖出指令的目標位置,如果否,則先從服務器端下載對應的原始文件到緩沖區(qū)單元302中該用戶目錄下,再復制緩沖區(qū)單元302中該用戶目錄下的對應的原始文件到拖出指令的目標位置;當收到對顯示框中指定圖標對應的原始文件進行修改的修改指令時,先判斷對應的原始文件是否已在緩沖區(qū)單元302中該用戶目錄下;如果是,直接根據該修改指令修改緩沖區(qū)單元302中該用戶目錄下的對應的原始文件,并對應修改該指定圖標的屬性信息;如果否,先從服務器端下載對應的原始文件到緩沖區(qū)單元302中該用戶目錄下,再根據該修改指令修改緩沖區(qū)單元302中該用戶目錄下的對應的原始文件,并對應修改該指定圖標的屬性信息;當收到修改顯示框中的指定圖標的屬性信息的指令時,對應修改緩沖區(qū)單元302中該用戶目錄下的該指定圖標的對應屬性信息,并在顯示框中顯示屬性信息被修改后的該指定圖標;當收到刪除顯示框中的指定圖標的刪除指令時,從緩沖區(qū)單元302中該用戶目錄下刪除該指定圖標的屬性信息,以及如果還存在對應的原始文件,一并刪除,并在顯示框中取消顯示所述指定圖標。在本發(fā)明的一個實施例中,同步單元305適于利用操作系統(tǒng)的文件控件驅動監(jiān)控緩沖區(qū)單元302中該用戶目錄下的內容。在本發(fā)明的一個實施例中,同步單元305適于對比緩沖區(qū)單元302中該用戶目錄下的內容和服務器端的該用戶的文件列表中的內容;如果某一內容在緩沖區(qū)單元302中該用戶目錄下存在,而服務器端的該用戶的文件列表中不存在,則將該內容上傳到服務器端的該用戶的文件列表中;如果某一內容在該緩沖區(qū)單元302中該用戶目錄下不存在,而服務器端的該用戶的文件列表中存在,則從服務器端的該用戶的文件列表中下載該內容到緩沖區(qū)單元302中該用戶目錄下;如果某一內容在緩沖區(qū)單元302中該用戶目錄下以及服務器端的該用戶的文件列表中均存在,但版本不一致,則根據版本的新舊執(zhí)行上傳更新或下載更新。
在本發(fā)明的一個實施例中,同步單元305適于按預設個數(shù)的字節(jié)分片進行哈希值對比;其中,對比的內容包括以下內容中的一種或多種文件名、版本信息、數(shù)據塊。在本發(fā)明的一個實施例中,同步單元305適于采用多線程斷點續(xù)傳方式執(zhí)行上傳和下載過程。這樣可以提供同步效率,節(jié)省用戶帶寬,帶來更好的用戶體驗。在本發(fā)明的一個實施例中,顯示單元301適于采用DirectH技術繪制顯示框。例如所繪制的顯示如圖2所示。圖4示出了根據本發(fā)明一個實施例的一種實現(xiàn)文件同步存儲的系統(tǒng)的組成示意圖。如圖4所示,該實現(xiàn)文件同步存儲的系統(tǒng)包括服務器400和多個如圖3所示的客戶端300。服務器400適于按用戶區(qū)分保存各個客戶端300上傳的內容,并接受各個客戶端300對所保存內容的下載和修改??蛻舳?00的組成結構和功能如圖3所示,這里不再復述。綜上所述,本發(fā)明的技術方案使得用戶可以很方便的將本地桌面上的文件存儲到服務器上實現(xiàn)文件的存儲和同步。并且服務器上的文件可以與本地文件一樣編輯保存,編輯完畢后文件會自動同步到云服務器上,無需用戶使用移動存儲設備或打開其他軟件界面即可便捷的實現(xiàn)本地文件的服務器存儲和服務器文件的使用。需要說明的是在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權利要求書由此明確地并入該具體實施方式
,其中每個權利要求本身都作為本發(fā)明的單獨實施例。本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。 本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據本發(fā)明實施例的實現(xiàn)文件同步存儲的系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權利要求
1.一種實現(xiàn)文件同步存儲的系統(tǒng),包括服務器和多個客戶端;所述服務器,適于按用戶區(qū)分保存所述多個客戶端上傳的內容,并接受所述多個客戶端對所保存內容的下載和修改;所述客戶端包括顯示單元、緩沖區(qū)單元、登錄單元、指令操作單元和同步單元;所述顯示單元,適于生成顯示框;所述緩沖區(qū)單元,適于按用戶區(qū)分保存數(shù)據;所述登錄單元,適于在用戶登錄時,從服務器端獲取所述用戶的文件列表,將所述用戶的文件列表中文件對應的圖標屬性信息保存在緩沖區(qū)單元中所述用戶目錄下,并在所述顯示框內顯示與所述用戶文件列表中文件對應的圖標;所述指令操作單元,適于在收到所述用戶對所述顯示框中的內容進行操作的操作指令時,對所述緩沖區(qū)單元中所述用戶目錄下的內容和所述顯示框中顯示的內容進行相應處理;所述同步單元,適于監(jiān)控所述緩沖區(qū)單元中所述用戶目錄下的內容,并同步所述緩沖區(qū)單元中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容。
2.如權利要求1所述的系統(tǒng),其中,所述指令操作單元,進一步適于執(zhí)行以下操作中的一種或多種當收到向所述顯示框拖入指定圖標的拖入指令時,將所述指定圖標對應的原始文件保存到所述緩沖區(qū)單元中所述用戶目錄下,并在所述顯示框中顯示所述指定圖標;當收到從所述顯示框拖出指定圖標的拖出指令時,先判斷所述指定圖標對應的原始文件是否已在所述緩沖區(qū)單元中所述用戶目錄下,如果是,則直接復制所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置,如果否,則先從服務器端下載所述對應的原始文件到所述緩沖區(qū)單元中所述用戶目錄下,再復制所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置;當收到對所述顯示框中指定圖標對應的原始文件進行修改的修改指令時,先判斷所述對應的原始文件是否已在所述緩沖區(qū)單元中所述用戶目錄下;如果是,直接根據所述修改指令修改所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;如果否,先從服務器端下載所述對應的原始文件到所述緩沖區(qū)單元中所述用戶目錄下,再根據所述修改指令修改所述緩沖區(qū)單元中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;當收到修改所述顯示框中的指定圖標的屬性信息的指令時,對應修改所述緩沖區(qū)單元中所述用戶目錄下的所述指定圖標的對應屬性信息,并在所述顯示框中顯示屬性信息被修改后的所述指定圖標;當收到刪除所述顯示框中的指定圖標的刪除指令時,從所述緩沖區(qū)單元中所述用戶目錄下刪除所述指定圖標的屬性信息,以及如果還存在對應的原始文件,一并刪除,并在所述顯示框中取消顯示所述指定圖標。
3.如權利要求1所述的系統(tǒng),其中,所述同步單元,進一步適于利用操作系統(tǒng)的文件控件驅動監(jiān)控所述緩沖區(qū)單元中所述用戶目錄下的內容。
4.如權利要去I所述的系統(tǒng),其中,所述同步單元,進一步適于對比所述緩沖區(qū)單元中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容;如果某一內容在所述緩沖區(qū)單元中所述用戶目錄下存在,而服務器端的所述用戶的文件列表中不存在,則將該內容上傳到服務器端的所述用戶的文件列表中;如果某一內容在所述緩沖區(qū)單元中所述用戶目錄下不存在,而服務器端的所述用戶的文件列表中存在,則從服務器端的所述用戶的文件列表中下載該內容到所述緩沖區(qū)單元中所述用戶目錄下;如果某一內容在所述緩沖區(qū)單元中所述用戶目錄下以及服務器端的所述用戶的文件列表中均存在,但版本不一致,則根據版本的新舊執(zhí)行上傳更新或下載更新。
5.如權利要求4所述的系統(tǒng),其中,所述同步單元,進一步適于按預設個數(shù)的字節(jié)分片進行哈希值對比;其中,對比的內容包括以下內容中的一種或多種文件名、版本信息、數(shù)據塊。
6.如權利要求4所述的系統(tǒng),其中,所述同步單元,進一步適于采用多線程斷點續(xù)傳方式執(zhí)行所述上傳和下載過程。
7.如權利要求1所述的系統(tǒng),其中,所述顯示單元,進一步適于采用Directn技術繪制所述顯示框。
8.一種實現(xiàn)文件同步存儲的方法,包括在用戶登錄時,從服務器端獲取所述用戶的文件列表,將所述用戶的文件列表中文件對應的圖標屬性信息保存在本地緩沖區(qū)中所述用戶目錄下,并在顯示框內顯示與所述用戶文件列表中文件對應的圖標;當收到所述用戶的對所述顯示框中的內容進行操作的操作指令時,對本地緩沖區(qū)中所述用戶目錄下的內容和顯示框中顯示的內容進行相應處理;以及,監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容,并同步本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容;其中,所述顯示框為采用Directn技術繪制的窗口。
9.如權利要求8所述的方法,其中,所述當收到所述用戶的對所述顯示框中的內容進行操作的操作指令時,對本地緩沖區(qū)中所述用戶目錄下的內容和顯示框中顯示的內容進行相應處理包括以下一種或多種當收到向所述顯示框拖入指定圖標的拖入指令時,將所述指定圖標對應的原始文件保存到本地緩沖區(qū)中所述用戶目錄下,并在所述顯示框中顯示所述指定圖標;當收到從所述顯示框拖出指定圖標的拖出指令時,先判斷所述指定圖標對應的原始文件是否已在本地緩沖區(qū)中所述用戶目錄下,如果是,則直接復制本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置,如果否,則先從服務器端下載所述對應的原始文件到本地緩沖區(qū)中所述用戶目錄下,再復制本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件到拖出指令的目標位置;當收到對所述顯示框中指定圖標對應的原始文件進行修改的修改指令時,先判斷所述對應的原始文件是否已在本地緩沖區(qū)中所述用戶目錄下;如果是,直接根據所述修改指令修改本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;如果否,先從服務器端下載所述對應的原始文件到本地緩沖區(qū)中所述用戶目錄下, 再根據所述修改指令修改本地緩沖區(qū)中所述用戶目錄下的所述對應的原始文件,并對應修改所述指定圖標的屬性信息;當收到修改所述顯示框中的指定圖標的屬性信息的指令時,對應修改本地緩沖區(qū)中所述用戶目錄下的所述指定圖標的對應屬性信息,并在所述顯示框中顯示屬性信息被修改后的所述指定圖標;當收到刪除所述顯示框中的指定圖標的刪除指令時,從本地緩沖區(qū)中所述用戶目錄下刪除所述指定圖標的屬性信息,以及如果還存在對應的原始文件,一并刪除,并在所述顯示框中取消顯示所述指定圖標。
10.如權利要求8所述的方法,其中,所述監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容包括利用操作系統(tǒng)的文件控件驅動監(jiān)控本地緩沖區(qū)中所述用戶目錄下的內容。
11.如權利要求8所述的方法,其中,所述同步本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容包括 對比本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容;如果某一內容在本地緩沖區(qū)中所述用戶目錄下存在,而服務器端的所述用戶的文件列表中不存在,則將該內容上傳到服務器端的所述用戶的文件列表中;如果某一內容在本地緩沖區(qū)中所述用戶目錄下不存在,而服務器端的所述用戶的文件列表中存在,則從服務器端的所述用戶的文件列表中下載該內容到本地緩沖區(qū)中所述用戶目錄下;如果某一內容在本地緩沖區(qū)中所述用戶目錄下以及服務器端的所述用戶的文件列表中均存在,但版本不一致,則根據版本的新舊執(zhí)行上傳更新或下載更新操作。
12.如權利要求11所述的方法,其中,所述對比本地緩沖區(qū)中所述用戶目錄下的內容和服務器端的所述用戶的文件列表中的內容包括按預設個數(shù)的字節(jié)分片進行哈希值對比;對比的內容包括以下內容中的一種或多種文件名、版本信息、數(shù)據塊。
13.如權利要求12所述的方法,其中,所述上傳和下載過程的數(shù)據傳輸采用多線程斷點續(xù)傳方式。
全文摘要
本發(fā)明公開了一種實現(xiàn)文件同步存儲的系統(tǒng)和方法,涉及網絡通信技術領域。系統(tǒng)包括服務器和多個客戶端;服務器適于按用戶區(qū)分保存多個客戶端上傳的內容并接受客戶端對所保存內容的下載和修改;客戶端包括顯示單元、緩沖區(qū)單元、登錄單元、指令操作單元和同步單元;顯示單元適于生成顯示框;緩沖區(qū)單元適于按用戶區(qū)分保存數(shù)據;登錄單元適于在用戶登錄時獲取用戶的文件列表并將其信息保存在用戶目錄下,并顯示對應的圖標;指令操作單元適于在收到操作指令時對用戶目錄下的內容和顯示的內容進行處理;同步單元適于監(jiān)控用戶目錄下的內容并同步該內容和服務器端的用戶的文件列表中的內容。發(fā)明的技術方案即方便了用戶的操作,又節(jié)省了網絡傳輸資源。
文檔編號H04L29/08GK103002048SQ20121055932
公開日2013年3月27日 申請日期2012年12月20日 優(yōu)先權日2012年12月20日
發(fā)明者李利東, 閆磊 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司