FastDFS客户端(Python版)指

发布时间:2019-09-07 07:55:36编辑:auto阅读(1457)

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


    六、联系

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


    微信群



关键字