最近做了一个分布式的项目用到了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目录下测试用例

 

六、联系

有问题的小伙伴,请关注微信公众号

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐