FastDFS客户端(Python版)指
最近做了一个分布式的项目用到了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、接入ClientForPython目录下 执行Make
4、注意事项
1)请确保安装了 python-devel 如果是Ubuntu,请确保安装python-dev 不然会找不到Python.h
2) 源Makefile里的Python库是在 /usr/local/include/python2.7 如果您不是请安装你自己的目录修改
3)Makefile请根据Fastdfs安装目录做修改 特别是fastcommon 和 fastdfst 这两个我是安装在 /usr/local/include/下的,而默认安装有可能是 /usr/include/ 记得修改
四、接口介绍
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不为空则监控全部,
6、fdfs_slave_upload(参数1, 参数2, 参数3, 参数4) 上传文件
参数1: 字符串 文件内容
参数2: 字符串 文件后缀 默认可为空 “”
参数3:主文件的remote_filename, 比如 M00/00/00/CgEIzVRlv3SAYJCTAAAsFwWtoVg9432330 注意这个名词不包含 group名
参数4:文件前缀名,比如可以采用尺寸 200x200 或者其他自己可以识别的字符串
五、使用范例
请参考test目录下测试用例
六、联系
有问题的小伙伴,请关注微信公众号
微信群
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341