本申請(qǐng)涉及云存儲(chǔ)領(lǐng)域,特別是涉及通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的方法和裝置。
背景技術(shù):
在智能電視設(shè)備或機(jī)頂盒設(shè)備中,通常會(huì)遇到存儲(chǔ)空間不足的問題。如何為智能電視設(shè)備或機(jī)頂盒設(shè)備擴(kuò)展海量的存儲(chǔ)空間成為目前亟待解決的一個(gè)技術(shù)問題。
近年來云存儲(chǔ)技術(shù)飛速發(fā)展,并且為擴(kuò)展海量的存儲(chǔ)空間提供了有效的解決方案。而隨著云存儲(chǔ)技術(shù)的飛速發(fā)展,各種提供云存儲(chǔ)服務(wù)的云存儲(chǔ)客戶端(例如,云盤)也層出不窮,并且也已經(jīng)廣泛地運(yùn)用到了智能手機(jī)和智能電視設(shè)備中。通過云存儲(chǔ)客戶端可以將圖片、視頻等文件上傳到云端的云存儲(chǔ)服務(wù)器,也可以訪問已經(jīng)上傳到云存儲(chǔ)服務(wù)器中的圖片、視頻等文件。
但是,在實(shí)現(xiàn)本申請(qǐng)的過程中,本申請(qǐng)的發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:對(duì)于安裝在智能電視設(shè)備或機(jī)頂盒設(shè)備上的各個(gè)應(yīng)用(例如,實(shí)現(xiàn)監(jiān)控功能的應(yīng)用)來說,該應(yīng)用必須自己實(shí)現(xiàn)云存儲(chǔ)功能。這不僅增加了應(yīng)用開發(fā)商的開發(fā)難度,也增加了開發(fā)成本。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本申請(qǐng)實(shí)施例提供了通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的方法和裝置,以通過一個(gè)云文件系統(tǒng)集中為各個(gè)應(yīng)用提供云存儲(chǔ)服務(wù),應(yīng)用開發(fā)商無需再自己實(shí)現(xiàn)云存儲(chǔ)功能,從而節(jié)約了應(yīng)用開發(fā)商的開發(fā)難度和開發(fā)成本。
本申請(qǐng)實(shí)施例公開了如下技術(shù)方案:
一種通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的方法,包括:
響應(yīng)于應(yīng)用對(duì)云文件系統(tǒng)中的文件的操作請(qǐng)求,獲取所述應(yīng)用的進(jìn)程名;
判斷所述操作請(qǐng)求針對(duì)的文件所在的路徑的名稱中是否包含所述應(yīng)用的進(jìn)程名;
如果是,允許所述操作請(qǐng)求,對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作;
如果否,拒絕所述操作請(qǐng)求。
優(yōu)選的,當(dāng)所述操作請(qǐng)求為寫入請(qǐng)求時(shí),所述允許所述寫入請(qǐng)求,對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述寫入請(qǐng)求指示的寫入操作包括:
將所述寫入請(qǐng)求針對(duì)的文件保存在本地的存儲(chǔ)空間中;
向所述應(yīng)用返回寫入響應(yīng),并將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給所述云存儲(chǔ)服務(wù)器。
優(yōu)選的,還包括:
在將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給所述云存儲(chǔ)服務(wù)器之后,將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間中刪除。
優(yōu)選的,還包括:
將所述寫入操作針對(duì)的文件的信息存儲(chǔ)在本地的數(shù)據(jù)庫中。
優(yōu)選的,還包括:
響應(yīng)于對(duì)云文件系統(tǒng)的啟動(dòng)操作,將所述云存儲(chǔ)服務(wù)器中的文件信息同步到本地的數(shù)據(jù)庫中。
優(yōu)選的,還包括:
響應(yīng)于應(yīng)用對(duì)所述文件系統(tǒng)中的文件目錄的讀取請(qǐng)求,從所述本地的數(shù)據(jù)庫讀取文件信息,并將讀取的文件信息返回給所述應(yīng)用。
優(yōu)選的,還包括:
在對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作之前,根據(jù)所述云文件系統(tǒng)所在的電子設(shè)備的唯一標(biāo)識(shí),從云存儲(chǔ)代理平臺(tái)獲取預(yù)先分配給所述云文件系統(tǒng)所在的電子設(shè)備的云存儲(chǔ)服務(wù)器的使用賬號(hào),其中,所述云存儲(chǔ)代理平臺(tái)預(yù)先存儲(chǔ)有電子設(shè)備的唯一標(biāo)識(shí)與云存儲(chǔ)服務(wù)的使用賬號(hào)之間的映射關(guān)系;
則所述對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作為:
根據(jù)所述云存儲(chǔ)服務(wù)器的使用賬號(hào)對(duì)相應(yīng)的云存儲(chǔ)服務(wù)器執(zhí)行所述操作 請(qǐng)求指示的操作。
優(yōu)選的,所述云存儲(chǔ)服務(wù)器的使用賬號(hào)是經(jīng)過所述云存儲(chǔ)代理平臺(tái)加密處理的。
優(yōu)選的,所述云文件系統(tǒng)是在用戶空間實(shí)現(xiàn)的。
優(yōu)選的,在所述用戶空間設(shè)置有l(wèi)ibfuse接口,所述libfuse接口與內(nèi)核空間的FUSE模塊通信;當(dāng)內(nèi)核空間中的VFS模塊響應(yīng)于應(yīng)用的文件操作命令,并將所述文件操作命令傳遞給FUSE模塊時(shí),所述FUSE模塊將所述文件操作命令傳遞給所述libfuse接口,所述libfuse接口將所述文件操作命令傳遞給所述云文件系統(tǒng)。
優(yōu)選的,所述云文件系統(tǒng)基于http協(xié)議實(shí)現(xiàn)傳輸。
一種通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的裝置,包括:
進(jìn)程名獲取單元,用于響應(yīng)于應(yīng)用對(duì)云文件系統(tǒng)中的文件的操作請(qǐng)求,獲取所述應(yīng)用的進(jìn)程名;
判斷單元,用于判斷所述操作請(qǐng)求針對(duì)的文件所在的路徑的名稱中是否包含所述應(yīng)用的進(jìn)程名;
操作執(zhí)行單元,用于如果是,允許所述操作請(qǐng)求,對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作;
操作拒絕單元,用于如果否,拒絕所述操作請(qǐng)求。
優(yōu)選的,當(dāng)所述操作請(qǐng)求為寫入請(qǐng)求時(shí),所述操作執(zhí)行單元包括:
第一存儲(chǔ)子單元,用于將所述寫入請(qǐng)求針對(duì)的文件保存在本地的存儲(chǔ)空間中;
響應(yīng)子單元,用于向所述應(yīng)用返回寫入響應(yīng),并將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給所述云存儲(chǔ)服務(wù)器。
優(yōu)選的,所述操作執(zhí)行單元還包括:
刪除子單元,用于在所述響應(yīng)子單元將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給所述云存儲(chǔ)服務(wù)器之后,將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間中刪除。
優(yōu)選的,所述操作執(zhí)行單元還包括:
第二存儲(chǔ)子單元,用于將所述寫入操作針對(duì)的文件的信息存儲(chǔ)在本地的 數(shù)據(jù)庫中。
優(yōu)選的,所述裝置還包括:
數(shù)據(jù)同步單元,用于響應(yīng)于對(duì)云文件系統(tǒng)的啟動(dòng)操作,將所述云存儲(chǔ)服務(wù)器中的文件信息同步到本地的數(shù)據(jù)庫中。
優(yōu)選的,所述裝置還包括:
目錄讀取單元,用于響應(yīng)于應(yīng)用對(duì)所述文件系統(tǒng)中的文件目錄的讀取請(qǐng)求,從所述本地的數(shù)據(jù)庫讀取文件信息,并將讀取的文件信息返回給所述應(yīng)用。
優(yōu)選的,所述裝置還包括:
賬號(hào)獲取單元,用于在所述操作執(zhí)行單元對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作之前,根據(jù)所述云文件系統(tǒng)所在的電子設(shè)備的唯一標(biāo)識(shí),從云存儲(chǔ)代理平臺(tái)獲取預(yù)先分配給所述云文件系統(tǒng)所在的電子設(shè)備的云存儲(chǔ)服務(wù)器的使用賬號(hào),其中,所述云存儲(chǔ)代理平臺(tái)預(yù)先存儲(chǔ)有電子設(shè)備的唯一標(biāo)識(shí)與云存儲(chǔ)服務(wù)的使用賬號(hào)之間的映射關(guān)系;
則所述操作執(zhí)行單元用于,根據(jù)所述云存儲(chǔ)服務(wù)器的使用賬號(hào)對(duì)相應(yīng)的云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作。
優(yōu)選的,所述云存儲(chǔ)服務(wù)器的使用賬號(hào)是經(jīng)過所述云存儲(chǔ)代理平臺(tái)加密處理的。
優(yōu)選的,所述云文件系統(tǒng)是在用戶空間實(shí)現(xiàn)的。
優(yōu)選的,在所述用戶空間設(shè)置有l(wèi)ibfuse接口,所述libfuse接口與內(nèi)核空間的FUSE模塊通信;當(dāng)內(nèi)核空間中的VFS模塊響應(yīng)于應(yīng)用的文件操作命令,并將所述文件操作命令傳遞給FUSE模塊時(shí),所述FUSE模塊將所述文件操作命令傳遞給所述libfuse接口,所述libfuse接口將所述文件操作命令傳遞給所述云文件系統(tǒng)。
優(yōu)選的,所述云文件系統(tǒng)基于http協(xié)議實(shí)現(xiàn)傳輸。
由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本申請(qǐng)的優(yōu)點(diǎn)在于:
由一個(gè)云文件系統(tǒng)集中為所有應(yīng)用提供系統(tǒng)級(jí)的云存儲(chǔ)服務(wù),并且,對(duì)于每一個(gè)應(yīng)用來說,其只能對(duì)該云文件系統(tǒng)中屬于自己的文件進(jìn)行操作,而不能對(duì)屬于其它應(yīng)用的文件進(jìn)行操作。各個(gè)應(yīng)用的開發(fā)商無需再各自去實(shí)現(xiàn) 云存儲(chǔ)服務(wù),從而節(jié)約了應(yīng)用開發(fā)商的開發(fā)難度和開發(fā)成本。
附圖說明
為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示意性地示出了本申請(qǐng)的實(shí)施方式可以在其中實(shí)施的一個(gè)示例性應(yīng)用場(chǎng)景;
圖2示意性地示出了根據(jù)本申請(qǐng)的一個(gè)實(shí)施方式的通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的方法的流程圖;
圖3示意性地示出了本申請(qǐng)的實(shí)施方式可以在其中實(shí)施的另一個(gè)示例性應(yīng)用場(chǎng)景;
圖4示意性地示出了根據(jù)本申請(qǐng)的一個(gè)實(shí)施方式的在用戶空間實(shí)現(xiàn)云文件系統(tǒng)的工作原理圖;
圖5示意性地示出了根據(jù)本申請(qǐng)的一個(gè)實(shí)施方式的通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的裝置的結(jié)構(gòu)框圖;
圖6示意性地示出了根據(jù)本申請(qǐng)的另一個(gè)實(shí)施方式的操作執(zhí)行單元的結(jié)構(gòu)框圖;
圖7示意性地示出了根據(jù)本申請(qǐng)的另一個(gè)實(shí)施方式的操作執(zhí)行單元的結(jié)構(gòu)框圖;
圖8示意性地示出了根據(jù)本申請(qǐng)的另一個(gè)實(shí)施方式的通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)的裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本申請(qǐng)實(shí)施例進(jìn)行詳細(xì)描述。
方法實(shí)施例
首先參考圖1,圖1示意性地示出了本申請(qǐng)的實(shí)施方式可以在其中實(shí)施的一個(gè)示例性應(yīng)用場(chǎng)景。其中,以智能電視設(shè)備為例,在智能電視設(shè)備上布置一個(gè)云文件系統(tǒng)10,在云文件系統(tǒng)10的根目錄下創(chuàng)建一個(gè)/Cloud文件夾11,智能電視設(shè)備上的任意一個(gè)客戶端應(yīng)用可以像操作本地文件一樣操作/Cloud文件夾11中的文件。/Cloud文件夾11是一個(gè)虛擬文件夾,并且映射到云存儲(chǔ)服務(wù)器20的某一個(gè)文件夾21上,因此,任意一個(gè)客戶端應(yīng)用對(duì)云文件系統(tǒng)10上的/Cloud文件夾11的操作實(shí)際上是對(duì)云存儲(chǔ)服務(wù)器20上的某一個(gè)文件夾21的操作。
具體的,客戶端應(yīng)用30向云文件系統(tǒng)10發(fā)送對(duì)/Cloud文件夾11中的某一個(gè)文件的寫入請(qǐng)求,云文件系統(tǒng)10對(duì)客戶端應(yīng)用30的寫入權(quán)限進(jìn)行控制,如果允許該寫入請(qǐng)求,云文件系統(tǒng)10對(duì)云存儲(chǔ)服務(wù)器20執(zhí)行該寫入請(qǐng)求所指示的寫入操作。即,云文件系統(tǒng)10向云存儲(chǔ)服務(wù)器20發(fā)送上傳文件請(qǐng)求,云存儲(chǔ)服務(wù)器20向云文件系統(tǒng)10返回上傳文件響應(yīng)(在上傳文件響應(yīng)中指示文件上傳成功或上傳失敗)。如果拒絕該寫入請(qǐng)求,云文件系統(tǒng)10向客戶端應(yīng)用30返回拒絕寫入的響應(yīng)。本領(lǐng)域技術(shù)人員可以理解,圖1所示的示意圖僅是本申請(qǐng)的實(shí)施方式可以在其中得以實(shí)現(xiàn)的一個(gè)示例。本申請(qǐng)實(shí)施方式的應(yīng)用范圍不受到該框架任何方面的限制。例如,客戶端應(yīng)用30除了可以向云文件系統(tǒng)10發(fā)送對(duì)/Cloud文件夾11中的某一個(gè)文件的寫入請(qǐng)求之外,還可以向云文件系統(tǒng)10發(fā)送對(duì)/Cloud文件夾11中的某一個(gè)文件的讀取請(qǐng)求。作為響應(yīng),云文件系統(tǒng)10向云存儲(chǔ)服務(wù)器20發(fā)送文件讀取請(qǐng)求,云存儲(chǔ)服務(wù)器20向云文件系統(tǒng)10返回相應(yīng)的文件。
需要說明的是,在本申請(qǐng)中,“云文件系統(tǒng)”是一種可以向應(yīng)用提供云存儲(chǔ)接入服務(wù)的文件系統(tǒng)。
結(jié)合上述應(yīng)用場(chǎng)景,請(qǐng)參閱圖2,示意性地示出了根據(jù)本申請(qǐng)的一個(gè)實(shí)施方式的通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)的方法的流程圖,例如,該方法可以由云文件系統(tǒng)10執(zhí)行,該方法例如包括以下步驟:
步驟201:響應(yīng)于應(yīng)用對(duì)云文件系統(tǒng)中的文件的操作請(qǐng)求,獲取所述應(yīng)用的進(jìn)程名。
步驟202:判斷所述操作請(qǐng)求針對(duì)的文件所在的路徑的名稱中是否包含所 述應(yīng)用的進(jìn)程名,如果是,進(jìn)入步驟203,否則,進(jìn)入步驟204。
步驟203:允許所述操作請(qǐng)求,對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作,結(jié)束流程。
步驟204:拒絕所述操作請(qǐng)求,結(jié)束流程。
在Linux文件系統(tǒng)中,文件的權(quán)限管理是基于用戶的,即,一個(gè)文件只能屬于一個(gè)用戶,其它用戶不能隨意操作該文件。但是,在智能電視設(shè)備或機(jī)頂盒設(shè)備中,應(yīng)用的概念變得更重要。當(dāng)云文件系統(tǒng)10響應(yīng)某一個(gè)應(yīng)用對(duì)某一個(gè)文件的操作請(qǐng)求時(shí),需要先判斷該應(yīng)用是否有對(duì)該文件進(jìn)行操作的權(quán)限。
在本申請(qǐng)中規(guī)定,一個(gè)應(yīng)用只能訪問以自己的進(jìn)程名命名的文件夾下的內(nèi)容?;诖?,云文件系統(tǒng)10可以判斷該操作請(qǐng)求針對(duì)的文件所在的路徑的名稱中是否包含所述應(yīng)用的進(jìn)程名,如果是,即可確定該應(yīng)用有對(duì)該文件進(jìn)行操作的權(quán)限,作為響應(yīng),云文件系統(tǒng)10允許該操作請(qǐng)求,對(duì)云存儲(chǔ)服務(wù)器執(zhí)行該操作請(qǐng)求指示的操作;如果否,即可確定該應(yīng)用沒有對(duì)該文件進(jìn)行操作的權(quán)限,作為響應(yīng),云文件系統(tǒng)10拒絕該操作請(qǐng)求。
其中,當(dāng)一個(gè)應(yīng)用向云文件系統(tǒng)10發(fā)送操作請(qǐng)求時(shí),該應(yīng)用的進(jìn)程號(hào)作為該操作請(qǐng)求中的一個(gè)參數(shù)傳遞給了云文件系統(tǒng)10,云文件系統(tǒng)10通過該應(yīng)用的進(jìn)程號(hào)可以進(jìn)一步得到該應(yīng)用的進(jìn)程名。
考慮到本申請(qǐng)中的云文件系統(tǒng)10是一個(gè)依賴于網(wǎng)絡(luò)的文件系統(tǒng),其對(duì)于操作請(qǐng)求的響應(yīng)速度會(huì)比本地文件系統(tǒng)的響應(yīng)速度要低。
在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施方式中,為了盡可能地提高云文件系統(tǒng)10對(duì)寫入請(qǐng)求的響應(yīng)速度,當(dāng)云文件系統(tǒng)10允許寫入請(qǐng)求,對(duì)云存儲(chǔ)服務(wù)器20執(zhí)行該寫入請(qǐng)求指示的寫入操作時(shí),云文件系統(tǒng)10可以先將寫入請(qǐng)求針對(duì)文件保存在本地的存儲(chǔ)空間中,然后立刻向應(yīng)用返回寫入響應(yīng),以便用戶可以繼續(xù)進(jìn)行下面的操作,隨后云文件系統(tǒng)10再將該寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給云存儲(chǔ)服務(wù)器20。當(dāng)然,云文件系統(tǒng)10也可以在向應(yīng)用返回寫入響應(yīng)的同時(shí),將該寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給云存儲(chǔ)服務(wù)器20。
進(jìn)一步的,在將寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給云存儲(chǔ)服務(wù)器之后,還將寫入請(qǐng)求針對(duì)的文件本地的存儲(chǔ)空間中刪除,以便釋放本地 的存儲(chǔ)空間。
在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施方式中,為了盡可能地提高云文件系統(tǒng)10對(duì)讀取請(qǐng)求的響應(yīng)速度,云文件系統(tǒng)10將寫入操作針對(duì)的文件的文件信息存儲(chǔ)在本地的數(shù)據(jù)庫中。其中,文件信息可以包括但不限于:文件的類型、文件的大小以及文件的存儲(chǔ)路徑等。文件信息是作為元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。當(dāng)云文件系統(tǒng)10響應(yīng)于應(yīng)用對(duì)文件目錄的讀取請(qǐng)求時(shí),文件系統(tǒng)10從本地的數(shù)據(jù)庫中讀取文件信息,并將讀取的文件信息返回給該應(yīng)用。
可以理解的,由于云文件系統(tǒng)10是從本地的數(shù)據(jù)庫中讀取文件信息的,而不需要通過網(wǎng)絡(luò)訪問云端的云存儲(chǔ)服務(wù)器20,因此,可以快速地進(jìn)行響應(yīng)。
為了保證云存儲(chǔ)服務(wù)器20中的文件信息與本地的數(shù)據(jù)庫中的文件信息一致,在本申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,當(dāng)啟動(dòng)云文件系統(tǒng)10時(shí),響應(yīng)于該啟動(dòng)操作,云文件系統(tǒng)10啟動(dòng)同步服務(wù),即,將云存儲(chǔ)服務(wù)器20中的文件信息同步到本地的數(shù)據(jù)庫中。
當(dāng)然,云文件系統(tǒng)10可以先比較本地的數(shù)據(jù)庫中的文件信息是否與云存儲(chǔ)服務(wù)器中的文件信息一致,如果不一致,再啟動(dòng)同步服務(wù),如果一致,不啟動(dòng)同步服務(wù)。
在同步完成之前,先使用同步之前的數(shù)據(jù)庫,在同步完成之后,再使用同步后的數(shù)據(jù)庫。
另外,需要說明的是,在本申請(qǐng)中,可以利用現(xiàn)有的云存儲(chǔ)服務(wù)器提供云存儲(chǔ)服務(wù)。
但是,云存儲(chǔ)服務(wù)器的提供商都有自己的賬號(hào)體系,需要各個(gè)應(yīng)用的開發(fā)者在網(wǎng)站上注冊(cè)并開通云存儲(chǔ)功能,進(jìn)而為應(yīng)用獲得一個(gè)云存儲(chǔ)服務(wù)器的使用賬號(hào)??紤]到各個(gè)應(yīng)用的開發(fā)者還需要執(zhí)行注冊(cè)和開通等繁瑣的操作過程才能享用到云存儲(chǔ)服務(wù),因此,在本申請(qǐng)中,為了避免各個(gè)應(yīng)用的開發(fā)者執(zhí)行上述繁瑣的操作過程,可以在云端搭建一個(gè)云存儲(chǔ)代理平臺(tái)(Cloudstorage Agent Platform,CAP),由智能電視設(shè)備或機(jī)頂盒設(shè)備的生產(chǎn)商從云存儲(chǔ)服務(wù)器的提供商處為每一臺(tái)設(shè)備獲得一個(gè)云存儲(chǔ)服務(wù)器的使用賬號(hào),同時(shí),在CAP上存儲(chǔ)了每一臺(tái)設(shè)備的唯一標(biāo)識(shí)與云存儲(chǔ)服務(wù)器的使用賬號(hào)之間的映射關(guān)系。
首先參考圖3,圖3示意性地示出了本申請(qǐng)的實(shí)施方式可以在其中實(shí)施的另一個(gè)示例性應(yīng)用場(chǎng)景??蛻舳藨?yīng)用30向云文件系統(tǒng)10發(fā)送對(duì)/Cloud文件夾11中的文件的寫入請(qǐng)求,云文件系統(tǒng)10對(duì)客戶端應(yīng)用30的寫入權(quán)限進(jìn)行控制,如果允許該寫入請(qǐng)求,云文件系統(tǒng)10將向CAP40發(fā)送獲取賬號(hào)請(qǐng)求,在該獲取賬號(hào)請(qǐng)求中包含有云文件系統(tǒng)10所在電子設(shè)備的唯一標(biāo)識(shí),如,設(shè)備標(biāo)識(shí)Device ID和產(chǎn)品型號(hào)Product Name,CAP40根據(jù)預(yù)先存儲(chǔ)的映射關(guān)系查找到云存儲(chǔ)服務(wù)器20的使用賬號(hào),并向云文件系統(tǒng)10返回獲取賬號(hào)響應(yīng),在該獲取賬號(hào)響應(yīng)中包含有云存儲(chǔ)服務(wù)器20的使用賬號(hào)。云文件系統(tǒng)10根據(jù)云存儲(chǔ)服務(wù)器20的使用賬號(hào)對(duì)云存儲(chǔ)服務(wù)器20執(zhí)行該寫入請(qǐng)求指示的寫入操作。即,云文件系統(tǒng)10向云存儲(chǔ)服務(wù)器20發(fā)送上傳文件請(qǐng)求,云存儲(chǔ)服務(wù)器20向云文件系統(tǒng)10返回指示文件上傳成功或上傳失敗的上傳文件響應(yīng)。如果拒絕該寫入請(qǐng)求,云文件系統(tǒng)10向客戶端應(yīng)用30返回指示拒絕寫入的寫入響應(yīng)。本領(lǐng)域技術(shù)人員可以理解,圖3所示的示意圖僅是本申請(qǐng)的實(shí)施方式可以在其中得以實(shí)現(xiàn)的一個(gè)示例。本申請(qǐng)實(shí)施方式的應(yīng)用范圍不受到該框架任何方面的限制。例如,客戶端應(yīng)用30除了可以向云文件系統(tǒng)10發(fā)送對(duì)/Cloud文件夾11中的文件的寫入請(qǐng)求之外,還可以向云文件系統(tǒng)10發(fā)送對(duì)/Cloud文件夾11中的文件的讀取請(qǐng)求。作為響應(yīng),云文件系統(tǒng)10向云存儲(chǔ)服務(wù)器20發(fā)送文件讀取請(qǐng)求,云存儲(chǔ)服務(wù)器20向云文件系統(tǒng)10返回相應(yīng)的文件。
另外,需要說明的是,為了保證云存儲(chǔ)服務(wù)器20的使用賬號(hào)在傳輸時(shí)的安全性,CAP可以先利用加密算法對(duì)云存儲(chǔ)服務(wù)器20的使用賬號(hào)進(jìn)行加密處理,然后再將經(jīng)過加密處理后的云存儲(chǔ)服務(wù)器20的使用賬號(hào)通過信令消息發(fā)送給云文件系統(tǒng)10。
可以理解的,在整個(gè)過程中,各個(gè)應(yīng)用對(duì)云存儲(chǔ)服務(wù)器20的賬號(hào)是一無所知的,這也保障了云存儲(chǔ)服務(wù)器20的賬號(hào)的安全性。
在現(xiàn)有技術(shù)中,如ext4這些常見的文件系統(tǒng)都是在操作系統(tǒng)的內(nèi)核中實(shí)現(xiàn)的,即,文件系統(tǒng)作為內(nèi)核的一個(gè)模塊。但是,這種實(shí)現(xiàn)方式對(duì)于系統(tǒng)開發(fā)人員的要求很高,需要非常熟悉操作系統(tǒng)的內(nèi)核,從而增加了開發(fā) 難度。為了降低開發(fā)難度,在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施方式中,云文件系統(tǒng)10是在用戶空間實(shí)現(xiàn)的,從而應(yīng)用只需要使用通用的Linux文件操作接口,就可以訪問云文件系統(tǒng)。
如圖4所示,用戶空間的libfuse接口與內(nèi)核空間的FUSE(Filesystem in Userspace)模塊通過/dev/fuse設(shè)備實(shí)現(xiàn)通信,從而達(dá)到由用戶空間的libfuse接口接管所有用戶操作的目的。其中,當(dāng)客戶端應(yīng)用通過某個(gè)命令發(fā)起對(duì)/Cloud文件夾11中的文件的操作時(shí),該命令從用戶空間傳遞到內(nèi)核空間的VFS(Virtual File Systeml,虛擬文件系統(tǒng))模塊,VFS模塊將該命令進(jìn)一步傳遞給FUSE模塊,F(xiàn)USE模塊再將該命令從內(nèi)核空間傳遞回用戶空間的libfuse接口,libfuse接口將該命令傳遞給./yunfs/Cloud處理進(jìn)程(即,用于實(shí)現(xiàn)各種文件操作的處理進(jìn)程,也是申請(qǐng)中的云文件系統(tǒng)),./yunfs/Cloud處理進(jìn)程根據(jù)該命令執(zhí)行相應(yīng)的操作。執(zhí)行完畢后,./yunfs/Cloud將執(zhí)行結(jié)果返回給libfuse接口,libfuse接口將執(zhí)行結(jié)果從用戶空間傳遞給內(nèi)核空間的FUSE模塊,F(xiàn)USE模塊再將執(zhí)行結(jié)果傳遞給VFS模塊,VFS模塊將執(zhí)行結(jié)果傳遞給客戶端應(yīng)用。
為了使本申請(qǐng)的云文件系統(tǒng)10可以跨局域網(wǎng),在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施方式中,云文件系統(tǒng)10基于http協(xié)議實(shí)現(xiàn)傳輸。
需要說明的是,本申請(qǐng)中的云文件系統(tǒng)可以布置在智能電視、機(jī)頂盒、PC機(jī)、平板電腦或手機(jī)等終端設(shè)備中。其中,優(yōu)選布置在智能電視和機(jī)頂盒中。
另外,在本申請(qǐng)中,當(dāng)云文件系統(tǒng)響應(yīng)應(yīng)用的操作請(qǐng)求時(shí),是針對(duì)云存儲(chǔ)服務(wù)器執(zhí)行該操作請(qǐng)求指示的操作,即,是向應(yīng)用提供了云存儲(chǔ)接入的服務(wù)。此外,云文件系統(tǒng)是在用戶空間而不是在linux內(nèi)核中實(shí)現(xiàn)的,并且,在傳輸層上,云文件系統(tǒng)是基于http協(xié)議實(shí)現(xiàn)傳輸?shù)?,而不是基于自由的協(xié)議實(shí)現(xiàn)傳輸?shù)摹?/p>
由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本申請(qǐng)的優(yōu)點(diǎn)在于:
由一個(gè)云文件系統(tǒng)集中為所有的應(yīng)用提供系統(tǒng)級(jí)的云存儲(chǔ)接入服務(wù),并且,對(duì)于每一個(gè)應(yīng)用來說,其只能對(duì)該云文件系統(tǒng)中屬于自己的文件進(jìn)行操作,而不能對(duì)屬于其它應(yīng)用的文件進(jìn)行操作。各個(gè)應(yīng)用的開發(fā)商無需再各自 去實(shí)現(xiàn)云存儲(chǔ)服務(wù),從而節(jié)約了應(yīng)用開發(fā)商的開發(fā)難度和開發(fā)成本。
裝置實(shí)施例
與上述一種通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的方法相對(duì)應(yīng),本申請(qǐng)實(shí)施例還提供了一種通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)的裝置。請(qǐng)參閱圖5,示意性地示出了根據(jù)本申請(qǐng)的一個(gè)實(shí)施方式的通過云文件系統(tǒng)實(shí)現(xiàn)云存儲(chǔ)接入的裝置的結(jié)構(gòu)框圖,該裝置包括:進(jìn)程名獲取單元501、判斷單元502、操作執(zhí)行單元503和操作拒絕單元504。下面結(jié)合該裝置的工作原理進(jìn)一步介紹其內(nèi)部結(jié)構(gòu)以及連接關(guān)系。
進(jìn)程名獲取單元501,用于響應(yīng)于應(yīng)用對(duì)云文件系統(tǒng)中的文件的操作請(qǐng)求,獲取所述應(yīng)用的進(jìn)程名;
判斷單元502,用于判斷所述操作請(qǐng)求針對(duì)的文件所在的路徑的名稱中是否包含所述應(yīng)用的進(jìn)程名;
操作執(zhí)行單元503,用于如果是,允許所述操作請(qǐng)求,對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作;
操作拒絕單元504,用于如果否,拒絕所述操作請(qǐng)求。
在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施方式中,如圖6所示,當(dāng)所述操作請(qǐng)求為寫入請(qǐng)求時(shí),操作執(zhí)行單元503包括:
第一存儲(chǔ)子單元5031,用于將所述寫入請(qǐng)求針對(duì)的文件保存在本地的存儲(chǔ)空間中;
響應(yīng)子單元5032,用于向所述應(yīng)用返回寫入響應(yīng),并將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給所述云存儲(chǔ)服務(wù)器。
在本申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,如圖7所示,操作執(zhí)行單元503還包括:
刪除子單元5033,用于在響應(yīng)子單元5032將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間傳輸給所述云存儲(chǔ)服務(wù)器之后,將所述寫入請(qǐng)求針對(duì)的文件從本地的存儲(chǔ)空間中刪除。
在本申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,操作執(zhí)行單元503還包括:
第二存儲(chǔ)子單元,用于將所述寫入操作針對(duì)的文件的文件信息存儲(chǔ)在本 地的數(shù)據(jù)庫中。
在本申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,所述裝置還包括:
數(shù)據(jù)同步單元,用于響應(yīng)于對(duì)云文件系統(tǒng)的啟動(dòng)操作,將所述云存儲(chǔ)服務(wù)器中的文件信息同步到本地的數(shù)據(jù)庫中。
在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施方式中,所述裝置還包括:
目錄讀取單元,用于響應(yīng)于應(yīng)用對(duì)所述文件系統(tǒng)中的文件目錄的讀取請(qǐng)求,從所述本地的數(shù)據(jù)庫讀取文件信息,并將讀取的文件信息返回給所述應(yīng)用。
在本申請(qǐng)的一個(gè)優(yōu)選實(shí)施方式中,如圖8所示,所述裝置還包括:
賬號(hào)獲取單元505,用于在操作執(zhí)行單元503對(duì)云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作之前,根據(jù)所述云文件系統(tǒng)所在的電子設(shè)備的唯一標(biāo)識(shí),從云存儲(chǔ)代理平臺(tái)獲取預(yù)先分配給所述云文件系統(tǒng)所在的電子設(shè)備的云存儲(chǔ)服務(wù)器的使用賬號(hào),其中,所述云存儲(chǔ)代理平臺(tái)預(yù)先存儲(chǔ)有電子設(shè)備的唯一標(biāo)識(shí)與云存儲(chǔ)服務(wù)的使用賬號(hào)之間的映射關(guān)系;
則操作執(zhí)行單元503用于,根據(jù)所述云存儲(chǔ)服務(wù)器的使用賬號(hào)對(duì)相應(yīng)的云存儲(chǔ)服務(wù)器執(zhí)行所述操作請(qǐng)求指示的操作。
在本申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,所述云存儲(chǔ)服務(wù)器的使用賬號(hào)是經(jīng)過所述云存儲(chǔ)代理平臺(tái)加密處理的。
在本申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,所述云文件系統(tǒng)是在用戶空間實(shí)現(xiàn)的。
在申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,可以通過如下方式在用戶空間實(shí)現(xiàn)云文件系統(tǒng):在所述用戶空間設(shè)置有l(wèi)ibfuse接口,所述libfuse接口與內(nèi)核空間的FUSE模塊通信;當(dāng)內(nèi)核空間中的VFS模塊響應(yīng)于應(yīng)用的文件操作命令,并將所述文件操作命令傳遞給FUSE模塊時(shí),所述FUSE模塊將所述文件操作命令傳遞給所述libfuse接口,所述libfuse接口將所述文件操作命令傳遞給所述云文件系統(tǒng)。
在本申請(qǐng)的另一個(gè)優(yōu)選實(shí)施方式中,所述云文件系統(tǒng)基于http協(xié)議實(shí)現(xiàn)傳輸。
由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本申請(qǐng)的優(yōu)點(diǎn)在于:
由一個(gè)云文件系統(tǒng)集中為所有應(yīng)用提供系統(tǒng)級(jí)的云存儲(chǔ)服務(wù),并且,對(duì)于每一個(gè)應(yīng)用來說,其只能對(duì)該云文件系統(tǒng)中屬于自己的文件進(jìn)行操作,而不能對(duì)屬于其它應(yīng)用的文件進(jìn)行操作。各個(gè)應(yīng)用的開發(fā)商無需再各自去實(shí)現(xiàn)云存儲(chǔ)服務(wù),從而節(jié)約了應(yīng)用開發(fā)商的開發(fā)難度和開發(fā)成本。
需要說明的是,本申請(qǐng)的云文件系統(tǒng)不僅適用于智能電視設(shè)備或機(jī)頂盒設(shè)備中,同樣還適用于使用Linux內(nèi)核的其它電子設(shè)備,包括移動(dòng)設(shè)備和PC機(jī)等。
所述領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述到的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性、機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),可以采用軟件功能單元的形式實(shí)現(xiàn)。
需要說明的是,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述 各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上對(duì)本申請(qǐng)所提供的一種實(shí)現(xiàn)云存儲(chǔ)接入的方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體實(shí)施例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。