本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種終端訪問內(nèi)容分發(fā)網(wǎng)絡(luò)(英文:contentdeliverynetwork,簡稱:cdn)的方法及系統(tǒng)、用于使終端訪問cdn的驅(qū)動和cdn。
背景技術(shù):
為了緩解互聯(lián)網(wǎng)的數(shù)據(jù)傳輸壓力、更高效地為用戶提供數(shù)據(jù)服務(wù),各種類型的cdn服務(wù)商,如自建cdn、電信運營商、免費自助cdn等應(yīng)運而生。第三方的應(yīng)用程序通過cdn可以更快地獲得所需內(nèi)容。
第三方的應(yīng)用程序在訪問cdn時,一般需要根據(jù)該cdn提供的協(xié)議進行協(xié)議對接。但由于不同cdn提供的協(xié)議也是各式各樣的,這為第三方的應(yīng)用程序接入cdn帶來了難度。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁┮环N終端訪問cdn的方法及系統(tǒng)、用于使終端訪問cdn的驅(qū)動和cdn,用以解決第三方的應(yīng)用程序接入cdn需要進行協(xié)議對接,導(dǎo)致應(yīng)用程序接入cdn困難的問題。
本申請第一方面,提供了一種終端訪問cdn的方法,所述終端包括驅(qū)動、vfs、應(yīng)用程序和目錄,所述目錄來自于所述cdn,在所述終端側(cè),所述方法包括:
所述驅(qū)動接收所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用,所述系統(tǒng)調(diào)用由所述應(yīng)用程序在請求對所述目錄中的文件進行操作時發(fā)送;
所述驅(qū)動根據(jù)預(yù)設(shè)的所述系統(tǒng)調(diào)用與cdn指令之間的映射關(guān)系,將所述 系統(tǒng)調(diào)用轉(zhuǎn)換成對應(yīng)的cdn指令;
所述驅(qū)動將所述cdn指令發(fā)送給所述cdn,使得所述cdn響應(yīng)所述應(yīng)用程序的請求。
通過上述實現(xiàn)方式,通過這種方式,cdn只需與驅(qū)動作交互,無需對每一個應(yīng)用程序都做一次對接,減小了應(yīng)用程序接入cdn的難度,也減少了cdn的建設(shè)費用。
在一個可能的設(shè)計中,在所述驅(qū)動接收所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用之前,所述方法還包括:
在所述驅(qū)動被安裝到所述終端的過程中,所述驅(qū)動獲取所述終端的認(rèn)證信息;
所述驅(qū)動將所述認(rèn)證信息攜帶在認(rèn)證請求中發(fā)送給所述cdn進行認(rèn)證;
所述驅(qū)動接收所述cdn在認(rèn)證通過所述認(rèn)證請求后返回的授權(quán)結(jié)果;所述授權(quán)結(jié)果包括所述認(rèn)證信息對應(yīng)的賬戶列表;
所述驅(qū)動從所述cdn獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,完成所述驅(qū)動的安裝過程;
在所述終端的開機過程中,所述驅(qū)動確定所述終端登錄的賬戶;
若所述終端登錄的賬戶在所述賬戶列表中,則所述驅(qū)動根據(jù)獲取的所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,在所述終端上生成與所述終端登錄的賬戶對應(yīng)的目錄。
通過上述實現(xiàn)方式,在驅(qū)動被安裝到終端的過程中進行第一次鑒權(quán),在終端開機時進行第二次鑒權(quán),通過雙重鑒權(quán)可以保證終端訪問cdn的安全性。
在一個可能的設(shè)計中,所述終端還包括權(quán)限認(rèn)證模塊;
所述驅(qū)動從所述cdn上獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,包括:
所述驅(qū)動從所述cdn上獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄和每個賬戶對目錄中的文件的訪問權(quán)限;
所述系統(tǒng)調(diào)用由所述應(yīng)用程序發(fā)送給所述權(quán)限認(rèn)證模塊;在所述權(quán)限認(rèn)證模塊根據(jù)所述終端登錄的賬戶的訪問權(quán)限確定所述應(yīng)用程序能夠進行所述操作時、所述系統(tǒng)調(diào)用再由所述權(quán)限認(rèn)證模塊發(fā)送給所述vfs、最終由所述vfs發(fā)送給所述驅(qū)動。
通過上述實現(xiàn)方式,在應(yīng)用程序訪問目錄中的文件時再次進行鑒權(quán),進一步保證cdn文件的安全性。
本申請第二方面,提供了一種終端訪問cdn的方法,所述終端包括驅(qū)動、vfs、應(yīng)用程序和目錄,所述目錄來自于所述cdn,在所述cdn側(cè),所述方法包括:
所述cdn接收所述驅(qū)動發(fā)送的cdn指令;所述cdn指令由所述驅(qū)動在接收到所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用時發(fā)送;所述系統(tǒng)調(diào)用由所述應(yīng)用程序在請求對所述目錄中的文件進行操作時發(fā)送;
所述cdn根據(jù)所述cdn指令,響應(yīng)所述應(yīng)用程序的請求。
在一個可能的設(shè)計中,在所述cdn接收所述驅(qū)動發(fā)送的cdn指令之前,所述方法還包括:
所述cdn接收所述驅(qū)動發(fā)送的認(rèn)證請求;所述認(rèn)證請求攜帶有所述終端的認(rèn)證信息;
所述cdn在認(rèn)證通過所述認(rèn)證請求后,返回授權(quán)結(jié)果給所述驅(qū)動,所述授權(quán)結(jié)果包括所述認(rèn)證信息對應(yīng)的賬戶列表;
所述cdn在所述驅(qū)動請求獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄時,返回所述賬戶列表中的每個賬戶分別對應(yīng)的目錄給所述驅(qū)動。
本申請第三方面,提供了一種用于使終端訪問cdn的驅(qū)動,所述終端包括所述驅(qū)動、統(tǒng)vfs、應(yīng)用程序和目錄,所述目錄來自于所述cdn:所述驅(qū)動具有實現(xiàn)上述第一方面的方法的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊或單元。
一種可能的實現(xiàn)方式中,所述驅(qū)動包括接收單元、轉(zhuǎn)換單元和發(fā)送單元:
所述接收單元,用于接收所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用,所述系統(tǒng)調(diào)用由所述應(yīng)用程序在請求對所述目錄中的文件進行操作時發(fā)送;
所述轉(zhuǎn)換單元,用于根據(jù)預(yù)設(shè)的所述系統(tǒng)調(diào)用與cdn指令之間的映射關(guān)系,將所述系統(tǒng)調(diào)用轉(zhuǎn)換成對應(yīng)的cdn指令;
所述發(fā)送單元,用于將所述cdn指令發(fā)送給所述cdn,使得所述cdn響應(yīng)所述應(yīng)用程序的請求。
本申請第四方面,提供了一種cdn,包括:
接收單元,用于接收終端上的驅(qū)動發(fā)送的cdn指令;所述cdn指令由所述驅(qū)動在接收到所述終端上的vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用時發(fā)送;所述系統(tǒng)調(diào)用由所述終端上的應(yīng)用程序在請求對所述終端上的目錄中的文件進行操作時發(fā)送;所述目錄來自于所述cdn;
處理單元,用于根據(jù)所述cdn指令,響應(yīng)所述應(yīng)用程序的請求。
本申請第五方面,提供了一種終端訪問cdn的系統(tǒng),所述系統(tǒng)包括終端和cdn,所述終端包括驅(qū)動、vfs、應(yīng)用程序和目錄,所述目錄來自于所述cdn;其中
所述驅(qū)動,用于接收所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用,所述系統(tǒng)調(diào)用由所述應(yīng)用程序在請求對所述目錄中的文件進行操作時發(fā)送;根據(jù)預(yù)設(shè)的所述系統(tǒng)調(diào)用與cdn指令之間的映射關(guān)系,將所述系統(tǒng)調(diào)用轉(zhuǎn)換成對應(yīng)的cdn指令;將所述cdn指令發(fā)送給所述cdn;
所述cdn,用于接收所述驅(qū)動發(fā)送的cdn指令;根據(jù)所述cdn指令,響應(yīng)所述應(yīng)用程序的請求。
在一個可能的設(shè)計中,在所述驅(qū)動接收所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用之前,所述驅(qū)動還用于:
在所述驅(qū)動被安裝到所述終端的過程中,獲取所述終端的認(rèn)證信息;
將所述認(rèn)證信息攜帶在認(rèn)證請求中發(fā)送給所述cdn進行認(rèn)證;
接收所述cdn在認(rèn)證通過所述認(rèn)證請求后返回的授權(quán)結(jié)果;所述授權(quán)結(jié)果包括所述認(rèn)證信息對應(yīng)的賬戶列表;
從所述cdn獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,完成所述驅(qū)動的安裝過程;
在所述終端的開機過程中,確定所述終端登錄的賬戶;
若所述終端登錄的賬戶在所述賬戶列表中,則根據(jù)獲取的所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,在所述終端上生成與所述終端登錄的賬戶對應(yīng)的目錄。
在一個可能的設(shè)計中,所述終端還包括權(quán)限認(rèn)證模塊;
所述驅(qū)動在從所述cdn上獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄時,具體用于:
從所述cdn上獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄和每個賬戶對目錄中的文件的訪問權(quán)限;
所述系統(tǒng)調(diào)用由所述應(yīng)用程序發(fā)送給所述權(quán)限認(rèn)證模塊;在所述權(quán)限認(rèn)證模塊根據(jù)所述終端登錄的賬戶的訪問權(quán)限確定所述應(yīng)用程序能夠進行所述操作時、所述系統(tǒng)調(diào)用再由所述權(quán)限認(rèn)證模塊發(fā)送給所述vfs、最終由所述vfs發(fā)送給所述驅(qū)動。
利用本申請?zhí)峁┑姆桨?,通過在終端上安裝本申請?zhí)峁┑尿?qū)動,該驅(qū)動可以將來自于cdn的目錄保存在終端上,終端上的應(yīng)用程序只需把該目錄當(dāng)作普通的目錄,對其進行讀寫文件的操作請求即可,終端自帶的虛擬文件系統(tǒng)(英文:virtualfilesystem,簡稱:vfs)可以捕獲到該操作請求并傳送給驅(qū)動,由驅(qū)動根據(jù)該操作請求對cdn執(zhí)行相應(yīng)的操作,從而實現(xiàn)第三方應(yīng)用程序?qū)dn的訪問。通過這種方式,cdn只需與驅(qū)動作交互,無需對每一個應(yīng)用程序都做一次對接,減小了應(yīng)用程序接入cdn的難度,也減少了cdn的建設(shè)費用。
附圖說明
圖1為本申請?zhí)峁┑囊环N終端訪問cdn的方法應(yīng)用的系統(tǒng)示意圖;
圖2為本申請?zhí)峁┑囊环N驅(qū)動生成的目錄的示意圖;
圖3為本申請?zhí)峁┑囊环N終端訪問cdn的方法的流程圖;
圖4為本申請?zhí)峁┑囊环N用于使終端訪問cdn的驅(qū)動的結(jié)構(gòu)示意圖;
圖5為本申請?zhí)峁┑囊环Ncdn的結(jié)構(gòu)示意圖。
具體實施方式
當(dāng)?shù)谌降膽?yīng)用程序訪問cdn時,總是需要進行相關(guān)協(xié)議的轉(zhuǎn)換。這對于cdn的提供商而言,需要向應(yīng)用程序提供cdn的訪問協(xié)議及使用方式。而對于第三方的應(yīng)用程序而言,需要根據(jù)cdn提供的協(xié)議學(xué)習(xí)如何對接到cdn。期間,cdn與第三方的應(yīng)用程序之間的聯(lián)合調(diào)試部署等環(huán)節(jié)也是費時費力。當(dāng)cdn提供商在商務(wù)上處于弱勢時,還會需要修改cdn的系統(tǒng)架構(gòu),導(dǎo)致增加了不必要的管理費用。
為此,本申請?zhí)岢隽艘环N終端訪問cdn的方法及系統(tǒng)、用于使終端訪問cdn的驅(qū)動和cdn,通過在終端上安裝本申請?zhí)峁┑尿?qū)動,該驅(qū)動可以將來自于cdn的目錄保存在終端上,終端上的應(yīng)用程序只需把該目錄當(dāng)作普通的目錄,對其進行讀寫文件的操作請求即可,終端自帶的vfs可以捕獲到該操作請求并傳送給驅(qū)動,由驅(qū)動根據(jù)該操作請求對cdn執(zhí)行相應(yīng)的操作,從而實現(xiàn)第三方應(yīng)用程序?qū)dn的訪問。通過這種方式,cdn只需與驅(qū)動作交互,無需對每一個應(yīng)用程序都做一次對接,減小了應(yīng)用程序接入cdn的難度,也減少了cdn的建設(shè)費用。
本申請?zhí)峁┑募夹g(shù)方案可以應(yīng)用于移動終端設(shè)備上,如手機、平板電腦等,也可以應(yīng)用于固定終端設(shè)備上,如臺式機等。此外,本申請?zhí)峁┑募夹g(shù)方案的實施不受限于設(shè)備使用的操作系統(tǒng),如可以應(yīng)用于linux操作系統(tǒng),windows操作系統(tǒng)等。
下面結(jié)合附圖對本發(fā)明優(yōu)選的實施方式進行詳細說明。
本申請?zhí)峁┑慕K端訪問cdn的方法,可以應(yīng)用于圖1所示的系統(tǒng),該系統(tǒng)包括終端10和cdn11。
其中,終端10包括應(yīng)用程序101、目錄102、vfs103和驅(qū)動104。
應(yīng)用程序101,可以是具備文件系統(tǒng)訪問功能的任何類型的軟件,如文本查看軟件、圖片查看軟件、視頻播放軟件和音樂播放軟件等。
目錄102,來自于cdn11,可視為cdn11面向應(yīng)用程序101的對外接口。應(yīng)用程序101只需把目錄102當(dāng)作普通目錄,對其進行讀寫文件的操作請求,即可對cdn11上的文件進行查看、修改、下載、刪除等操作。如圖2所示,為目錄102的一種可能的顯示形式。
vfs103,為終端10自帶的文件系統(tǒng)對外接口,為各類文件系統(tǒng)提供了一個統(tǒng)一的操作界面和應(yīng)用程序編程接口。在本申請中,vfs103用于捕獲應(yīng)用程序101在對目錄102進行讀寫文件操作時發(fā)送的系統(tǒng)調(diào)用,并將捕獲到的系統(tǒng)調(diào)用發(fā)送給驅(qū)動104做后續(xù)處理。
驅(qū)動104,用于接收vfs103轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用,所述系統(tǒng)調(diào)用由應(yīng)用程序101在請求對目錄102中的文件進行操作時發(fā)送;然后根據(jù)預(yù)設(shè)的所述系統(tǒng)調(diào)用與cdn指令之間的映射關(guān)系,將所述系統(tǒng)調(diào)用轉(zhuǎn)換成對應(yīng)的cdn指令;將所述cdn指令發(fā)送給cdn11。
由于系統(tǒng)調(diào)用的類型是有限的,常用的有讀文件、修改文件、保存文件、刪除文件等幾種類型的系統(tǒng)調(diào)用。因此,驅(qū)動104內(nèi)部可以預(yù)先配置好各種類型的系統(tǒng)調(diào)用與cdn指令之間的映射關(guān)系。所謂cdn指令,即cdn11能夠識別的指令。
cdn11,用于接收所述驅(qū)動104發(fā)送的cdn指令;然后根據(jù)所述cdn指令,響應(yīng)所述應(yīng)用程序101的請求。
可選的,在所述驅(qū)動104接收所述vfs103轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用之前,所述驅(qū)動104還可以用于:在所述驅(qū)動104被安裝到所述終端10的過程中,獲取所 述終端10的認(rèn)證信息;將所述認(rèn)證信息攜帶在認(rèn)證請求中發(fā)送給所述cdn11進行認(rèn)證;接收所述cdn11在認(rèn)證通過所述認(rèn)證請求后返回的授權(quán)結(jié)果;所述授權(quán)結(jié)果包括所述認(rèn)證信息對應(yīng)的賬戶列表;從所述cdn11獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,完成所述驅(qū)動104的安裝過程;然后,在所述終端10的開機過程中,確定所述終端10登錄的賬戶;若所述終端10登錄的賬戶在所述賬戶列表中,則根據(jù)獲取的所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,在所述終端10上生成與所述終端登錄的賬戶對應(yīng)的目錄102。
可選的,所述終端10還包括權(quán)限認(rèn)證模塊;從而,在所述驅(qū)動104從所述cdn11上獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄時,所述驅(qū)動104還可以從所述cdn11上獲取每個賬戶對目錄中的文件的訪問權(quán)限。從而,所述系統(tǒng)調(diào)用由所述應(yīng)用程序101發(fā)送給所述權(quán)限認(rèn)證模塊;在所述權(quán)限認(rèn)證模塊根據(jù)所述終端10登錄的賬戶的訪問權(quán)限確定所述應(yīng)用程序101能夠進行所述操作時、所述系統(tǒng)調(diào)用再由所述權(quán)限認(rèn)證模塊發(fā)送給所述vfs103、最終由所述vfs103發(fā)送給所述驅(qū)動104。
可選的,cdn11可以包括cdn全局負(fù)載均衡服務(wù)器111、cdn數(shù)據(jù)源服務(wù)器112和多個cdn邊緣服務(wù)器,如圖1中的cdn邊緣服務(wù)器113和cdn邊緣服務(wù)器114。
在終端10安裝驅(qū)動104時,cdn全局負(fù)載均衡服務(wù)器111若接收到驅(qū)動104發(fā)送的認(rèn)證信息,則用于對該認(rèn)證信息進行認(rèn)證,并在認(rèn)證通過該認(rèn)證信息后,在多個cdn邊緣服務(wù)器中選擇一個cdn邊緣服務(wù)器分配給驅(qū)動104,如將cdn邊緣服務(wù)器113分配給驅(qū)動104,后續(xù)驅(qū)動104直接與cdn邊緣服務(wù)器113交互。
cdn數(shù)據(jù)源服務(wù)器112上存儲有cdn11內(nèi)的所有文件。如果cdn邊緣服務(wù)器113上不存在驅(qū)動104所請求的文件時,cdn邊緣服務(wù)器113可以向cdn數(shù)據(jù)源服務(wù)器112請求該驅(qū)動104所請求的文件。
cdn邊緣服務(wù)器可以采用集群式的部署方式,也可以采用非集群式的部 署方式。下面以驅(qū)動104和其中一個cdn邊緣服務(wù)器的交互舉例說明,如cdn邊緣服務(wù)器113。
cdn邊緣服務(wù)器113在接收到驅(qū)動104發(fā)送的cdn指令時,根據(jù)該cdn指令執(zhí)行相應(yīng)的操作,如將該cdn邊緣服務(wù)器113上存儲的某一個文件發(fā)送給驅(qū)動104、刪除該cdn邊緣服務(wù)器113上存儲的某一個文件等。
本申請中,驅(qū)動可以將來自于cdn的目錄保存在終端上,由驅(qū)動統(tǒng)一根據(jù)各個應(yīng)用程序?qū)υ撃夸浀南到y(tǒng)調(diào)用向cdn發(fā)起請求,終端中的各個應(yīng)用程序通過訪問該目錄即可實現(xiàn)訪問cdn的效果,應(yīng)用程序無需與cdn實現(xiàn)對接。
如圖3所示為本申請?zhí)峁┑囊环N終端訪問cdn的方法的流程示意圖,所述方法包括:
步驟301:終端上的驅(qū)動基于cdn數(shù)據(jù)源服務(wù)器上存儲的文件在所述終端上生成目錄。
可選的,所述驅(qū)動在所述終端上生成目錄之前,需要先向cdn進行身份認(rèn)證,具體實現(xiàn)過程如下:
第一步,所述驅(qū)動在被安裝到所述終端的過程中,獲取所述終端的認(rèn)證信息。
所述認(rèn)證信息可以是用戶輸入所述終端的密鑰,也可以是所述驅(qū)動的安裝程序中攜帶的密鑰。
第二步,所述驅(qū)動將所述認(rèn)證信息攜帶在認(rèn)證請求發(fā)送給cdn全局負(fù)載均衡服務(wù)器進行認(rèn)證。
所述驅(qū)動的安裝程序中可以攜帶一域名,所述驅(qū)動將所述認(rèn)證請求發(fā)送至該域名指向的服務(wù)器,由該域名指向的服務(wù)器將所述認(rèn)證請求重定向到cdn全局負(fù)載均衡服務(wù)器進行認(rèn)證。全局負(fù)載均衡服務(wù)器上可以維護一個合法密鑰列表,全局負(fù)載均衡服務(wù)器通過比對所述認(rèn)證請求中攜帶的密鑰是否在該列表上,確定是否通過所述認(rèn)證請求。
第三步,如果所述cdn全局負(fù)載均衡服務(wù)器未認(rèn)證通過所述認(rèn)證請求, 則所述cdn全局負(fù)載均衡服務(wù)器通知所述驅(qū)動認(rèn)證失敗,所述驅(qū)動退出安裝程序。如果所述cdn全局負(fù)載均衡器認(rèn)證通過所述認(rèn)證請求,則所述cdn全局負(fù)載均衡服務(wù)器可以返回授權(quán)結(jié)果給所述驅(qū)動,從而完成所述驅(qū)動的身份認(rèn)證,其中,所述授權(quán)結(jié)果包括所述認(rèn)證信息對應(yīng)的賬戶列表。
可選的,所述授權(quán)結(jié)果還可以包括cdn邊緣服務(wù)器的地址。
可選的,所述cdn全局負(fù)載均衡服務(wù)器分配給所述驅(qū)動的cdn邊緣服務(wù)器可以是性能最佳的一個cdn邊緣服務(wù)器,例如,可以是cdn包括的多個cdn邊緣服務(wù)器集群中與所述終端的物理距離最近的一個cdn邊緣服務(wù)器集群中的任一個服務(wù)器?;蛘撸鯿dn邊緣服務(wù)器可以是cdn包括的多個cdn邊緣服務(wù)器集群中網(wǎng)絡(luò)速度最快的一個cdn邊緣服務(wù)器集群中的任一個服務(wù)器。
在所述驅(qū)動的認(rèn)證請求被認(rèn)證通過的情況下,如果所述授權(quán)結(jié)果包括cdn邊緣服務(wù)器的地址,則所述驅(qū)動可以通過該地址連接上對應(yīng)的cdn邊緣服務(wù)器;如果所述授權(quán)結(jié)果不包括cdn邊緣服務(wù)器的地址,則所述驅(qū)動可以向cdn全局負(fù)載均衡服務(wù)器,由cdn全局負(fù)載均衡服務(wù)器將所述驅(qū)動的請求重定向到一個cdn邊緣服務(wù)器上。所述驅(qū)動可以從cdn邊緣服務(wù)器上獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄。cdn邊緣服務(wù)器上存儲的目錄以及目錄下的文件可以來源于cdn中的cdn數(shù)據(jù)源服務(wù)器,也可以來源于其它cdn邊緣服務(wù)器。
所述驅(qū)動獲得的所述賬戶列表中可能包括了多個賬戶,其中不同的賬戶可能對應(yīng)著不同形式的目錄。例如,賬戶1對應(yīng)的目錄所包含的子目錄的數(shù)量,可能多于賬戶2對應(yīng)的目錄所包含的子目錄的數(shù)量。
由于不同的賬戶可能對應(yīng)著不同形式的目錄,因此步驟301中所述驅(qū)動可以在所述終端的開機過程中,先確定所述終端登錄的賬戶,若所述終端登錄的賬戶在所述賬戶列表中,則所述驅(qū)動可以根據(jù)獲取的所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,在所述終端上生成與所述終端登錄的賬戶對應(yīng)的目錄。若 所述終端登錄的賬戶不在所述賬戶列表中,則所述驅(qū)動不生成目錄,或是生成一個空目錄。如此,可以增強應(yīng)用程序訪問cdn的安全性。
步驟302:所述終端上的應(yīng)用程序在請求對所述目錄中的文件進行操作時,發(fā)送系統(tǒng)調(diào)用。
所述操作請求包括讀文件請求、修改文件請求、保存文件請求、刪除文件請求等。
步驟303:所述終端上的vfs捕獲到所述應(yīng)用程序發(fā)送的系統(tǒng)調(diào)用,將所述系統(tǒng)調(diào)用轉(zhuǎn)發(fā)給所述驅(qū)動。
可選的,為了增強應(yīng)用程序訪問cdn的安全性,所述終端還可以包括權(quán)限認(rèn)證模塊,所述驅(qū)動可以從所述cdn邊緣服務(wù)器上獲取到所述賬戶列表中的每個賬戶對目錄中的文件的訪問權(quán)限,并將所述訪問權(quán)限發(fā)送給所述權(quán)限認(rèn)證模塊。不同的用戶可能對應(yīng)著不同的文件訪問權(quán)限。例如,某個目錄下的一個文件對于賬戶1而言其文件屬性是可讀的,對于賬戶2而言其文件屬性可能是不可讀的。
從而,所述應(yīng)用程序在請求對所述目錄的文件進行操作時,發(fā)送系統(tǒng)調(diào)用給所述所述權(quán)限認(rèn)證模塊;如果所述權(quán)限認(rèn)證模塊根據(jù)所述終端登錄的賬戶的訪問權(quán)限確定所述應(yīng)用程序能夠進行所述操作時,則將所述系統(tǒng)調(diào)用發(fā)送給vfs,最終由vfs將所述系統(tǒng)調(diào)用發(fā)送給驅(qū)動;如果所述權(quán)限認(rèn)證模塊確定所述應(yīng)用程序無權(quán)進行所述操作,則屏蔽所述系統(tǒng)調(diào)用。
步驟304:所述驅(qū)動接收所述vfs轉(zhuǎn)發(fā)的來自所述應(yīng)用程序的系統(tǒng)調(diào)用后,根據(jù)預(yù)設(shè)的所述系統(tǒng)調(diào)用與cdn指令之間的映射關(guān)系,將所述系統(tǒng)調(diào)用轉(zhuǎn)換成對應(yīng)的cdn指令。
步驟305:所述驅(qū)動將所述cdn指令發(fā)送給cdn邊緣服務(wù)器。
步驟306:所述cdn邊緣服務(wù)器根據(jù)所述cdn指令,響應(yīng)所述應(yīng)用程序的請求。
例如,某應(yīng)用程序請求刪除一文件時,cdn邊緣服務(wù)器可以刪除本服務(wù) 器上存儲的該文件,或是將該文件設(shè)置成對該應(yīng)用程序不可見。
例如,某應(yīng)用程序請求修改一文件時,cdn邊緣服務(wù)器可以獲取該應(yīng)用程序修改后的文件,并將獲取的文件替換本服務(wù)器上存儲的原文件。
例如,某應(yīng)用程序請求讀一文件或下載一文件時,cdn邊緣服務(wù)器可以將該文件用預(yù)先約定的協(xié)議(如超文本傳輸協(xié)議(英文:hypertexttransferprotocol,簡稱:http))封裝后發(fā)送給驅(qū)動,驅(qū)動對收到的文件解封裝后傳遞給vfs,由vfs將該文件呈現(xiàn)給該應(yīng)用程序。
如果cdn邊緣服務(wù)器上不存在驅(qū)動所請求的文件時,cdn邊緣服務(wù)器可以向cdn數(shù)據(jù)源服務(wù)器或其它cdn邊緣服務(wù)器請求該驅(qū)動所請求的文件。
可選的,為了提高cdn邊緣服務(wù)器的響應(yīng)速度,在cdn邊緣服務(wù)器接收終端上的驅(qū)動發(fā)送的cdn指令之前,cdn邊緣服務(wù)器可以預(yù)先向cdn數(shù)據(jù)源服務(wù)器或其它cdn邊緣服務(wù)器獲取發(fā)送給驅(qū)動的目錄中的文件。
基于本申請上述提供的終端訪問cdn方法,本申請?zhí)峁┮环N用于使終端訪問cdn的驅(qū)動400,用于實現(xiàn)上述終端訪問cdn方法中驅(qū)動的功能,其中,所述終端包括所述驅(qū)動、vfs、應(yīng)用程序和目錄,所述目錄來自于所述cdn。如圖4所示,所述驅(qū)動400包括接收單元401、轉(zhuǎn)換單元402和發(fā)送單元403:
所述接收單元401,用于接收所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用,所述系統(tǒng)調(diào)用由所述應(yīng)用程序在請求對所述目錄中的文件進行操作時發(fā)送。
所述轉(zhuǎn)換單元402,用于根據(jù)預(yù)設(shè)的所述系統(tǒng)調(diào)用與cdn指令之間的映射關(guān)系,將所述系統(tǒng)調(diào)用轉(zhuǎn)換成對應(yīng)的cdn指令。
所述發(fā)送單元403,用于將所述cdn指令發(fā)送給所述cdn,使得所述cdn響應(yīng)所述應(yīng)用程序的請求。
可選的,所述驅(qū)動400還可以包括獲取單元和處理單元:
所述獲取單元,用于在所述接收單元401接收所述vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用之前,在所述驅(qū)動被安裝到所述終端的過程中,獲取所述終端的認(rèn)證信息。
相應(yīng)的,所述發(fā)送單元403還用于,將所述認(rèn)證信息攜帶在認(rèn)證請求中發(fā) 送給所述cdn進行認(rèn)證。
所述接收單元401還用于,接收所述cdn在認(rèn)證通過所述認(rèn)證請求后返回的授權(quán)結(jié)果;所述授權(quán)結(jié)果包括所述認(rèn)證信息對應(yīng)的賬戶列表。
所述發(fā)送單元403還用于,從所述cdn獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,完成所述驅(qū)動的安裝過程。
所述處理單元用于,在所述終端的開機過程中,確定所述終端登錄的賬戶;若所述終端登錄的賬戶在所述賬戶列表中,則根據(jù)獲取的所述賬戶列表中的每個賬戶分別對應(yīng)的目錄,在所述終端上生成與所述終端登錄的賬戶對應(yīng)的目錄。
可選的,所述終端還可以包括權(quán)限認(rèn)證模塊;
相應(yīng)的,所述發(fā)送單元403在從所述cdn上獲取所述賬戶列表中的每個賬戶分別對應(yīng)的目錄的同時,還可以從所述cdn上獲取每個賬戶對目錄中的文件的訪問權(quán)限。
從而,所述系統(tǒng)調(diào)用可以由所述應(yīng)用程序發(fā)送給所述權(quán)限認(rèn)證模塊;在所述權(quán)限認(rèn)證模塊根據(jù)所述終端登錄的賬戶的訪問權(quán)限確定所述應(yīng)用程序能夠進行所述操作時、所述系統(tǒng)調(diào)用再由所述權(quán)限認(rèn)證模塊發(fā)送給所述vfs、最終由所述vfs發(fā)送給所述驅(qū)動。
本實施例中未盡之細節(jié)可參考上述圖3所示方法中驅(qū)動的描述,在此不再贅述。
需要說明的是,本發(fā)明實施例中對單元的劃分是示意性的,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。在本申請的實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
基于本申請上述提供的終端訪問cdn方法,本申請?zhí)峁┮环Ncdn500,用于實現(xiàn)上述終端訪問cdn方法中cdn的功能。如圖5所示,所述cdn500 包括接收單元501和處理單元502:
所述接收單元501,用于接收終端上的驅(qū)動發(fā)送的cdn指令;所述cdn指令由所述驅(qū)動在接收到所述終端上的vfs轉(zhuǎn)發(fā)的系統(tǒng)調(diào)用時發(fā)送;所述系統(tǒng)調(diào)用由所述終端上的應(yīng)用程序在請求對所述終端上的目錄中的文件進行操作時發(fā)送;所述目錄來自于所述cdn。
所述處理單元502,用于根據(jù)所述cdn指令,響應(yīng)所述應(yīng)用程序的請求。
需要說明的是,本發(fā)明實施例中對單元的劃分是示意性的,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式。在本申請的實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
綜上所述,采用本申請?zhí)峁┑募夹g(shù)方案,通過在終端上安裝本申請?zhí)峁┑尿?qū)動,該驅(qū)動可以將來自于cdn的目錄保存在終端上,終端上的應(yīng)用程序只需把該目錄當(dāng)作普通的目錄,對其進行讀寫文件的操作請求即可,終端自帶的vfs可以捕獲到該操作請求并傳送給驅(qū)動,由驅(qū)動根據(jù)該操作請求對cdn執(zhí)行相應(yīng)的操作,從而實現(xiàn)第三方應(yīng)用程序?qū)dn的訪問。通過這種方式,cdn無需對每一個應(yīng)用程序都做一次對接,減小了應(yīng)用程序接入cdn的難度,也減少了cdn的建設(shè)費用。并且,本申請?zhí)峁┑募夹g(shù)方案可以適用于所有版本的文件系統(tǒng),兼容性強。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和 /或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。