本發(fā)明涉及通信技術領域,特別涉及一種終端與服務器進行同步的方法和裝置。
背景技術:隨著云技術的發(fā)展,越來越多用戶將文件保存在云端。目前,云端支持手機、個人計算機(personalcomputer,PC)、萬維網Web等客戶端實時跟云端的文件進行同步,在無需用戶的干預下保證用戶本地的數據和云端的數據相一致,以便用戶無論何時何地都保證獲取最新數據,給用戶良好體驗。現有技術中,典型的云端同步有兩種方式:全量式同步和增量式同步。全量式同步是指當云端有更新,那么客戶端需要從服務器獲取全量數據到本地客戶端,然后比較本地客戶端數據和從云端獲取得到的數據,獲取不一致的數據,最后同步不一致的數據。其中,從云端獲取全量數據需要大量用戶的流量。增量式同步是指當云端有更新,那么客戶端和云端僅同步更新的數據,無需獲取全部數據。因此可以大大減輕用戶的流量。但是,現有的增量式同步在實現移動操作時,是通過拷貝和刪除操作組 合來實現的。如圖1所示,云端在將S目錄下的f文件移動到D目錄下時,現有技術是先將文件f復制到D目錄下,生成新文件f’,然后刪除S目錄下的f文件。其中,云端需要為f’重新產生一個新的文件邏輯號(logicalFileId)(需要說明的是,云端使用文件邏輯號,而不是文件名作為文件的唯一標識符,因為文件名可以隨意改名,導致無法作為文件的唯一標識符)。由于云端對于文件f’重新產生一個新的文件邏輯號,因此,會導致原有關聯文件f的共享、公開以及外鏈的鏈接失效。而且,當客戶端從云端同步目錄S和目錄D時,需要刪除終端中S目錄下的f文件,并從云端下載文件f’到終端的目錄D下,導致網絡流量的浪費。
技術實現要素:本發(fā)明實施例提供一種終端與服務器進行同步的方法和裝置以解決在客戶端與云端同步移動操作時,導致流量浪費以及鏈接失效的問題。第一方面,一種終端與服務器進行同步,包括:服務器接收將文件從第一目錄移動到第二目錄的請求,所述請求中攜帶所述文件的標識和所述第二目錄的標識;服務器根據所述文件的標識查找所述文件的元數據,在所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標識,并在所述第一目 錄下創(chuàng)建所述文件的代理元數據,所述代理元數據用于表示所述文件已移動到第二目錄;所述服務器將所述文件的代理元數據發(fā)送給所述終端,以通過所述終端本地的所述文件來進行所述服務器和所述終端之間的同步。在第一方面的第一種可能的實現方式中,所述代理元數據包括所述文件的標識,第二目錄的標識以及用于表示所述文件已發(fā)生移動的移動標記;所述服務器將所述文件的代理元數據發(fā)送給終端后,所述方法還包括:所述終端根據所述代理元數據中的移動標記確定所述文件已發(fā)生移動;根據所述文件的標識在本地查找所述文件的元數據;在查找到的所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標識。在第一方面的第二種可能的實現方式中,所述方法還包括:將所述文件的元數據發(fā)送給所述終端;所述終端根據所述文件的代理元數據更新所述終端中的第一目錄,并根據所述文件的元數據更新所述終端中的第二目錄。結合第一方面的第二種可能的實現方式,在第三種可能的實現方式中,所述文件的元數據包括所述文件的標識和所述第二目錄的標識;所述根據所述文件的元數據更新所述終端中的第二目錄具體包括:所述終端根據所述文件的元數據中的所述文件的標識在本地查找所述文件的元數據;在查找到的所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標識。結合第一方面的第三種可能的實現方式,在第四種可能的實現方式中,所述代理元數據中包括所述文件的標識,第二目錄的標識以及用于表示所述文件已發(fā)生移動的移動標記;所述終端根據所述文件的代理元數據更新所述終端中的第一目錄具體包括:所述終端根據所述代理元數據中的移動標記確定所述文件已發(fā)生移動;根據所述代理元數據中的文件的標識在本地查找所述文件的元數據;判斷查找到的所述文件的元數據中所述文件的父目錄標識是否為所述第二目錄的標識;若所述文件的父目錄標識不是所述第二目錄的標識,則在查找到的所述文件的元數據中將所述文件設置為隱藏;若所述文件的父目錄標識是所述第二目錄的標識,則不對所述文件做處理。結合第一方面的第四種可能的實現方式,在第五種可能的實現方式 中,在所述終端根據所述文件的元數據中的所述文件的標識在本地查找到所述文件的元數據后,所述方法還包括:確定所述文件的狀態(tài),若所述文件為隱藏狀態(tài),則在所述文件的元數據中將所述文件更改為顯示狀態(tài)。結合第一方面或第一方面第一至四任一種可能的實現方式,在第六種可能的實現方式中,在所述服務器根據所述文件的標識查找所述文件的元數據后,所述方法還進一步包括:服務器判斷所述第二目錄下是否存在表明所述文件已從所述第二目錄移走的代理元數據;若所述第二目錄下存在用于表明所述文件已從所述第二目錄移走的代理元數據,則刪除所述代理元數據。第二方面,一種終端與服務器進行同步的方法,包括:在服務器通過在文件的元數據中更改所述文件的父目錄標識的方式將所述文件從第一目錄移動到第二目錄,并在第一目錄下創(chuàng)建所述文件的代理元數據后,終端從所述務器接收所述文件的代理元數據,所述代理元數據用于表示所述文件已移動到第二目錄;所述終端根據所述代理元數據在終端本地查找所述文件的元數據,通過在本地查找到的所述文件的元數據來完成與所述服務器的同步。結合第二方面的第一種可能的實現方式,所述代理元數據包括所述文 件的標識,第二目錄的標識以及用于表示所述文件已發(fā)生移動的移動標記;所述終端根據所述代理元數據在終端本地查找所述文件的元數據,通過在本地查找到的所述文件的元數據來完成與所述服務器的同步具體包括:所述終端根據所述代理元數據中的移動標記確定所述文件已發(fā)生移動;根據所述文件的標識在本地查找所述文件的元數據;在查找到的所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標識。結合第二方面的第二種可能的實現方式,所述通過在本地查找到的所述文件的元數據來完成與所述服務器的同步具體包括:通過在本地查找到的所述文件的元數據來完成所述終端中的第一目錄與所述服務器中的第一目錄的同步;所述方法還包括:所述終端從所述服務器接收所述文件的元數據;所述終端根據接收到的所述文件的元數據完成所述終端中的第二目錄與所述服務器中的第二目錄的同步。結合第二方面的第二種可能的實現方式,在第三種可能的實現方式中,所述從所述服務器接收的所述文件的元數據包括所述文件的標識和所述第二目錄的標識;所述終端根據所述文件的元數據完成所述終端中的第二目錄與所述服務器中的第二目錄的同步具體包括:所述終端根據接收到的所述文件的元數據中的所述文件的標識在本地查找所述文件的元數據;在查找到的所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標識。結合第二方面的第三種可能的實現方式,在第四種可能的實現方式中,所述代理元數據中包括所述文件的標識,第二目錄的標識以及用于表示所述文件已發(fā)生移動的移動標記;所述終端根據所述代理元數據在終端本地查找所述文件的元數據,通過在本地查找到的所述文件的元數據來完成所述終端中的第一目錄與所述服務器中的第一目錄的同步具體包括:所述終端根據所述代理元數據中的移動標記確定所述文件已發(fā)生移動;根據所述代理元數據中的文件的標識在本地查找所述文件的元數據;判斷查找到的所述文件的元數據中所述文件的父目錄標識是否為所述第二目錄的標識;若所述文件的父目錄標識不是所述第二目錄的標識,則在查找到的所述文件的元數據中將所述文件設置為隱藏;若所述文件的父目錄標識是所述第二目錄的標識,則不對所述文件做處理。結合第二方面的第四種可能的實現方式,在第五種可能的實現方式中,在所述終端根據所述文件的元數據中的所述文件的標識在本地查找到所述文件的元數據后,所述方法還包括:確定所述文件的狀態(tài),若所述文件為隱藏狀態(tài),則在所述文件的元數據中將所述文件更改為顯示狀態(tài)。第三方面,一種與終端進行同步的服務器,所述服務器包括:接收單元,用于接收將文件從第一目錄移動到第二目錄的請求,所述請求中攜帶所述文件的標識和所述第二目錄的標識;處理單元,用于根據所述文件的標識查找所述文件的元數據,在所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標識,并在所述第一目錄下創(chuàng)建所述文件的代理元數據,所述代理元數據用于表示所述文件已移動到所述第二目錄;同步單元,用于將所述文件的代理元數據發(fā)送給終端,以通過所述終端本地的所述文件來進行所述服務器和所述終端之間的同步。在第三方面的第一種可能的實現方式中,所述同步單元還用于將所述文件的元數據發(fā)送給所述終端;所述文件的代理元數據用以同步第一目錄,所述文件的元數據用以同步第二目錄。結合第三方面或第三方面的第一種可能的實現方式,在第二種可能的實現方式中,所述處理單元在將所述文件的父目錄標識更改為所述第二目錄的標識時,還進一步用于判斷所述第二目錄下是否存在用于表示所述文件已從所述第二目錄移除的代理元數據;若所述第二目錄下存在用于指示所述文件已從所述第二目錄移除的代理元數據,則刪除所述第二目錄下的代理元數據。第四方面,一種與服務器進行同步的終端,包括:同步單元,用于在服務器通過在文件的元數據中更改所述文件的父目錄標識的方式將所述文件從第一目錄移動到第二目錄,并在第一目錄下創(chuàng)建所述文件的代理元數據后,從所述服務器接收所述文件的代理元數據,并提供給處理單元,所述代理元數據用于表示所述文件已移動到第二目錄;所述處理單元,用于根據所述代理元數據在終端本地查找所述文件的元數據,通過在本地查找到的所述文件的元數據來完成與所述服務器的同步。在第四方面的第一種可能的實現方式中,所述代理元數據包括所述第一文件的標識,所述第二目錄的標識以及用于指示所述文件已發(fā)生移動的移動標記;所述處理單元具體用于根據所述代理元數據中的移動標記確定所述文件已發(fā)生移動;根據所述文件的標識在本地查找所述文件的元數據;在查找到的所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標 識。在第四方面的第二種可能的實現方式中,所述同步單元還用于從所述服務器接收所述文件的元數據;所述處理單元具體包括:第一操作模塊,用于根據所述代理元數據在終端本地查找所述文件的元數據,通過在本地查找到的所述文件的元數據來完成本地的第一目錄與所述服務器中的第一目錄的同步;第二操作模塊,用于根據接收到的所述文件的元數據完成本地的第二目錄與所述服務器中的第二目錄的同步。結合第四方面的第二種可能的實現方式,在第三種可能的實現方式中,所述從所述服務器接收的所述文件的元數據包括所述文件的標識和所述第二目錄的標識;所述第二操作模塊具體用于根據接收到的所述文件的元數據中的所述文件的標識在本地查找所述文件的元數據;在查找到的所述文件的元數據中將所述文件的父目錄標識更改為所述第二目錄的標識。結合第四方面的第三種可能的實現方式,在第四種可能的實現方式中,所述代理元數據中包括所述文件的標識,第二目錄的標識以及用于表示所述文件已發(fā)生移動的移動標記;所述第一操作模塊具體用于根據所述代理元數據中的移動標記確定所述文件已發(fā)生移動;根據所述代理元數據中的文件的標識在本地查找所述文件的元數據;判斷查找到的所述文件的元數據中所述文件的父目錄標識是否為所述第二目錄的標識;若所述文件的父目錄標識不是所述第二目錄的標識,則在查找到的所述文件的元數據中將所述文件設置為隱藏;若所述文件的父目錄標識是所述第二目錄的標識,則不對所述文件做處理。結合第四方面的第三種可能的實現方式,在第四種可能的實現方式中,所述第二操作模塊還用于在查找到所述文件的元數據后,確定所述文件的狀態(tài),若所述文件處于隱藏狀態(tài),則在所述文件的元數據中將所述文件更改為顯示狀態(tài)。本發(fā)明實施例中,服務器通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,并在源目錄下為已移動到目標目錄的文件創(chuàng)建代理元數據,使得終端在同步源目錄和目標目錄時,可以識別出服務器側發(fā)生的是移動操作,從而利用終端本地的文件來實現與服務器的同步,而無需從服務器側重新下載文件,節(jié)約了網絡資源。而且本發(fā)明通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,使得文件的邏輯號保持不變,從而可以保持原有關聯文件f的共享、公開以及外鏈的鏈接仍然有效。附圖說明為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是現有技術中的同步方法的流程圖;圖2是本發(fā)明實施例提供的終端與服務器進行同步方法的流程圖;圖3是本發(fā)明另一實施例提供的終端與服務器進行同步方法的流程圖;圖4是本發(fā)明實施例提供的同步方法在具體應用中的處理流程圖;圖5是本發(fā)明實施例提供的文件f的移動示意圖;圖6是本發(fā)明實施例提供的網絡架構示意圖;圖7是本發(fā)明實施例提供的與終端進行同步的服務器的結構示意圖;圖8是本發(fā)明另一實施例提供的與終端進行同步的服務器的結構示意圖;圖9是本發(fā)明另一實施例提供的與服務器進行同步的終端的結構示意圖;圖10是本發(fā)明另一實施例提供的與服務器進行同步的終端的結構示意圖;圖11是本發(fā)明實施例提供的與終端進行同步的服務器的硬件結構示意圖;圖12是本發(fā)明另一實施例提供的與服務器進行同步的終端的硬件結構示意圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖2為本發(fā)明實施例提供的終端與服務器進行同步方法的流程圖,具體包括:S200,服務器接收將文件從第一目錄移動到第二目錄的請求,該請求中攜帶該文件的標識和第二目錄的標識。其中,服務器可以是云同步服務器,用于提供云同步服務,實現在用戶的多個終端上同步文件。在用戶與服務器同步的多個終端中,若其中一個終端中的文件從第一目錄移動到了第二目錄,則該終端會向服務器發(fā)起將文件從第一目錄移動到第 二目錄的請求,以使服務器根據該請求執(zhí)行移動操作,并通過服務器同步用戶的其它終端??蛇x的,步驟S200中的請求也可以由用戶通過Web客戶端向服務器發(fā)送,使服務器根據該請求執(zhí)行移動操作后,再從服務器同步到用戶的所有或部分終端中。其中,服務器接收到的請求中要攜帶需要移動的文件的標識以及該文件的目標目錄的標識。在本實施例中,要移動的文件的源目錄為第一目錄,目標目錄為第二目錄,因此服務器接收到的請求中需要攜帶第二目錄的標識。對于文件的源目錄的標識則可以攜帶,也可以不攜帶。S202,服務器根據請求中攜帶的文件的標識查找該文件的元數據,在該文件的元數據中將該文件的父目錄標識更改為第二目錄的標識,并在第一目錄下創(chuàng)建該文件的代理元數據,其中,代理元數據用于表示該文件已移動到第二目錄。服務器在識別出接收到的請求為執(zhí)行移動操作的請求后,執(zhí)行步驟S202的操作。其中,服務器可以根據請求的名稱或者請求中指定的操作類型來確定接收到的請求為執(zhí)行移動操作的請求。該請求可以采用現有技術中的移動操作請求,這里不再贅述。需要說明的是,文件的屬性通常是通過文件的元數據來定義。比如,文 件和目錄的歸屬關系,可以由文件的元數據中的父目錄項來定義。本發(fā)明實施例中,服務器在接收到將文件移動第二目錄的請求后,可以根據請求中攜帶的文件標識查找與該文件標識對應的文件的元數據,并在該文件的元數據中將該文件的父目錄標識更改為第二目錄的標識。另外,服務器還需要在該文件的源目錄(即第一目錄下)為該文件創(chuàng)建代理元數據,以在與終端同步第一目錄時,通過代理元數據指示終端該文件已移動到第二目錄。其中,文件的代理元數據可以由文件的元數據加移動標記構成,或者由文件的元數據中的部分數據加移動標記構成。其中,移動標記用于指示該文件已發(fā)生移動。通常情況下,文件的元數據可以包括文件的標識,文件的父目錄標識等屬性。本實施例中,由于文件已經移動到目標目錄(即第二目錄),因此該文件的代理元數據可以包括該文件的標識,第二目錄的標識以及移動標記。S204,服務器將文件的代理元數據發(fā)送給終端,以通過終端本地的該文件來進行服務器和終端之間的同步。需要說明的是,本發(fā)明實施例中的同步可以是完全同步,也可以是部分同步,終端和服務器可以分別針對第一目錄和第二目錄進行同步。服務器在確定要同步的目錄后,檢測要同步的目錄中自上次同步后的更新數據,將檢測到的更新數據發(fā)送給終端。比如,本實施例,服務器和終端同步第一目錄 時,服務器檢測第一目錄在本次同步與上次同步期間的更新數據,在確定該更新數據包括文件的代理元數據時,則將第一目錄下的文件的代理元數據發(fā)送給終端。終端在接收到服務器返回的代理元數據后,可以根據該代理元數據中的移動標記獲知接收到的數據為文件的代理元數據,然后根據該代理元數據更新本地的文件,以完成與服務器之間的同步。需要說明的是,服務器與終端之間的同步可以由終端發(fā)起。服務器可以根據終端發(fā)送的同步請求來確定需要同步的目錄。本發(fā)明實施例通過更改文件的父目錄的方式將文件從第一目錄移動到第二目錄,并在第一目錄下為已移動到第二目錄的文件創(chuàng)建代理元數據,使得終端在同步第一目錄時,可以將表示文件發(fā)生移動的代理元數據發(fā)送給終端,終端可以通過該代理元數據識別出服務器側發(fā)生的是移動操作,從而通過終端本地的文件來完成與服務器的同步,而無需從服務器側重新下載文件,節(jié)約了網絡資源。而且本發(fā)明通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,使得文件的邏輯號保持不變,從而可以保持原有關聯文件f的共享、公開以及外鏈的鏈接仍然有效。在本發(fā)明一個實施例中,終端在接收到服務器發(fā)送的代理元數據后可以進行如下處理:終端根據代理元數據中的移動標記確定該文件已發(fā)生移動; 根據代理元數據中攜帶的文件標識在本地查找該文件的元數據;在查找到的該文件的元數據中將該文件的父目錄標識更改為所述第二目錄的標識。在上述實施例中,終端通過在本地找到與代理元數據對應的文件,直接將該文件的父目錄更改為第二目錄,從而在終端本地實現了文件在目錄間的移動,而無需從服務器下載文件,卻又能與服務器保持同步。上述實施例描述了在服務器將文件從第一目錄移動到第二目錄后,終端在與服務器同步第一目錄的過程中,完成文件移動操作的同步過程。在本發(fā)明的另一實施例中,終端可以根據文件的代理元數據來更新終端中的第一目錄,也可以在對第二目錄的同步過程中更新第二目錄。具體的,本實施例在圖2所示實施例的基礎上,可以進一步包括:服務器將該文件的元數據發(fā)送給終端;終端根據該文件的代理元數據更新終端中的第一目錄,并根據該文件的元數據更新終端中的第二目錄。其中,終端與服務器在同步第二目錄時,服務器檢測第二目錄在本次同步與上次同步期間的更新數據,在確定該更新數據包括有被移動到第二目錄的文件的元數據時,將該文件的元數據發(fā)送給終端。文件的元數據可以包括該文件的標識和第二目錄的標識。終端根據文件的元數據更新終端中的第二目錄具體可以包括:終端根據服務器發(fā)送的文件的元數據中攜帶的文件的標識在本地查找該文件的元數據;在查找到的該文 件的元數據中將該文件的父目錄標識更改為接收到的文件的元數據中攜帶的第二目錄的標識。終端根據文件的代理元數據更新終端中的第一目錄具體可以包括:終端根據代理元數據中攜帶的文件標識在本地查找該文件的元數據;判斷查找到的文件的元數據中該文件的父目錄標識是否為代理元數據中攜帶的第二目錄的標識;若該文件的父目錄標識不是第二目錄的標識,則在查找到的文件的元數據中將該文件設置為隱藏;若該文件的父目錄標識為第二目錄的標識,則不對該文件做處理。在具體實施時,終端可能先發(fā)起對第一目錄的同步,也有可能先發(fā)起對第二目錄的同步。當終端先同步第一目錄時,如果終端根據服務器返回的代理元數據確定第一目錄下有文件移動到了第二目錄中,此時,終端可以直接通過更改該文件的元數據中父目錄將該文件移動到第二目錄,也可以將第一目錄下的該文件設置為隱藏,而不刪除該文件。其中,將該文件設置為隱藏,是為了提高用戶體驗,以免在終端還未同步第二目錄時,就更改終端中的第二目錄。而且將文件設置為隱藏,不僅可以使終端在同步第二目錄時還可以找到該文件,而不用從服務器重新下載該文件。而且,在用戶看來,終端的第一目錄與服務器的第一目錄下的文件也能保持一致。需要說明的是,如果終端根據在同步第一目錄時是采用更改文件的父目 錄的方式,該操作與同步第二目錄時的操作不沖突,只是在該文件的元數據中執(zhí)行了兩次同樣的操作。當然,為了減少重復操作,在同步第一目錄或第二目錄時都可以先判斷文件的父目錄是否已更改為第二目錄,如果已更改則無需再執(zhí)行更改的操作。如果終端在同步第一目錄時采用將文件設置為隱藏的方式,則終端在同步第二目錄時還可以進一步包括以下步驟:終端在查找需同步的文件的元數據后,確定該文件的狀態(tài),若該文件為隱藏狀態(tài),則還進一步在該文件的元數據中將該文件更改為顯示狀態(tài)。在本發(fā)明實施例中,通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,并在源目錄下為已移動到目標目錄的文件創(chuàng)建代理元數據,使得終端在同步源目錄和目標目錄時,可以識別出服務器側發(fā)生的是移動操作,從而在終端本地按移動操作執(zhí)行,而無需從服務器側重新下載文件,節(jié)約了網絡資源。而且本發(fā)明通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,使得文件的邏輯號保持不變,從而可以保持原有關聯文件f的共享、公開以及外鏈的鏈接仍然有效。在具體實現本發(fā)明實施例所提供的方案時,有可能存在以下情況:用戶先將文件f從S目錄移動到D目錄,然后又將文件f從D目錄移動回S目錄。在這種情況下,如果按照本發(fā)明實施例提供的方案,當再次將文件f從D目 錄移動回S目錄時,S目錄下已存在有文件f的代理元數據,這種情況下該代理元數據已沒有必要存在。因此,在本發(fā)明的另一實施例中,步驟S102中的服務器在將文件的父目錄標識更改為第二目錄的標識時,還可以進一步包括以下處理:判斷第二目錄下是否存在用于指示該文件已從第二目錄移除的代理元數據;若第二目錄下存在用于指示該文件已從第二目錄移除的代理元數據,則刪除該代理元數據。另外,為了節(jié)約存儲資源,在本發(fā)明的另一實施例中,服務器還可以定期清除代理元數據。具體的,服務器可以為代理元數據設置時限,服務器根據預設時限,刪除服務器中超期的代理元數據。在另一可能的實施例中,服務器在發(fā)生數據更新之后,還可以向與服務器同步的終端發(fā)送更新通知,即,在步驟S202之后還可以進一步包括:向與服務器同步的終端發(fā)送第一目錄和第二目錄的更新通知,以便該終端根據該更新通知發(fā)起同步第一目錄或第二目錄的請求。其中,與服務器同步的終端是指用戶在服務器注冊過,并與服務器建立了連接的終端。這里的用戶是指被更新的文件所屬的用戶。需要說明的是,如果在步驟S200中是由用戶的其中一個終端發(fā)生文件移動而想服務器發(fā)起將文件從第一目錄移動到第二目錄的請求,服務器在發(fā)送更新通知時可以不向發(fā)起該請求的終端發(fā)送更新通知。下面從終端側對本發(fā)明實施例做更進一步的說明,如圖3所示,圖3為本發(fā)明另一實施例提供的一種同步的方法的流程圖,該方法包括:S300,在服務器通過在文件的元數據中更改所述文件的父目錄標識的方式將所述文件從第一目錄移動到第二目錄,并在第一目錄下創(chuàng)建所述文件的代理元數據后,終端從服務器接收服務器創(chuàng)建在第一目錄下的文件的代理元數據,該代理元數據用于表示該文件已移動到第二目錄。在服務器將文件從第一目錄移動到第二目錄后,服務器會在第一目錄下創(chuàng)建該文件的代理元數據。當服務器與終端進行第一目錄的同步時,檢測第一目錄下自上次同步后的更新數據。由于在本次同步和上次同步之間,第一目錄下新增了文件的代理元數據。服務器在檢測更新數據時,會檢測到該文件的代理元數據,并把該文件的代理元數據作為更新數據發(fā)送給終端。S302,終端根據該代理元數據在終端本地查找該文件的元數據,通過在本地查找到的文件的元數據來完成與服務器的同步。其中,代理元數據可以包括文件的標識,第二目錄的標識以及移動標記。其中,移動標記用于表示文件已發(fā)生移動,終端在接收到更新數據后,可以根據移動標記來區(qū)分是代理元數據還是元數據。第二目錄為文件移動時的目標目錄,即文件當前的父目錄。具體的,終端根據代理元數據在終端本地查找文件的元數據,通過在本 地查找到的該文件的元數據來完成與服務器的同步具體可包括:終端根據代理元數據中的移動標記確定該文件已發(fā)生移動;根據該文件的標識在本地查找該文件的元數據,在查找到的該文件的元數據中將該文件的父目錄標識更改為第二目錄的標識。上述實施例描述了在服務器將文件從第一目錄移動到第二目錄后,終端在與服務器同步第一目錄的過程中,完成文件移動操作的同步過程。在本發(fā)明的另一實施例中,終端接收到文件的代理元數據后,終端可以僅根據該代理元數據更新終端中的第一目錄,在對第二目錄的同步過程中再更新第二目錄。具體的,步驟302中的通過在本地查找到的所述文件的元數據來完成與所述服務器的同步具體可包括:通過在本地查找到的所述文件的元數據來完成所述終端中的第一目錄與所述服務器中的第一目錄的同步。本實施例在圖3所示實施例的基礎上,可以進一步包括:終端從服務器接收文件的元數據,終端根據接收到的該文件的元數據完成終端中的第二目錄與服務器中的第二目錄的同步。其中,終端與服務器在同步第二目錄時,服務器檢測第二目錄在本次同步與上次同步期間的更新數據,在確定該更新數據包括有被移動到第二目錄的文件的元數據時,將該文件的元數據發(fā)送給終端。文件的元數據可以包括該文件的標識和第二目錄的標識。終端根據接收 到的該文件的元數據完成終端中的第二目錄與服務器中的第二目錄的同步具體可以包括:終端根據接收到的文件的元數據中攜帶的文件的標識在本地查找該文件的元數據;在查找到的該文件的元數據中將該文件的父目錄標識更改為接收到的文件的元數據中攜帶的第二目錄的標識。文件的代理元數據中可以包括所述文件的標識,第二目錄的標識以及用于表示該文件已發(fā)生移動的移動標記。終端根據文件的代理元數據在終端本地查找該文件的元數據,通過在本地查找到的該文件的元數據來完成終端中的第一目錄與服務器中的第一目錄的同步具體可以包括:終端根據代理元數據中攜帶的文件標識在本地查找該文件的元數據;判斷查找到的文件的元數據中該文件的父目錄標識是否為代理元數據中攜帶的第二目錄的標識;若該文件的父目錄標識不是第二目錄的標識,則在查找到的文件的元數據中將該文件設置為隱藏;若該文件的父目錄標識為第二目錄的標識,則不對該文件做處理。在具體實施時,終端可能先發(fā)起對第一目錄的同步,也有可能先發(fā)起對第二目錄的同步。當終端先同步第一目錄時,如果終端根據服務器返回的代理元數據確定第一目錄下有文件移動到了第二目錄中,此時,終端可以直接通過更改該文件的元數據中父目錄將該文件移動到第二目錄,也可以將第一目錄下的該文件設置為隱藏,而不刪除該文件。其中,將該文件設置為隱藏, 是為了提高用戶體驗,以免在終端還未同步第二目錄時,就更改終端中的第二目錄。而且將文件設置為隱藏,不僅可以使終端在同步第二目錄時還可以找到該文件,而不用從服務器重新下載該文件。而且,在用戶看來,終端的第一目錄與服務器的第一目錄下的文件也能保持一致。如果終端先同步第二目錄,則在終端同步第一目錄時,就會出現文件的父目錄標識已更改為第二目錄的標識的情況。因此,當終端判斷出第一文件的父目錄標識為第二目錄的標識,則不對該文件做處理。如果終端先同步第一目錄,則可能會存在該文件被設置成隱藏狀態(tài)的情況。因此,終端在接收到該文件的元數據時,可以進一步判斷該文件是否被設置為了隱藏狀態(tài),若設置為了隱藏狀態(tài),則將該文件更改為顯示狀態(tài),若未設置為隱藏狀態(tài),則無需更改該文件的狀態(tài)。本發(fā)明實施例中,服務器通過更改文件的父目錄的方式將文件從第一目錄移動到第二目錄,并在第一目錄下為已移動到第二目錄的文件創(chuàng)建代理元數據,使得終端在與服務器同步第一目錄時,服務器可以將表示文件發(fā)生移動的代理元數據發(fā)送給終端,終端可以通過該代理元數據識別出服務器側發(fā)生的是移動操作,從而通過終端本地的文件來完成與服務器的同步,而無需從服務器側重新下載文件,節(jié)約了網絡資源。而且本發(fā)明通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,使得文件的邏輯號保持不變, 從而可以保持原有關聯文件f的共享、公開以及外鏈的鏈接仍然有效。下面通過具體的實施例來對本發(fā)明進行詳細說明。本實施例以終端向服務器發(fā)同步請求為例進行說明,假設終端A和終端B是用戶與云端的服務器保持同步的兩個終端,被移動的文件為f,文件f的源目錄為S,目標目錄為D。如圖4所示,圖4為本實施例提供的同步方法的流程圖,該方法具體包括:S400,終端A將本地源目錄S下的文件f移動到目標目錄D下。本實施例以用戶與服務器同步的多個終端中的一個終端發(fā)生文件移動為例進行說明。如果是用戶采用Web客戶端操作云端的服務器進行文件移動,則可省略步驟S400。文件f與目錄之間的歸屬關系可通過文件f的元數據來描述,文件f的元數據的數據結構如表1所示:表1文件標識父目錄ID更新時間刪除標識位文件名fS20121128000000Falsef文件名其中,文件標識可采用系統(tǒng)生成的文件邏輯號來表示。表1所示的元數據的數據結構僅為舉例,在具體應用時,還可包括其它屬性或僅包含表1中的部分屬性。S402,終端A向云端的服務器發(fā)送將文件f從目錄S移動到目錄D的請求。其中,該請求中可以包括用戶的賬號,文件f的標識,目標目錄D的標識,操作類型。本實施例中,操作類型為移動操作。S404,服務器在源目錄S下創(chuàng)建文件f的代理元數據f’,并在文件f的元數據中將文件f的父目錄修改為目標目錄D。服務器根據接收到的請求中攜帶的用戶的賬號獲取用戶存儲在云端的數據。在用戶的數據中查找文件f的元數據,并在文件f的元數據中將文件f的父目錄修改為目標目錄D。如圖5所示,圖5為文件f的移動示意圖。移動前目錄A下面有源目錄S和目標目錄D,源目錄S下面有文件f。移動后源目錄S下存放文件f的代理元數據f’,文件f位于目錄D下。其中,移動后的文件f的元數據的數據結構如表2所示:表2文件標識父目錄ID更新時間刪除標識位文件名fD20121128120000Falsef文件名文件f的代理元數據f’的數據結構如表3所示:表3在移動文件的過程中,有可能在目錄D中已經存在有文件f的代理元數據f’。因此,服務器還可以先檢查目標目錄D下面是否有該文件f的代理元數據;如果沒有,則直接執(zhí)行步驟S404;如果目標目錄D下面有該文件f的代理元數據,則服務器還進一步刪除目標目錄D下的該文件f的代理元數據,并執(zhí)行步驟S404。S406,服務器向該用戶與服務器同步的終端B推送更新通知。終端可以主動向服務器發(fā)起同步第一目錄的請求,也可以根據服務器發(fā)送的關于第一目錄的更新通知來發(fā)起同步請求。本實施例以服務器向終端發(fā)送更新通知為例進行說明。當用戶有多個終端與服務器保持同步時,服務器可以維護用戶的各個在線終端的連接。當服務器檢測到用戶的數據發(fā)生更新后,可以分別向用戶已連接到服務器的各同步終端發(fā)送更新通知。在發(fā)起更新通知時,可以不再向發(fā)起移動請求中終端A發(fā)送。服務器可以分別發(fā)送源目錄S和目標目錄D的更新通知,也可以以一條更新通知來通知源目錄S和目標目錄D的更新。S408,終端B向服務器發(fā)起同步目錄S的同步請求。其中,同步請求中攜帶目錄S的標識和同步令牌環(huán)syncToken,該同步令牌環(huán)syncToken用來表示每次的同步的序列號。S410,服務器檢測目錄S下的更新數據,檢測到更新數據為文件f的代理元數據時,將該代理元數據返回給終端。服務器接收到終端B發(fā)起的同步目錄S的請求后,會返回目錄S下新增或修改的文件的元數據。具體的,服務器根據終端B請求的syncToken檢測出源目錄S下自從上次的syncToken后的所有的更新數據,同時產生一個新的syncToken做下次該終端端同步的syncToken,最后服務器返回更新數據和新的syncToken。假設用戶發(fā)起同步目錄S和目錄D時,攜帶的syncToken為20121128000000,服務器檢測出自從20121128000000后源目錄S的更新數據為文件的代理元數據f’,返回源目錄S下的更新數據,并且設置新的syncToken為20121128120000.S412,終端B根據服務器返回的代理元數據f’將本地的文件f設置為隱藏。終端B接收到服務器返回的更新數據后,根據數據中的移動標記確定文件f已從目錄S中移走。終端B在本地查找到文件f的元數據,在文件f的 元數據中將文件f設置為隱藏。具體的,被設置為隱藏的文件f的元數據的數據結構如表4所示:表4文件標識父目錄更新時間顯示標識符文件名fD20121128120000Nof文件名文件f被設置成隱藏后,在目錄S下將不會出現文件f,使得目錄S保持了與云端的同步。同時,又避免了刪除文件f,使得后續(xù)在同步目錄D時,可以直接將文件f移動到目錄D中。當然,終端B也可以不將文件f設置為隱藏,而直接將文件f的父目錄更改為目錄D,這樣,同樣能使文件f從目錄S中移走。但是,當用戶僅選擇性同步目錄S,而不同步目錄D時,這種方式會導致目錄D也發(fā)生變化,影響用戶體驗。本實施例以將文件f設置成隱藏為例進行說明。S414,終端B向服務器發(fā)起同步目錄D的同步請求。其中,同步請求中攜帶目錄D的標識和同步令牌環(huán)syncToken。S416,服務器檢測目錄D下的更新數據,檢測到更新數據為文件f的元數據時,將該文件f的元數據返回給終端。服務器檢測更新數據的過程可參考步驟S410中的說明,這里不再贅述。S418,終端B根據服務器返回文件f的元數據將本地的文件f的父目錄更改為目錄D。終端B接收到文件f的元數據后,發(fā)現文件f的父目錄更改為目錄D,則查找本地的文件f的元數據,在查找到的元數據中將f的父目錄更改為目錄D。另外,終端B還進一步判斷文件f的狀態(tài),如果文件f已被設置為隱藏狀態(tài),則終端B還進一步將文件f的狀態(tài)更改為顯示狀態(tài)。需要說明的是,上述步驟S408-S412與步驟S414-S418之間沒有先后順序,終端B可以先同步目錄S,也可以先同步目錄D。上述方法實施例可以應用在云端服務器和終端的同步中,其中實現同步的網絡架構如圖6所示,可以包括:客戶端,同步服務器和推送服務器。其中,同步服務器和推送服務器均位于云端,兩者可以合設在一個物理設備中。本發(fā)明實施例所稱的服務器是云端的同步服務器和推送服務器的合稱,不過,本發(fā)明實施例中推送服務器可以是可選的,在不需要推送服務器的實施例中本發(fā)明實施例中所稱的服務器則指同步服務器??蛻舳诉\行在用戶終端上,實現終端與同步服務器之間的同步??蛻舳撕屯椒掌骺梢酝ㄟ^HTTP協議通信。另外,客戶端可以通過注冊連接到推送服務器,以接收推送服務器推送的消息。客戶端和推送服務器可以通過HTTP或者XMPP協議來建立連接。上述網絡架構中各設備之間的交互過程如下:終端中的客戶端首先建立與推送服務器之間的連接。當同步服務器檢測出有數據更新時,同步服務器向推送服務器發(fā)送更新通知。推送服務器將該更新通知推送到終端中的客戶端??蛻舳烁鶕摳峦ㄖl(fā)起與同步服務器的同步。下面對上述網絡結構中的各設備的結構進行詳細介紹。如圖7所示,圖7為本發(fā)明實施例提供的與終端進行同步的服務器700的結構示意圖,該服務器700為實現云端的功能的裝置。該服務器700可以包括:接收單元701,用于接收將文件從第一目錄移動到第二目錄的請求,以及請求中攜帶該文件的標識和第二目錄的標識;處理單元702,用于根據接收單元701接收到的該文件的標識查找該文件的元數據,在該文件的元數據中將該文件的父目錄標識更改為第二目錄的標識,并在第一目錄下創(chuàng)建該文件的代理元數據,該代理元數據用于表示該文件已移動到所述第二目錄;同步單元703,用于將該文件的代理元數據發(fā)送給終端,以通過終端本地的該文件來進行服務器和終端之間的同步。其中,接收單元701接收到的請求中攜帶有需要移動的文件的標識以及該文件的目標目錄的標識。而本實施例中,要移動的文件的源目錄為第一目錄,目標目錄為第二目錄,因此服務器接收到的請求中需要攜帶第二目錄的 標識。對于文件的源目錄的標識則可以攜帶,也可以不攜帶。處理單元702在接收單元701接收到移動文件的請求后,可以根據請求的名稱或者請求中指定的操作類型來確定接收到的請求為執(zhí)行移動操作的請求。其中,處理單元702在將文件的父目錄標識更改為第二目錄的標識時,還進一步用于判斷第二目錄下是否存在用于指示該文件已從第二目錄移除的代理元數據;若第二目錄下存在用于指示該文件已從第二目錄移除的代理元數據,則刪除第二目錄下的代理元數據。同步單元703檢測要同步的目錄中自上次同步后的更新數據,將檢測到的更新數據發(fā)送給終端。比如,本實施例,當要與終端同步第一目錄時,同步單元703檢測第一目錄在本次同步與上次同步期間的更新數據,在確定該更新數據包括代理元數據時,則將第一目錄下的代理元數據發(fā)送給終端。當要同步第二目錄時,同步單元703檢測第二目錄在本次同步與上次同步期間的更新數據,在確定該更新數據包括有被移動到第二目錄的文件的元數據時,將該文件的元數據發(fā)送給終端。在本發(fā)明實施例中,通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,并在源目錄下為已移動到目標目錄的文件創(chuàng)建代理元數據,使得終端在同步源目錄和目標目錄時,可以識別出服務器側發(fā)生的是移動操作,從而在終端本地按移動操作執(zhí)行,而無需從服務器側重新下載文件,節(jié)約了 網絡資源。而且本發(fā)明通過更改文件的父目錄的方式將文件從源目錄移動到目的目錄,使得文件的邏輯號保持不變,從而可以保持原有關聯文件f的共享、公開以及外鏈的鏈接仍然有效。另外,為了節(jié)約存儲資源,在本發(fā)明的另一實施例中,還可以定期清除代理元數據。如圖8所示,圖8為本發(fā)明另一實施例提供的與終端進行同步的服務器700的結構示意圖,該服務器700在圖7所示實施例的基礎上還可以進一步包括:維護單元704,用于根據預設時限,刪除服務器中超期的代理元數據。另外,該服務器還可以在圖7所示實施例的基礎上進一步包括:通知單元705,用于向與該服務器同步的終端發(fā)送第一目錄和第二目錄的更新通知,以便該終端根據所述更新通知發(fā)起同步所述第一目錄或第二目錄的請求。圖7和圖8所示實施例中的各單元的功能的具體實現可參考方法實施例部分,這里不再贅述。本發(fā)明另一實施例提供的與服務器進行同步的終端900如圖9所示。該終端900可以包括:同步單元901,用于在服務器通過在文件的元數據中更改該文件的父目錄標識的方式將該文件從第一目錄移動到第二目錄,并在第一目錄下創(chuàng)建該文件的代理元數據后,從服務器接收該文件的代理元數據,并提供給處理單 元902,其中,該代理元數據用于表示該文件已移動到第二目錄;處理單元902,用于根據該代理元數據在終端本地查找該文件的元數據,通過在本地查找到的該文件的元數據來完成與所述服務器的同步。其中,代理元數據可以包括文件的標識,第二目錄的標識以及移動標記。其中,移動標記用于指示該文件已發(fā)生移動,終端在接收到更新數據后,可以根據移動標記來區(qū)分是代理元數據還是元數據。第二目錄為文件移動時的目標目錄,即該文件當前的父目錄。處理單元902具體可用于根據代理元數據中的移動標記確定該文件已發(fā)生移動;根據該文件的標識在本地查找所述文件的元數據;在查找到的該文件的元數據中將該文件的父目錄標識更改為第二目錄的標識。在本發(fā)明另一實施例中,同步單元901還可用于從所述服務器接收所述文件的元數據。本實施例中,處理單元902的具體結構可以如圖10所示,該處理單元902具體可以包括:第一操作模塊9021,用于根據代理元數據在終端本地查找該文件的元數據,通過在本地查找到的該文件的元數據來完成本地的第一目錄與服務器中的第一目錄的同步;第二操作模塊9022,用于根據接收到的文件的元數據完成本地的第二目錄與服務器中的第二目錄的同步。其中,同步單元901從服務器接收的文件的元數據可包括文件的標識和第二目錄的標識。第二操作模塊9022,具體可用于根據接收到的文件的元數據中的該文件的標識在本地查找該文件的元數據;在查找到的該文件的元數據中將該文件的父目錄標識更改為第二目錄的標識。第一操作模塊9021具體可用于根據代理元數據中的移動標記確定該文件已發(fā)生移動;根據該代理元數據中的文件的標識在本地查找該文件的元數據;判斷查找到的該文件的元數據中該文件的父目錄標識是否為第二目錄的標識;若該文件的父目錄標識不是第二目錄的標識,則在查找到的該文件的元數據中將該文件設置為隱藏;若該文件的父目錄標識是所述第二目錄的標識,則不對所述文件做處理。另外,第二操作模塊9022還用于在查找到該文件的元數據后,確定第二文件的狀態(tài),若第二文件處于隱藏狀態(tài),則在第二文件的元數據中將第二文件更改為顯示狀態(tài)。圖10所示的終端900可以主動向服務器發(fā)起同步第一目錄的請求,也可以根據服務器發(fā)送的關于第一目錄的更新通知來發(fā)起同步請求。在接收更新通知的實施例中,圖10所示的終端900中的同步單元901還用于與服務器建立連接,在服務器將文件從第一目錄移動到第二目錄后,接收服務器發(fā)送的關于第一目錄和第二目錄的更新通知。圖9和圖10所示實施例中的各單元的功能的具體實現可參考方法實施例部分,這里不再贅述。需要說明的是,本發(fā)明圖7和圖8所示實施例中的服務器700可基于計算機的硬件結構來實現,如圖11所述,該裝置700的硬件結構包括存儲器1101、收發(fā)器1102,處理器1103和總線1104。其中,處理器1103、存儲器1101和收發(fā)器1102通過總線1104通信連接。存儲器1101可以是只讀存儲器(ReadOnlyMemory,ROM),靜態(tài)存儲設備,動態(tài)存儲設備或者隨機存取存儲器(RandomAccessMemory,RAM)。存儲器1101可以存儲操作系統(tǒng)和其他應用程序的指令以及應用數據。存儲器1101中存儲的指令由處理器1103來運行執(zhí)行。本發(fā)明實施例中存儲器1101可用于存儲實現圖7以及圖8所示實施例中各功能單元的指令。收發(fā)器1102用來實現裝置700與其他設備之間的通信。本發(fā)明實施例中,收發(fā)器1102用于接收來自終端的消息以及向終端發(fā)送消息。處理器1103可以采用通用的中央處理器(CentralProcessingUnit,CPU),微處理器,應用專用集成電路(ApplicationSpecificIntegratedCircuit,ASIC), 或者一個或多個集成電路,用于執(zhí)行相關程序。本發(fā)明實施例中,處理器1103用于執(zhí)行存儲器1101中的指令,具體可執(zhí)行圖2所示方法實施例中的步驟,這里不再贅述??偩€1104可包括一通路,在同步裝置700各個部件(例如處理器1103、存儲器1101和接收器1102)之間傳送信息。上述圖9和圖10所示實施例中的終端900同樣可基于計算機的硬件結構來實現,如圖12所述,該終端900的硬件結構包括存儲器1201、收發(fā)器1202,處理器1203和總線1204。其中,處理器1203、存儲器1201和收發(fā)器1202通過總線1204通信連接。存儲器1201可以是只讀存儲器(ReadOnlyMemory,ROM),靜態(tài)存儲設備,動態(tài)存儲設備或者隨機存取存儲器(RandomAccessMemory,RAM)。存儲器1201可以存儲操作系統(tǒng)和其他應用程序的指令以及應用數據。存儲器1201中存儲的指令由處理器1203來運行執(zhí)行。本發(fā)明實施例中存儲器1201可用于存儲實現圖9以及圖10所示實施例中各功能單元的指令。收發(fā)器1202用來實現終端900與其他設備或通信網絡(例如但不限于以太網,無線接入網(RadioAccessNetwork,RAN),無線局域網 (WirelessLocalAreaNetwork,WLAN)等)之間的通信。本發(fā)明實施例中,收發(fā)器1202用于接收來自云端的服務器的消息以及向云端的服務器發(fā)送消息。處理器1203可以采用通用的中央處理器(CentralProcessingUnit,CPU),微處理器,應用專用集成電路(ApplicationSpecificIntegratedCircuit,ASIC),或者一個或多個集成電路,用于執(zhí)行相關程序。本發(fā)明實施例中,處理器1203用于執(zhí)行存儲器1201中的指令,具體可執(zhí)行圖3所示方法實施例中的步驟,這里不再贅述??偩€1204可包括一通路,在終端900各個部件(例如處理器1203、存儲器1201和收發(fā)器1202)之間傳送信息。通過以上的實施例的描述,本領域普通技術人員可以理解:實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,包括如上述方法實施例的步驟,所述的存儲介質,如:ROM/RAM、磁碟、光盤等。以上所述,僅為本發(fā)明的具體實施例,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求的保護范圍為準。