FUFS 是一款基於linux c語言版fuse 開發的使用者空間檔案系統,實現了在linux 中對新浪微盤的基本操作。檔案系統實現了對新浪微盤API的封裝,當檔案系統掛載到使用者linux 的某個檔案加下,使用者只需像普通檔案一樣操作自己微盤中的目錄和檔案。
FUFS的實現,通過fuse 來擷取使用者檔案操作的指令,轉而通過fufs自行分裝的檔案操作函數,來實現對新浪微盤裡面的檔案的操作。 通過libcurl 庫,來實現http報文的發送和接受,通過glib庫實現fufs 檔案系統inode節點的建立,查詢,刪除,插入。通過json-c庫,實現對新浪微盤伺服器響應報文的解析。
FUFS實現的功能
1 掛載檔案系統到linux 中某個檔案
2 查詢新浪微盤根目錄檔案
3 查詢新浪微盤中某個檔案
4 各種類型檔案thumbnail的顯示
5 檔案夾屬性的擷取
6 新浪微盤裡的檔案,linux環境讀取
7 新浪微盤檔案的讀寫
修改後檔案
8 檔案系統的卸載
注意:
由於新浪微盤API要求,對使用者擷取的token,必須在10-15分鐘之間進行keep_token操作,因此在實現過程中,FUFS
先將擷取的token儲存在/tmp/token.log檔案中,當fufs檔案系統完成掛載後,需要運行src目錄裡面的token_keep_thread
小程式,它通過讀取token.log裡的token,在使用者指定時間裡面進行keep_token操作,保證token的有效性。
目前還沒有完成的工作
1 文字檔漢字開啟時出現亂碼。(主要原因是缺少urlencode函數,對從新浪微盤讀取資料的解碼擷取中文)
2 檔案重新命名,目錄重新命名 。即fuse裡面的rename函數為完成。
感謝:非常感謝kpfs檔案系統的作者Tao Yu ,給我實現新浪微盤檔案系統FUFS帶來了很多靈感和協助.
如果有什麼問題需要交流,或許你想協助完善FUFS檔案系統,你可以發我郵件。
我的郵箱地址:handsomestone@gmail.com
FUFS的github地址 : https://github.com/handsomestone/FUFS
FUFS的wiki地址: https://github.com/handsomestone/FUFS/wiki/About-FUFS