亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種重命名方法、訪問方法及裝置與流程

文檔序號:12177244閱讀:190來源:國知局
本發(fā)明涉及計算機
技術(shù)領(lǐng)域
:,尤其涉及一種重命名方法、訪問方法及裝置。
背景技術(shù)
::簡單存儲服務(英文:SimpleStorageService,簡稱:S3)協(xié)議采用桶(英文:bucket)‐對象(英文:object)的二層數(shù)據(jù)模型存儲數(shù)據(jù),其中,桶可以視作目錄,對象可以視作文件。該協(xié)議舍棄了目錄樹結(jié)構(gòu),并精簡了讀寫語義,適于存儲海量的、非結(jié)構(gòu)化的、讀多于寫的數(shù)據(jù)?;赟3協(xié)議,用戶可以使用統(tǒng)一資源標識符(英文:UniformResourceIdentifier,簡稱:URI)查找相關(guān)數(shù)據(jù),即用戶根據(jù)目錄查找相關(guān)文件。目前,S3協(xié)議中目錄的重命名方法為:(1)、創(chuàng)建新目錄,且該新目錄的目錄名不同于原目錄名;(2)、將原目錄中所有對象的元數(shù)據(jù)和數(shù)據(jù)均拷貝至新目錄中(也稱為深度拷貝原目錄中所有對象的元數(shù)據(jù)和數(shù)據(jù));(3)、刪除原目錄及其包括的所有對象。簡單的,目錄的重命名方法主要包括備份過程和刪除過程。S3協(xié)議中文件的重命名方法與目錄的重命名方法類似,也包括備份過程和刪除過程。通過執(zhí)行備份過程和刪除過程,可以達到目錄或文件重命名的目的,但是,備份過程和刪除過程會引發(fā)系統(tǒng)輸入/輸出(英文:Input/Output,簡稱:IO)操作次數(shù)過多、重命名效率低的問題。技術(shù)實現(xiàn)要素:本發(fā)明實施例提供一種重命名方法、訪問方法及裝置,有效的解決了現(xiàn)有的重命名方法導致的IO次數(shù)過多、重命名效率低的問題。第一方面,提供一種重命名方法,應用于對象存儲系統(tǒng)中的服務器,該服務器在接收到客戶端設備發(fā)送的攜帶第一信息、第二信息以及重命名標識的重命名請求后,從映射關(guān)系表中獲取包括第一信息的目標對象名,重命名標識用于指示將第一信息替換為第二信息,映射關(guān)系表包括目標對象名與目標對象的特征的對應關(guān)系,目標對象的特征包括目標對象的通用唯一識別碼UUID,且目標對象的UUID用于指示目標對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,然后,該服務器將目標對象名中的第一信息替換為第二信息。本發(fā)明實施例中的服務器存儲有映射關(guān)系表,由于該映射關(guān)系表包括有目標對象名與目標對象的特征的對應關(guān)系,且目標對象的特征包括用于指示該目標對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址的UUID,因此,服務器可以從映射關(guān)系表中獲取到目標對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,并根據(jù)該存儲地址獲取到目標對象的數(shù)據(jù)。由于目標對象的元數(shù)據(jù)和數(shù)據(jù)在服務器中的存儲地址不變,因此,服務器在接收到重命名請求后,可以直接將映射關(guān)系表中目標對象名的第一信息替換為第二信息,而無需執(zhí)行備份的過程和刪除的過程,有效的降低了系統(tǒng)IO操作次數(shù),提高了重命名的效率??蛇x的,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,服務器將目標對象名中的第一信息替換為第二信息的方法包括:服務器將目標對象名中的第一目錄名替換為第二目錄名;或者,服務器將目標對象名替換為第一對象名。對于服務器而言,對象可以為某一文件,也可以為某一目錄。若對象為文件,則該對象名包括該文件所歸屬的路徑(目錄名)和文件名;若對象為父目錄,則該對象名為父目錄名;若對象為父目錄的子目錄,則該對象名包括父目錄名和子目錄名。與服務器相對的客戶端設備顯示某一級目錄時,僅顯示該級目錄的目錄名,同理,客戶端設備顯示某一文件時,僅顯示該文件的文件名。因此,用戶看到的是當前目錄的目錄名或者當前文件的文件名??蛻舳嗽O備接收到用戶輸入的指令后,可根據(jù)用戶輸入的指令向服務器發(fā)送重命名請求,該重命名請求中包括目錄名,或者包括目錄名和文件名。相應的,服務器會根據(jù)重命名請求將滿足條件的目錄名或滿足條件的對象名重命名。這樣,本發(fā)明實施例中的第一信息為某一對象的原對象名,第二信息為該對象的新對象名;或者,第一信息為某一對象名中的原目錄名,第二信息為該對象名中的新目錄名。本發(fā)明實施例提供的重命名方法中的服務器在檢測到重命名標識后可以直接修改滿足條件的對象名中的目錄名,也可以直接修改滿足條件的對象名,無需執(zhí)行拷貝的過程和刪除的過程,降低了系統(tǒng)IO操作次數(shù)??蛇x的,在本發(fā)明實施例的另一種可能的實現(xiàn)方式中,服務器將目標對象名中的第一信息替換為第二信息之后,還向客戶端設備發(fā)送響應消息,響應消息用于表示成功將第一信息替換為第二信息。服務器向客戶端設備發(fā)送用于表示成功將第一信息重命名為第二信息的響應消息,便于客戶端設備顯示第二信息,使得用戶根據(jù)第二信息訪問對象。第二方面,提供一種訪問方法,應用于對象存儲系統(tǒng)中的服務器,該服務器在接收到客戶端設備發(fā)送的攜帶待訪問對象的對象名和訪問標識的訪問請求之后,從映射關(guān)系表中獲取與對象名對應的待訪問對象的通用唯一識別碼UUID,訪問標識用于指示讀取待訪問對象的數(shù)據(jù),映射關(guān)系表包括待訪問對象的對象名與待訪問對象的特征的對應關(guān)系,待訪問對象的特征包括待訪問對象的UUID,待訪問對象的UUID用于指示待訪問對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,然后,服務器根據(jù)待訪問對象的UUID,讀取待訪問對象的數(shù)據(jù),并向客戶端設備發(fā)送訪問響應,用以通知客戶端設備已成功讀取待訪問對象的數(shù)據(jù)。由于本發(fā)明實施例中的服務器存儲有映射關(guān)系表,且該映射關(guān)系表包括有待訪問對象的對象名與待訪問對象的特征的對應關(guān)系,待訪問對象的特征包括用于指示該待訪問對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址的UUID,因此,服務器在檢測到訪問標識后,能夠從映射關(guān)系表中獲取到與待訪問對象的對象名對應的待訪問對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,并根據(jù)該存儲地址獲取到待訪問對象的數(shù)據(jù)。由于待訪問對象的元數(shù)據(jù)和數(shù)據(jù)在服務器中的存儲地址保持不變,因此,即使在映射關(guān)系表中待訪問對象的對象名發(fā)生了變化,服務器也能夠獲取到該待訪問對象的數(shù)據(jù)和元數(shù)據(jù)的存儲地址,進而讀取該待訪問對象的數(shù)據(jù)。第三方面,提供一種服務器,該服務器應用于對象存儲系統(tǒng)。具體的,該服務器包括接收單元、獲取單元和替換單元。本發(fā)明實施例提供的各個單元模塊所實現(xiàn)的功能具體如下:上述接收單元,用于接收客戶端設備發(fā)送的重命名請求,重命名請求攜帶第一信息、第二信息以及重命名標識,重命名標識用于指示將第一信息替換為第二信息;上述獲取單元,用于在上述接收單元接收到重命名標識后,從映射關(guān)系表中獲取包括第一信息的目標對象名,映射關(guān)系表包括目標對象名與目標對象的特征的對應關(guān)系,目標對象的特征包括目標對象的通用唯一識別碼UUID;上述替換單元,用于將上述獲取單元獲取到的目標對象名中的第一信息替換為第二信息。進一步地,在本發(fā)明實施例的一種實現(xiàn)方式中,上述替換單元具體用于:將目標對象名中的第一目錄名替換為第二目錄名;或者,將目標對象名替換為第一對象名。進一步地,在本發(fā)明實施例的一種實現(xiàn)方式中,服務器將還包括發(fā)送單元,該發(fā)送單元用于在替換單元將目標對象名中的第一信息替換為第二信息之后,向客戶端設備發(fā)送響應消息,響應消息用于表示成功將第一信息替換為第二信息。本發(fā)明實施例第三方面及其各種實現(xiàn)方式的具體描述,可以參考第一方面及其各種實現(xiàn)方式中的詳細描述;并且,第三方面及其各種實現(xiàn)方式的有益效果,可以參考第一方面及其各種實現(xiàn)方式中的有益效果分析,此處不再贅述。第四方面,提供一種服務器,該服務器應用于對象存儲系統(tǒng)。具體的,該服務器包括接收單元、獲取單元、讀取單元和發(fā)送單元。本發(fā)明實施例提供的各個單元模塊所實現(xiàn)的功能具體如下:接收單元,用于接收客戶端設備發(fā)送的訪問請求,所述訪問請求攜帶待訪問對象的對象名和訪問標識,所述訪問標識用于指示讀取所述待訪問對象的數(shù)據(jù);獲取單元,用于在所述接收單元接收到所述訪問標識后,從映射關(guān)系表中獲取與所述接收單元接收到的所述對象名對應的所述待訪問對象的通用唯一識別碼UUID,所述映射關(guān)系表包括所述待訪問對象的對象名與所述待訪問對象的特征的對應關(guān)系,所述待訪問對象的特征包括所述待訪問對象的UUID;讀取單元,用于根據(jù)所述獲取單元獲取到的所述待訪問對象的UUID,讀取所述待訪問對象的數(shù)據(jù);發(fā)送單元,用于在所述讀取單元讀取所述待訪問對象的數(shù)據(jù)后,向所述客戶端設備發(fā)送訪問響應,用以通知所述客戶端設備已成功讀取待訪問對象的數(shù)據(jù)。進一步地,在本發(fā)明實施例的一種實現(xiàn)方式中,待訪問對象的特征還包括所述待訪問對象的最近一次修改時間、所述待訪問對象的信息摘要算法MD5值以及所述待訪問對象占用存儲空間的大小中的至少一個。本發(fā)明實施例第四方面及其各種實現(xiàn)方式的具體描述,可以參考第二方面及其各種實現(xiàn)方式中的詳細描述;并且,第四方面及其各種實現(xiàn)方式的有益效果,可以參考第二方面及其各種實現(xiàn)方式中的有益效果分析,此處不再贅述。第五方面,提供一種服務器,該服務器包括通信接口、處理器和存儲器;其中,通信接口、處理器和存儲器通過系統(tǒng)總線連接;存儲器用于存儲計算機指令,處理器用于執(zhí)行存儲器存儲的計算機指令,以使服務器執(zhí)行如上述第一方面及其各種實現(xiàn)方式所述的重命名方法或者執(zhí)行如上述第二方面及其各種實現(xiàn)方式所述的訪問方法。第六方面,提供一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)包括一個或多個程序代碼;當服務器的處理器在執(zhí)行該程序代碼時,該服務器執(zhí)行如上述第一方面及其各種實現(xiàn)方式所述的重命名方法或者執(zhí)行如上述第二方面及其各種實現(xiàn)方式所述的訪問方法。可選的,在上述任一方面及其各種實現(xiàn)方式中,映射關(guān)系表存儲有對象名與該對象名指示的對象的特征的對應關(guān)系,其中,對象的特征包括對象的通用唯一識別碼UUID,還可以包括對象的最近一次修改時間、對象的信息摘要算法MD5值以及對象占用存儲空間的大小中的至少一個。若對象的特征還包括對象的最近一次修改時間、對象的信息摘要算法MD5值以及對象占用存儲空間的大小中的至少一個,則服務器可更加方便的從該映射關(guān)系表中查找滿足某一條件的對象名,進而提高獲取對象的數(shù)據(jù)的效率和準確率。在本發(fā)明實施例中,上述服務器的名字對設備或功能模塊本身不構(gòu)成限定,在實際實現(xiàn)中,這些設備或功能模塊可以以其他名稱出現(xiàn)。只要各個設備或功能模塊的功能和本發(fā)明實施例類似,屬于本發(fā)明實施例權(quán)利要求及其等同技術(shù)的范圍之內(nèi)。本發(fā)明實施例第五方面、第六方面及其各種實現(xiàn)方式的具體描述,可以參考第一方面及其各種實現(xiàn)方式中的詳細描述或者參考第二方面及其各種實現(xiàn)方式中的詳細描述;并且,第五方面、第六方面及其各種實現(xiàn)方式的有益效果,可以參考第一方面及其各種實現(xiàn)方式中的有益效果分析或者參考第二方面及其各種實現(xiàn)方式中的有益效果分析,此處不再贅述。本發(fā)明實施例的這些方面或其他方面在以下的描述中會更加簡明易懂。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明實施例的一些實施例。圖1為現(xiàn)有的客戶端設備根據(jù)對象名模擬出的目錄的結(jié)構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中文件重命名的結(jié)構(gòu)示意圖;圖3為現(xiàn)有技術(shù)中目錄重命名的結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例提供的通信系統(tǒng)的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例提供的通信系統(tǒng)中各個設備之間的交互協(xié)作示意圖;圖6為本發(fā)明實施例提供的重命名方法的流程示意圖;圖7為本發(fā)明實施例中的文件重命名的結(jié)構(gòu)示意圖;圖8為本發(fā)明實施例中的目錄重命名的結(jié)構(gòu)示意圖;圖9為本發(fā)明實施例提供的訪問方法的流程示意圖;圖10為本發(fā)明實施例提供的服務器的結(jié)構(gòu)示意圖一;圖11為本發(fā)明實施例提供的服務器的結(jié)構(gòu)示意圖二;圖12為本發(fā)明實施例提供的服務器的結(jié)構(gòu)示意圖三。具體實施方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行詳細地描述。以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、接口、技術(shù)之類的具體細節(jié),以便透切理解本發(fā)明實施例。然而,本領(lǐng)域的技術(shù)人員應當清楚,在沒有這些具體細節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明實施例。在其它情況中,省略對眾所周知的裝置、電路以及方法的詳細說明,以免不必要的細節(jié)妨礙本發(fā)明實施例的描述。其中,本發(fā)明實施例中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”和“第二”等是用于區(qū)別不同對象,而不是用于限定特定順序。對于服務器而言,對象可以為某一文件,也可以為某一目錄。目錄用以實現(xiàn)對象存儲系統(tǒng)(英文:Object‐BasedStorageSystem)的目錄層次和權(quán)限管理。若服務器中存儲的對象為目錄,則該對象的對象名為目錄名,目錄名一般以“/”結(jié)尾,例如:目錄dir‐1對應的對象名為:dir‐1/,其子目錄dir‐2對應的對象名為dir‐1/dir‐2/(加上父目錄的目錄名),子目錄dir‐2的子目錄dir‐3對應的對象名為dir‐1/dir‐2/dir‐3/。若服務器中存儲的對象為文件,則該對象的對象名包括該文件所歸屬的路徑(目錄名)和文件名,且不能以“/”結(jié)尾。例如,文件obj‐1歸屬的目錄的對象名為dir‐1/dir‐2/dir‐3/,則文件obj‐1對應的對象名為dir‐1/dir‐2/dir‐3/obj‐1。對象存儲系統(tǒng)具備存儲區(qū)域網(wǎng)絡(英文:StorageAreaNetwork,簡寫:SAN)的高速直接訪問的特點和網(wǎng)絡附屬存儲(英文:NetworkAttachedStorage,簡寫:NAS)的數(shù)據(jù)共享的特點,提供了高可靠性、跨平臺性以及安全的數(shù)據(jù)共享的存儲體系結(jié)構(gòu)。對象存儲系統(tǒng)還具備海量擴展能力、安全可靠和高效融合的特點,適用于海量數(shù)據(jù)存儲和集中備份應用場景,可以為客戶帶來大容量,高可靠,易維護,易擴展的價值。S3協(xié)議是一種對象存儲協(xié)議,該協(xié)議舍棄了目錄樹結(jié)構(gòu),采用了桶‐對象(可理解為目錄‐對象)的二層數(shù)據(jù)模型存儲數(shù)據(jù),并精簡了讀寫語義,適于存儲海量的、非結(jié)構(gòu)化的、讀多于寫的數(shù)據(jù)。但是,目前的S3協(xié)議沒有直接的對象重命名特性,對象的重命名只能通過創(chuàng)建新對象、將舊對象拷貝至新對象中以及刪除舊對象等一系列操作來變相完成。此外,目前的S3協(xié)議也沒有直接的多級目錄管理功能,多級目錄的實現(xiàn)通常是通過對象名中的特殊分隔符來模擬出的,這種目錄的重命名與對象的重命名相比,更加復雜、效率更低。圖1示出了通過對象名中的特殊分隔符“/”模擬的目錄。結(jié)合上述解釋的對象名可知,目錄名以/結(jié)尾,子目錄名需加上父目錄的目錄名,文件名需要加上其所在目錄的目錄名且結(jié)尾不能是“/”。因此,對象名dir‐1/對應的是目錄dir‐1,對象名dir‐1/dir‐2/對應的是目錄dir‐1的子目錄dir‐2,對象名dir‐1/dir‐2/dir‐3/對應的是目錄dir‐2的子目錄dir‐3,對象名dir‐1/dir‐2/dir‐3/obj‐1對應的是dir‐3目錄下的文件obj‐1,對象名dir‐1/dir‐2/dir‐3/obj‐2對應的是dir‐3目錄下的文件obj‐2,對象名dir‐1/dir‐2/dir‐3/obj‐3對應的是dir‐3目錄下的文件obj‐3?,F(xiàn)有的目錄和文件的重命名過程均包括備份的過程和刪除的過程,但是,備份過程和刪除過程會引發(fā)系統(tǒng)IO操作次數(shù)過多、重命名效率低的問題。示例性的,如圖2所示,dir‐3目錄下的文件file‐2重命名為new‐file‐2的方法為:將dir‐1/file‐2的元數(shù)據(jù)和數(shù)據(jù)深度拷貝一份到新命名的對象dir‐1/new‐file‐2中;刪除dir‐1/file‐2的元數(shù)據(jù)及數(shù)據(jù)。其中,元數(shù)據(jù)用以記錄對象的存儲位置和訪問控制信息。如圖3所示,目錄dir‐1重命名為new‐dir‐1的方法為:拷貝dir‐1及其所有子目錄下的所有對象到新的目錄new‐dir‐1,其中,對象的元數(shù)據(jù)和數(shù)據(jù)都要進行深度拷貝;刪除dir‐1及其所有子目錄下的所有舊對象的元數(shù)據(jù)和數(shù)據(jù),例如某個對象大小為1太字節(jié)(英文:Terabyte,簡寫:TB),那么就有1TB的數(shù)據(jù)需要刪除。可以看出,現(xiàn)有的重命名方法中的備份過程和刪除過程會引發(fā)系統(tǒng)IO操作次數(shù)過多、重命名效率低的問題。在目錄層次較深或者文件數(shù)量非常大的場景中,采用現(xiàn)有的重命名方法進行重命名的難度較大。針對現(xiàn)有的重命名方法導致的IO次數(shù)過多、效率低的問題,本發(fā)明實施例提供一種重命名方法,在對象存儲系統(tǒng)中的服務器中創(chuàng)建存儲有對象名與對象特征的對應關(guān)系的映射關(guān)系表,且對象特征包括用于指示對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址的對象的通用唯一識別碼(英文:UniversallyUniqueIdentifier,簡寫:UUID),因此,服務器根據(jù)對象的UUID即可準確的獲取到某一對象的數(shù)據(jù),這樣,服務器在接收到重命名請求后,可直接對映射關(guān)系表中滿足條件的對象名重命名,而無需再執(zhí)行備份的過程和刪除的過程,有效的降低了系統(tǒng)IO操作次數(shù),提高了重命名的效率。相應的,本發(fā)明實施例還提供了一種訪問方法,服務器從映射關(guān)系表中獲取與某一對象名對應的對象的UUID,由于對象的UUID用于指示對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,因此,服務器可根據(jù)其獲取到的對象的UUID讀取該對象的數(shù)據(jù)。本發(fā)明實施例提供的重命名方法或者訪問方法均應用于通信系統(tǒng)。圖4是本發(fā)明實施例提供的通信系統(tǒng)的結(jié)構(gòu)示意圖。參見圖4,該通信系統(tǒng)包括服務器40以及至少一個客戶端設備41,每個客戶端設備41和服務器40通過網(wǎng)絡連接。服務器40存儲有至少一個對象,每個對象有各自的對象名??蛻舳嗽O備41通過與服務器40通信,顯示該客戶端設備所需的對象。本發(fā)明實施例中的服務器40可以為物理機,也可以為虛擬機,還可以為提供對象存儲服務的其他任一設備,本發(fā)明實施例對此不作具體限定。結(jié)合圖4,圖5是上述通信系統(tǒng)中服務器40以及客戶端設備41之間的交互協(xié)作示意圖。通信系統(tǒng)中每個客戶端設備41與服務器40的通信過程均相同。為了簡潔,圖5僅僅示出了其中一個客戶端設備41與服務器40之間的通信。參見圖5,通信系統(tǒng)中的服務器40包括映射關(guān)系表400,該映射關(guān)系表400保存有對象名和對象的特征之間的對應關(guān)系,對象的特征包括對象的UUID,UUID用于指示對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,其中,對象的元數(shù)據(jù)包括對象的創(chuàng)建時間、最近一次修改時間以及對象占用存儲空間的大小等。具體的,該映射關(guān)系表400中的至少一個對象名可按照字典序從小到大或從大到小依次排列,每個對象名唯一對應一個UUID。其中,映射關(guān)系表400可以以表格的形式在服務器40中存儲。示例性的,包括對象名和對象的UUID的映射關(guān)系表400的格式如表1所示。需要說明的是,表1只是以表格的形式示意對象名和對象的UUID之間的對應關(guān)系在服務器40中的存儲形式,并不是對對象名和對象的UUID之間的對應關(guān)系在服務器40中的存儲形式的限定,當然,對象名和對象的UUID之間的對應關(guān)系在服務器40中的存儲形式還可以以其他的形式存儲,本發(fā)明實施例對此不做限定。表1對象名對象的UUIDdir‐1/file‐1obj‐uuid‐1dir‐1/dir‐2/obj‐uuid‐2dir‐1/dir‐2/file‐2obj‐uuid‐3…………dir‐1/dir‐2/dir‐3/obj‐uuid‐4可選的,映射關(guān)系表400中對象的特征還可以包括對象的最近一次修改時間、對象的信息摘要算法(英文:Message‐DigestAlgorithm5,簡稱:MD5)值以及對象占用存儲空間的大小中的至少一個。這樣,服務器40根據(jù)該映射關(guān)系表400可以更加方便、迅速的查找到客戶端設備所要查找的對象,提高了獲取對象的效率和準確率。示例性的,結(jié)合表1,若對象的特征還包括對象的最近一次修改時間、對象的MD5值以及對象占用存儲空間的大小,則映射關(guān)系表400的格式如表2所示。表2中,占用存儲空間的大小的單位為千字節(jié)(英文:Kilobyte,簡稱KB)。表2由于映射關(guān)系表400中對象的最近一次修改時間、對象的MD5值以及對象占用存儲空間的大小為可選的,因此,圖5中用虛線框表示。具體的,若服務器40中存儲的映射關(guān)系表400以表格的形式來體現(xiàn),則該服務器40中可以存儲至少一個表格,每個表格的格式均可采用表1所示的格式。該服務器40還包括通信接口401、處理器402以及存儲器403。通信接口401用于和與該服務器40相連接的客戶端設備41通信。存儲器403用于存儲映射關(guān)系表400,還可以用于存儲軟件程序以及應用模塊。處理器402用于運行或執(zhí)行存儲在存儲器403內(nèi)的軟件程序以及應用模塊,以便于執(zhí)行服務器40的各種功能。該通信系統(tǒng)中的客戶端設備41包括通信接口411、處理器412、存儲器413以及顯示屏414。通信接口410用于和與該客戶端設備41相連接的服務器40通信。存儲器413用于存儲軟件程序以及應用模塊。處理器412用于運行或執(zhí)行存儲在存儲器413內(nèi)的軟件程序以及應用模塊,以便于執(zhí)行客戶端設備41的各種功能。顯示屏414用于實現(xiàn)用戶與客戶端設備41的交互。本發(fā)明實施例提供的重命名方法適用于對象存儲系統(tǒng),且該對象存儲系統(tǒng)采用對象存儲協(xié)議,例如S3協(xié)議和swift(OpenStack項目中的對象存儲組件)協(xié)議。圖6為本發(fā)明實施例提供的一種重命名方法的流程示意圖,該重命名方法可以應用在圖4或圖5所示的通信系統(tǒng)中。參見圖6,該重命名方法包括:S600、客戶端設備向服務器發(fā)送攜帶第一信息、第二信息和重命名標識的重命名請求。其中,重命名標識用于指示將第一信息替換為第二信息。S601、服務器在檢測到重命名標識后,從映射關(guān)系表中獲取包括第一信息的目標對象名。其中,映射關(guān)系表包括目標對象名與目標對象的特征的對應關(guān)系,目標對象的特征包括目標對象的UUID,該目標對象的UUID用于指示目標對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址。S602、服務器將目標對象名中的第一信息替換為第二信息。S603、服務器向客戶端設備發(fā)送響應消息,表示已經(jīng)成功將第一信息替換為第二信息。本發(fā)明實施例提供的重命名方法中客戶端設備首先向服務器發(fā)送攜帶第一信息、第二信息和重命名標識的重命名請求,即執(zhí)行S600。從前面描述可知,對于服務器而言,對象可以為某一文件,也可以為某一目錄。若對象為文件,則該對象的對象名包括該文件所歸屬的目錄的目錄名和文件名;若對象為父目錄,則該對象的對象名為父目錄名;若對象為父目錄的子目錄,則該對象的對象名包括父目錄名和子目錄名。與服務器相對的客戶端設備顯示某一級目錄時,顯示該級目錄的目錄名,同理,客戶端設備顯示某一文件時,顯示該文件的文件名。因此,用戶看到的是當前目錄的目錄名或者當前文件的文件名。在這種場景中,用戶輸入的指令可以用于指示對某一文件進行重命名,也可以為對某一目錄進行重命名,還可以為對某一目錄和該目錄中的某一文件進行重命名。這樣,客戶端設備接收到用戶輸入的指令后,可根據(jù)用戶輸入的指令向服務器發(fā)送重命名請求。該重命名請求攜帶的第一信息為某一對象名中的原目錄名、第二信息為該對象名中的新目錄名,或者第一信息為某一對象的原對象名、第二信息為該對象的新對象名。也就是說,本發(fā)明實施例中的第一信息可以為重命名前的某一對象名,也可以為重命名前的某一對象名中的部分內(nèi)容。本發(fā)明實施例中的客戶端設備發(fā)送重命名請求的接口與現(xiàn)有技術(shù)中客戶端設備與服務器交互所采用的接口相同,該接口可以是復制(英文:Copy)接口,也可以是上傳對象接口。不同的是,本發(fā)明實施例中的重命名請求攜帶有重命名標識。需要說明的是,本發(fā)明實施例對重命名請求的報文格式不作具體限定。示例性的,客戶端設備向服務器發(fā)送的重命名請求為超文本傳送協(xié)議(英文:Hypertexttransferprotocol,簡稱:HTTP)請求,該HTTP請求用于表示客戶端設備請求將目錄dir‐1下的文件file‐1重命名為new‐file‐1,則該HTTP請求中第一信息為dir‐1/file‐1,第二信息為dir‐1/new‐file‐1。具體的,該HTTP請求攜帶操作碼PUT,與該操作碼對應的內(nèi)容為dir‐1/new‐file‐1HTTP/1.1,還攜帶x‐amz‐copy‐source頭域和x‐obs‐file‐rename頭域,x‐amz‐copy‐source頭域指示了原對象名dir‐1/file‐1,x‐obs‐file‐rename頭域的內(nèi)容為真(英文:true),指示該重命名請求用于指示將dir‐1/file‐1替換為dir‐1/new‐file‐1。具體的,該HTTP請求可以表示為:PUTdir‐1/new‐file‐1HTTP/1.1x‐amz‐copy‐sourcedir‐1/file‐1x‐obs‐file‐renametrue示例性的,客戶端設備向服務器發(fā)送的HTTP請求用于表示客戶端設備請求將目錄dir‐1重命名為new‐dir‐1,則該HTTP請求中第一信息為dir‐1/,第二信息為new‐dir‐1/。具體的,該HTTP請求攜帶操作碼PUT,與該操作碼對應的內(nèi)容為new‐dir‐1/HTTP/1.1,該HTTP請求還攜帶x‐amz‐copy‐source頭域和x‐obs‐dir‐rename頭域,x‐amz‐copy‐source頭域指示了原目錄名dir‐1/,x‐obs‐dir‐rename頭域的內(nèi)容為true,指示該重命名請求用于指示將dir‐1/重命名為new‐dir‐1/。具體的,該HTTP請求可以表示為:PUTnew‐dir‐1/HTTP/1.1x‐amz‐copy‐sourcedir‐1/x‐obs‐dir‐renametrue具體的,服務器在接收到重命名請求后,從映射關(guān)系表中獲取包括第一信息的目標對象名,即執(zhí)行S601。本發(fā)明實施例中的服務器中存儲有映射關(guān)系表,該映射關(guān)系表包括對象名與對象的特征之間的對應關(guān)系。該映射關(guān)系表的具體格式可以參考上述表1或表2,此處不再進行詳細贅述。需要說明的是,為了便于區(qū)分,本發(fā)明實施例映射關(guān)系表中歸屬于相同目錄的各個文件的文件名互不相同,即相同目錄中的各個文件名是唯一的。由于相同目錄中的各個文件名是唯一的,因此,服務器存儲的各個對象名互不相同。在映射關(guān)系表以表格的格式體現(xiàn)時,可以直接以對象名為主鍵,且對象名按照字典序從小到大或從大到小依次排列,并建立該數(shù)據(jù)列的索引,這樣,可以提高數(shù)據(jù)表格的快速查詢性能??梢岳斫獾氖?,由于對象名僅僅是某一對象的名稱,因此,映射關(guān)系表中的對象名可以隨時更改,由于對象的特征包括對象的UUID,且對象的UUID用于指示對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址是保持不變的,因此,映射關(guān)系表中與某一對象名對應的對象的UUID應該保持不變。具體的,服務器在接收到重命名請求后,從映射關(guān)系表的至少一個對象名中獲取包括第一信息的目標對象名,其中,目標對象名的數(shù)量為至少一個。示例性的,若服務器中的映射關(guān)系表如上述表1所示,第一信息為dir‐1/dir‐2/,第二信息為dir‐1/new‐dir‐2/,則服務器在接收到攜帶dir‐1/dir‐2/、dir‐1/new‐dir‐2/和重命名標識的重命名請求后,從表1中獲取包括dir‐1/dir‐2/的目標對象名,例如dir‐1/dir‐2/、dir‐1/dir‐2/file‐2和dir‐1/dir‐2/dir‐3/。此外,服務器在接收到重命名請求后,還識別第一信息和第二信息。進一步地,服務器在獲取到目標對象名后,將目標對象名中的第一信息替換為第二信息,即執(zhí)行S602。具體的,服務器在獲取到目標對象名后,批量更新目標對象名中的第一信息,有效的減少了系統(tǒng)IO的操作系統(tǒng),減少了重命名的時間浪費,提高了重命名的效率??蛇x的,若服務器采用數(shù)據(jù)庫存儲映射關(guān)系表,則該服務器可通過相關(guān)的程序代碼執(zhí)行批量更新。示例性的,若服務器通過結(jié)構(gòu)化查詢語言(英文:StructuredQueryLanguage,簡稱:SQL)語句來執(zhí)行文件名的重命名,客戶端設備請求將dir‐1目錄下的文件file‐2重命名為new‐file‐2,則SQL語句表示為:updatetableset對象名=‘dir‐1/new‐file‐2’where對象名=‘dir‐1/file‐2’,該SQL語句表示將dir‐1/file‐2替換為dir‐1/new‐file‐2。如圖7所示,若服務器中存儲的映射關(guān)系表中包括對象名dir‐1/file‐1、dir‐1/file‐2和dir‐1/file‐3,則服務器根據(jù)updatetableset對象名=‘dir‐1/new‐file‐2’where對象名=‘dir‐1/file‐2’,從映射關(guān)系表中獲取到目標對象名dir‐1/file‐2,并將目標對象名dir‐1/file‐2替換為dir‐1/new‐file‐2。示例性的,若服務器通過SQL語句來執(zhí)行目錄名的重命名,客戶端設備請求將目錄dir‐1重命名為new‐dir‐1,則SQL語句表示為:updatetableset對象名=left_replace(對象名,‘dir‐1/’,‘new‐dir‐1/’)where對象名like‘dir‐1/%’,其中,left_replace(A,B)函數(shù)表示從字符串左邊開始查找并用B替換A,且僅匹配一次)。該SQL語句表示將包括dir‐1/的對象名中的dir‐1/替換為new‐dir‐1/。如圖8所示,若服務器中存儲的映射關(guān)系表中包括對象名dir‐1/file‐1、dir‐1/dir‐2/、dir‐1/dir‐2/dir‐3/、dir‐1/dir‐2/dir‐3/obj‐1、dir‐1/dir‐2/dir‐3/obj‐2和dir‐1/dir‐2/dir‐3/obj‐3,則服務器根據(jù)updatetableset對象名=left_replace(對象名,‘dir‐1/’,‘new‐dir‐1/’)where對象名like‘dir‐1/%’,確定所有對象名均為目標對象名,并將所有對象名中的dir‐1/替換為new‐dir‐1/。服務器將其確定出的目標對象名中的第一信息替換為第二信息后,向客戶端設備發(fā)送響應消息,即執(zhí)行S603??蛇x的,本發(fā)明實施例中的響應消息可以包含有OK字符,也可以包含確認(英文:Acknowledgement,簡稱:ACK)字符,本發(fā)明實施例對此不作具體限定。服務器向客戶端設備發(fā)送響應消息后,該客戶端設備獲知第一信息已經(jīng)替換為第二信息,在后續(xù)通信中,該客戶端設備可直接利用第二信息訪問對象??梢钥闯觯捎帽景l(fā)明實施例提供的重命名方法,客戶端設備與服務器之間僅需進行一次交互即可實現(xiàn)目錄名的重命名或文件名的重命名,有效的解決了現(xiàn)有的重命名方法導致的系統(tǒng)IO次數(shù)多、重命名效率低的問題,降低了系統(tǒng)IO次數(shù),提高了重命名效率。進一步地,本發(fā)明實施例中的服務器在接收到客戶端設備發(fā)送的請求后,可以先檢測其接收到的請求中是否攜帶重命名標識。若服務器確定其接收到的請求中攜帶重命名標識,則該服務器按照本發(fā)明實施例提供的重命名方法執(zhí)行相關(guān)流程。圖9為本發(fā)明實施例提供的一種訪問方法的流程示意圖,該訪問方法可以應用在圖4或圖5所示的通信系統(tǒng)中。參見圖9,該訪問方法包括:S900、客戶端設備向服務器發(fā)送攜帶待訪問對象的對象名和訪問標識的訪問請求。其中,訪問標識用于指示服務器讀取待訪問對象的數(shù)據(jù)。S901、服務器在檢測到訪問標識后,從映射關(guān)系表中獲取與待訪問對象的對象名對應的待訪問對象的UUID。其中,映射關(guān)系表包括待訪問對象的對象名與待訪問對象的特征的對應關(guān)系,待訪問對象的特征包括待訪問對象的UUID,待訪問對象的UUID用于指示待訪問對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址。S902、服務器根據(jù)待訪問對象的UUID,讀取待訪問對象的數(shù)據(jù)。S903、服務器向客戶端設備發(fā)送訪問響應,用以通知客戶端設備已成功讀取待訪問對象的數(shù)據(jù)。本發(fā)明實施例中的映射關(guān)系表與圖6所示實施例中的映射關(guān)系表相同,均包括對象名與對象的特征之間的對應關(guān)系。映射關(guān)系表中對象的特征包括對象的UUID,且對象的UUID用于指示對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址。待訪問對象的對象名為映射關(guān)系表中的其中一個對象名,服務器在接收到訪問請求后,可從映射關(guān)系表中獲取到與待訪問對象的對象名對應的待訪問對象的UUID,進而根據(jù)該待訪問對象的UUID讀取待訪問對象的數(shù)據(jù)。從圖6所示實施例可知,映射關(guān)系表中的每個對象名均可以修改,即使某一對象的對象名進行了修改,在映射關(guān)系表中,修改后的對象名依舊與該對象的UUID對應??蛻舳嗽O備可獲知每一修改后的對象名,這樣,該客戶端設備可使用某一修改后的對象名發(fā)送訪問請求,從而使得服務器從映射關(guān)系表中獲取與該修改后的對象名對應的對象的UUID,進而讀取該對象的數(shù)據(jù)。本發(fā)明實施例中客戶端設備發(fā)送的訪問請求可以參考現(xiàn)有技術(shù)中客戶端設備發(fā)送的訪問請求,服務器發(fā)送的訪問響應也可以參考現(xiàn)有技術(shù)中服務器發(fā)送的訪問響應,此處不再進行詳細贅述。本發(fā)明實施例提供一種服務器,該服務器用于執(zhí)行以上重命名方法中的服務器所執(zhí)行的步驟。本發(fā)明實施例提供的服務器可以包括相應步驟所對應的模塊。本發(fā)明實施例可以根據(jù)上述方法示例對服務器進行功能模塊的劃分,例如,可以對應各個功能劃分各個功能模塊,也可以將兩個或兩個以上的功能集成在一個處理模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明實施例中對模塊的劃分是示意性的,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。在采用對應各個功能劃分各個功能模塊的情況下,圖10示出了上述實施例中所涉及的服務器的一種可能的結(jié)構(gòu)示意圖。如圖10所示,服務器包括接收單元100、獲取單元101、發(fā)送單元102。接收單元100用于支持該服務器執(zhí)行圖6中的S600,和/或執(zhí)行圖9中的S900;獲取單元101用于支持該服務器執(zhí)行圖6中的S601,和/或執(zhí)行圖9中的S901;發(fā)送單元102用于支持該服務器執(zhí)行圖6中的S603,和/或執(zhí)行圖9中的S903。服務器還包括替換單元103或讀取單元104。替換單元103用于支持該服務器執(zhí)行圖6中的S602;讀取單元104用于支持該服務器執(zhí)行圖9中的S902。其中,上述方法實施例涉及的各步驟的所有相關(guān)內(nèi)容均可以援引到對應功能模塊的功能描述,在此不再贅述。該服務器還包括存儲單元105,用于存儲映射關(guān)系表。在采用集成的單元的情況下,圖11示出了上述實施例中所涉及的服務器的一種可能的結(jié)構(gòu)示意圖。如圖11所示,該服務器包括:處理模塊110和通信模塊111。處理模塊110用于對該服務器的動作進行控制管理,例如,處理模塊110用于支持該服務器執(zhí)行圖6中S601和S602,和/或執(zhí)行圖9中S901和S902,和/或用于本文所描述的技術(shù)的其它過程。通信模塊111用于支持該服務器與客戶端設備的通信,例如,通信模塊111用于支持該服務器執(zhí)行圖6中的S600和S603,和/或執(zhí)行圖9中的S900和S903。該服務器還可以包括存儲模塊112,用于存儲映射關(guān)系表,還可以用于存儲該服務器的程序代碼和數(shù)據(jù)。其中,處理模塊110可以是處理器或控制器,例如可以是中央處理器(英文:CentralProcessingUnit,簡稱:CPU),數(shù)字信號處理器(英文:DigitalSignalProcessor,簡稱:DSP)。其可以實現(xiàn)或執(zhí)行結(jié)合本發(fā)明實施例公開內(nèi)容所描述的各種示例性的邏輯方框,模塊和電路。通信模塊111可以是收發(fā)器、收發(fā)電路或通信接口等。存儲模塊112可以是存儲器。當處理模塊110為處理器,通信模塊111為通信接口,存儲模塊112為存儲器時,本發(fā)明實施例所涉及的服務器可以為圖12所示的服務器。如圖12所示,該服務器包括:通信接口120、處理器121和存儲器122。其中,通信接口120、處理器121與存儲器122之間通過系統(tǒng)總線123連接,并完成相互間通信。當服務器運行時,該服務器執(zhí)行如圖6所示的實施例的重命名方法,和/或執(zhí)行如圖9所示的實施例的訪問方法。具體的重命名方法可參見上述如圖6所示的實施例中的相關(guān)描述,具體的訪問方法可參見上述如圖9所示的實施例中的相關(guān)描述,此處不再贅述。圖12所示的服務器與圖5中的服務器40相同,圖5中未示出系統(tǒng)總線123。其中,通信接口120用于與客戶端設備通信,如以太網(wǎng),WLAN等。其中,存儲器122可用于存儲映射關(guān)系表,也可以用于存儲軟件程序以及應用模塊,處理器121通過運行存儲在存儲器122的軟件程序以及應用模塊,從而執(zhí)行服務器的各種功能應用以及數(shù)據(jù)處理。存儲器122可主要包括存儲程序區(qū)1220和存儲數(shù)據(jù)區(qū)1221,其中,存儲程序區(qū)1220可存儲操作系統(tǒng)、至少一個功能所需的應用程序,比如將第一信息替換為第二信息的功能等;存儲數(shù)據(jù)區(qū)1221可存儲映射關(guān)系表。其中,存儲器122可以是只讀存儲器(英文:Read‐onlyMemory,簡稱:ROM),或可存儲靜態(tài)信息和指令的其他類型的靜態(tài)存儲設備,隨機存取存儲器(英文:RandomAccessMemory,簡稱:RAM)或者可存儲信息和指令的其他類型的動態(tài)存儲設備,也可以是電可擦可編程只讀存儲器(英文:ElectricallyErasableProgrammableRead‐OnlyMemory,簡稱:EEPROM)、磁盤存儲介質(zhì)或者其他磁存儲設備、或者能夠用于攜帶或存儲具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由服務器存取的任何其他介質(zhì),但不限于此。存儲器122可以是獨立存在,通過系統(tǒng)總線123與處理器121相連接。存儲器122也可以和處理器121集成在一起。處理器121是服務器的控制中心。處理器121利用各種接口和線路連接整個服務器的各個部分,通過運行或執(zhí)行存儲在存儲器122內(nèi)的軟件程序和/或應用模塊,以及調(diào)用存儲在存儲器122內(nèi)的數(shù)據(jù),執(zhí)行服務器的各種功能和處理數(shù)據(jù),從而對服務器進行整體監(jiān)控。在具體實現(xiàn)中,作為一種實施例,處理器121可以包括一個或多個CPU,例如圖12中的處理器121包括CPU0和CPU1。系統(tǒng)總線123可以分為地址總線、數(shù)據(jù)總線、控制總線等。本發(fā)明實施例中為了清楚說明,在圖12中將各種總線都示意為系統(tǒng)總線123。本發(fā)明實施例提供了一種服務器,服務器在接收到客戶端設備發(fā)送的攜帶第一信息、第二信息以及重命名標識的重命名請求后,從映射關(guān)系表中獲取包括第一信息的目標對象名,重命名標識用于指示將第一信息替換為第二信息,映射關(guān)系表包括目標對象名與目標對象的特征的對應關(guān)系,目標對象的特征包括目標對象的通用唯一識別碼UUID,且目標對象的UUID用于指示目標對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,然后,該服務器將目標對象名中的第一信息替換為第二信息。本發(fā)明實施例中的服務器存儲有映射關(guān)系表,由于該映射關(guān)系表包括有目標對象名與目標對象的特征的對應關(guān)系,且目標對象的特征包括用于指示該目標對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址的UUID,因此,服務器可以從映射關(guān)系表中獲取到目標對象的元數(shù)據(jù)和數(shù)據(jù)的存儲地址,并根據(jù)該存儲地址獲取到目標對象的數(shù)據(jù)。由于目標對象的元數(shù)據(jù)和數(shù)據(jù)在服務器中的存儲地址不變,因此,服務器在接收到重命名請求后,可以直接將映射關(guān)系表中目標對象名的第一信息替換為第二信息,而無需執(zhí)行備份的過程和刪除的過程,有效的降低了系統(tǒng)IO操作次數(shù),提高了重命名的效率。通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng)。所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例的技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來。該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。存儲介質(zhì)例如為:通用串行總線閃存盤(英文:UniversalSerialBusflashdisk,簡稱:U盤)、移動硬盤、ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā)明的范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權(quán)利要求的范圍之內(nèi),則本發(fā)明實施例也意圖包含這些改動和變型在內(nèi)。當前第1頁1 2 3 當前第1頁1 2 3 
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1