最近做了一个分布式的项目用到了FastDFS,关于FastDFS这里就不阐述了,有兴趣了解的小伙伴,请到官网:http://bbs.chinaunix.net/forum-240-1.html。这里着重介绍FastDFS客户端(Python版),此版客户端已经用于实际项目,目前运行稳定。项目托管于git,地址:https://github.com/cosysun/FastDFSClient_Python.git。
一、原理
在官方C++客户端的基础上重新封装C++接口,并提供给Python调用
二、优势
1、 效率比纯python版本的要高
2、易于维护,与官网C++客户端更新同步
3、稳定性好
三、安装说明
本人采用的安装环境是 CentOS 6.4 64bit,具体步骤如下:
1、复制ClientForPython到FastDFS源代码client目录下
2、复制json库 cp json/lib/* /usr/local/lib/ ldconfig
这里的JSON库是我在CentOS下编译的,有可能在其他系统上有冲突,请下载源码重新编译,地址:https://github.com/open-source-parsers/jsoncpp.git
3、接入client目录下 执行Make
请注意Makefile请根据Fastdfs安装目录做修改
四、接口介绍
1、fdfs_init(参数1 日志等级) 初始化Fastdfs客户端
参数1:字符串 FastDFS客户端配置文件目录, 比如:"/etc/fdfs/client.conf"
参数2:整形 打印日志等级 总共有七级
LOG_EMERG = 0 LOG_ALERT = 1 LOG_CRIT = 2 LOG_ERR = 3 LOG_WARNING = 4 LOG_NOTICE = 5 LOG_INFO = 6 LOG_DEBUG = 7
2、fdfs_download(参数1, 参数2) 下载文件
参数1: 字符串 所在的Fastdfs组名 例如:group2
参数2: 字符串 具体存放路径 例如:M00/00/00/CgEIzVRlv3SAYJCTAAAsFwWtoVg9432330
3、fdfs_upload(参数1, 参数2) 上传文件
参数1: 字符串 文件内容
参数2: 字符串 文件后缀 默认可为空 “”
4、fdfs_delete(参数1, 参数2) 删除文件
参数1: 字符串 所在的Fastdfs组名 例如:group2
参数2: 字符串 具体存放路径 例如:M00/00/00/CgEIzVRlv3SAYJCTAAAsFwWtoVg9432330
5、监控FastDFS信息
list_all_groups() 监控所有group信息
list_one_group("IP地址") 监控指定ip信息
list_storages("组名", "IP地址") 监控某组下storages的信息,如果ip不为空则监控全部,
五、使用范例
请参考test目录下测试用例
六、联系
有问题的小伙伴,请加入 群:291368579