fastdfs python客户端fdfs_client_py使用问题

原创 2015年12月14日 15:49:42

刚刚在使用fdfs分布式存储的python客户端上传从文件时,出现下面这个问题

使用环境为:python版本:python 2.6.6

                        fdfs 版本:5.05

                       服务器操作系统:centos

                       fdfs_client_py版本:1.2.6

                       fdfs_client_py版本的github地址为:https://github.com/hay86/fdfs_client-py

上传文件时出现如下问题:

             raise DataError('[-] Error:%d,s'%(th.status,os.strerror(th.status)))

              DataEoor:[-] Error:2,No such file or directory


根据提示,可以知道是从文件上传失败,说没有这个文件或目录,但是明明我的本地有这个从文件。

我将 python版本换成2.7.3也没用

将fdfs_client_py换成最新版也还是没用

但是我直接使用它的源码下的测试程序却上传主文件和从文件都没问题,如下所示:


难道是我的上传代码写的有问题,我是这样写的:

    def upload_file(self,filePath=None,slaveFilePath=None): 
        #upload the apk and the apk details html file into fastdfs storage
        #apk file as master file while html file as slave file
        if filePath is None:
            return None
        ret={}
        client=Fdfs_client(self.m_clientConf)
        result=client.upload_by_filename(filePath) #upload master file
        master_fileId=''
        if result is not None: #success
            self.m_logger.info(" save %s into fdfs success"%filePath) 
            print " save %s into fdfs success"%filePath
            print result
            ret['storageIp']=result['Storage IP']
            ret['groupName']=result['Group name']
            ret['masterFileId']=result['Remote file_id']
            master_fileId=result['Remote file_id']
        print slaveFilePath,master_fileId
        if(slaveFilePath is not None): #upload slave file
            slave_res=client.upload_slave_by_filename(slaveFilePath,master_fileId,'-html')
            if slave_res is not None: #success
                self.m_logger.info(" save slave %s into fdfs success"%slaveFilePath) 
                ret['slaveFileId']=slave_res['Remote file_id']
        return ret #return the storage info

但是当我改为如下,即直接指定主文件id ,又可以上传从文件了,当然这个主文件id必须存在

def upload_file(filePath=None,slaveFilePath=None): 
    #upload the apk and the apk details html file into fastdfs storage
    #apk file as master file while html file as slave file
    if filePath is None:
        return None
    
    ret={}
    client=Fdfs_client('client.conf')
    '''
    result=client.upload_by_filename(filePath) #upload master file
    master_fileId=''
    if result is not None: #success
        ret['storageIp']=result['Storage IP']
        ret['groupName']=result['Group name']
        ret['masterFileId']=result['Remote file_id']
        master_fileId=result['Remote file_id']
    print 'ret',ret
    '''
    if(slaveFilePath is not None): #upload slave file
        file_prefix='-html'
        slave_res=client.upload_slave_by_filename(slaveFilePath,"group1/M00/00/00/wKgLNFZMJQqAMZd1AAAFDeT7vec1033.py",file_prefix)
        if slave_res is not None: #success
            ret['slaveFileId']=slave_res['Remote file_id']
    return ret #return the storage info

这是什么情况,难道我上传主文件时返回的主文件id是错的吗?

于是我把服务器上的python重装成2.7,3的,结果再导入这个fdfs_client的包时提示:

ImportError: No module named sendfile

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

上面的问题还没有解决,等解决了再更新


FastDFS客户端(Python版)指南

最近做了一个分布式的项目用到了FastDFS,关于FastDFS这里就不阐述了,有兴趣了解的小伙伴,请到官网:http://bbs.chinaunix.net/forum-240-1.html。这里着...
  • lenyusun
  • lenyusun
  • 2015年03月04日 11:24
  • 5325

fastdfs python版本API不兼容windows解决

在windows下安装 fastdfs python版本的模块安不上会报错,执行python setup.py intall 报错:解决方法: 打开 setup.py文件 注释掉: 打开 ...
  • C_T_R_L
  • C_T_R_L
  • 2015年07月01日 21:47
  • 970

fdfs_client-windows-py1.2.8

  • 2015年07月01日 21:42
  • 37KB
  • 下载

FastDFS安装常见错误解决方法

FastDFS编译常见问题 ./fdfs_trackerd: error while loading shared libraries: libevent-2.0.so.5: cannot open ...
  • kjsayn
  • kjsayn
  • 2016年06月03日 14:49
  • 2210

FastDFS的配置、部署与API使用解读(4)FastDFS配置详解之Client配置

一种方式是通过调用ClientGlobal类的初始化方法对配置文件进行加载,另一种是通过调用API逐一设置配置参数。后一种方式对于使用Zookeeper等加载属性的方式很方便。 1. 加载配...
  • Poechant
  • Poechant
  • 2011年11月18日 10:51
  • 17511

【FastDFS分布式文件系统之二】:FastDFS小文件上传性能测试及Python客户端上传操作

由于要对比swift上传小文件以及fdfs上传小文件的性能,故做性能测试。
  • lavorange
  • lavorange
  • 2016年03月08日 19:29
  • 5618

从FastDFS官网下载我们需要的安装包

第一步:大家在浏览器地址栏输入:https://sourceforge.net/projects/fastdfs/files,我们会看到如下图所示界面。 第二步:下载FastDFS的Serv...
  • u012453843
  • u012453843
  • 2017年04月02日 12:24
  • 1505

使用python上传和下载文件到FastDFS

1. 下载fdfs_client-py-1.2.6.tar.gz 2. 解压后进入目录执行"python setup.py install": 3. 新建测试文件test_fdfs.py:...
  • Linjingke32
  • Linjingke32
  • 2017年04月26日 09:37
  • 1170

FastDFS Window客户端及源码

FastDFS Windows客户端及源码:https://github.com/excelgco/FastDFS_Client_Win
  • fujianfafu
  • fujianfafu
  • 2016年01月19日 14:09
  • 1297

nginx upload模块+python 后端处理模仿fastdfs实现文件存取

前提条件: 1.编译安装带有nginx upload 模块的nginx,安装脚本如下。 2.配置nginx的conf文件,一个server配置upload上传,一个server配置download...
  • blog_liuliang
  • blog_liuliang
  • 2017年12月19日 19:57
  • 75
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fastdfs python客户端fdfs_client_py使用问题
举报原因:
原因补充:

(最多只允许输入30个字)