fufs用戶空間文件系統(tǒng)
FUFS 是一款基于linux c語言版fuse 開發(fā)的用戶空間文件系統(tǒng),實現(xiàn)了在linux 中對新浪微盤的基本操作。文件系統(tǒng)實現(xiàn)了對新浪微盤API的封裝,當文件系統(tǒng)掛載到用戶linux 的某個文件夾下,用戶只需像普通文件一樣操作自己微盤中的目錄和文件。
FUFS的實現(xiàn),通過fuse 來獲取用戶文件操作的指令,轉(zhuǎn)而通過fufs自行分裝的文件操作函數(shù),來實現(xiàn)對新浪微盤里面的文件的操作。 通過libcurl 庫,來實現(xiàn)http報文的發(fā)送和接受,通過glib庫實現(xiàn)fufs 文件系統(tǒng)inode節(jié)點的建立,查詢,刪除,插入。通過json-c庫,實現(xiàn)對新浪微盤服務器響應報文的解析。
FUFS實現(xiàn)的功能
1 掛載文件系統(tǒng)到linux 中某個文件
2 查詢新浪微盤根目錄文件
3 查詢新浪微盤中某個文件
4 各種類型文件thumbnail的顯示
5 文件夾屬性的獲取
6 新浪微盤里的文件,linux環(huán)境讀取
7 新浪微盤文件的讀寫
修改后文件
8 文件系統(tǒng)的卸載
注意:
由于新浪微盤API要求,對用戶獲取的token,必須在10-15分鐘之間進行keep_token操作,因此在實現(xiàn)過程中,F(xiàn)UFS
先將獲取的token保存在/tmp/token.log文件中,當fufs文件系統(tǒng)完成掛載后,需要運行src目錄里面的token_keep_thread
小程序,它通過讀取token.log里的token,在用戶指定時間里面進行keep_token操作,保證token的有效性。
目前還沒有完成的工作
1 文本文件漢字打開時出現(xiàn)亂碼。(主要原因是缺少urlencode函數(shù),對從新浪微盤讀取數(shù)據(jù)的解碼獲取中文)
2 文件重命名,目錄重命名 。即fuse里面的rename函數(shù)未完成。
感謝:非常感謝kpfs文件系統(tǒng)的作者Tao Yu ,給我實現(xiàn)新浪微盤文件系統(tǒng)FUFS帶來了很多靈感和幫助.
如果有什么問題需要交流,或許你想幫助完善FUFS文件系統(tǒng),你可以發(fā)我郵件。
我的郵箱地址:[email protected]
