开源软件FUFS(新浪微盘linux客户端)

openkk 12年前

FUFS 是一款基于linux c语言版fuse 开发的用户空间文件系统,实现了在linux 中对新浪微盘的基本操作。文件系统实现了对新浪微盘API的封装,当文件系统挂载到用户linux 的某个文件夹下,用户只需像普通文件一样操作自己微盘中的目录和文件。

FUFS的实现,通过fuse 来获取用户文件操作的指令,转而通过fufs自行分装的文件操作函数,来实现对新浪微盘里面的文件的操作。 通过libcurl 库,来实现http报文的发送和接受,通过glib库实现fufs 文件系统inode节点的建立,查询,删除,插入。通过json-c库,实现对新浪微盘服务器响应报文的解析。

FUFS实现的功能

1 挂载文件系统到linux 中某个文件

用户空间文件系统 FUFS

2 查询新浪微盘根目录文件

用户空间文件系统 FUFS

3 查询新浪微盘中某个文件

用户空间文件系统 FUFS

4 各种类型文件thumbnail的显示

用户空间文件系统 FUFS

5 文件夹属性的获取

用户空间文件系统 FUFS

6 新浪微盘里的文件,linux环境读取

用户空间文件系统 FUFS

7 新浪微盘文件的读写

用户空间文件系统 FUFS

修改后文件

用户空间文件系统 FUFS

8 文件系统的卸载

用户空间文件系统 FUFS

注意:

由于新浪微盘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

项目主页:http://www.open-open.com/lib/view/home/1344524646030