開源軟件FUFS(新浪微盤linux客戶端)
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