weuwdnds 发表于 2015-11-20 14:45

使用fastdfs python客户端fdfs_client_py上传从文件失败

在使用fdfs的python客户端,代码如下(test.py):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
      print "mast result",result
      ret['storageIp']=result['Storage IP']
      ret['groupName']=result['Group name']
      ret['masterFileId']=result['Remote file_id']
      master_fileId=result['Remote file_id']

    if(slaveFilePath is not None): #upload slave file
      print "args for slave",slaveFilePath,master_fileId,"-html"
      try:
            slave_res=client.upload_slave_by_filename(slaveFilePath,master_fileId,"-html")
      except:
            print format_exc()
      if slave_res is not None: #success
            print "slave_res",slave_res
            ret['slaveFileId']=slave_res['Remote file_id']
    return ret #return the storage info


if __name__=='__main__':
    result=upload_file(filePath='test.py',slaveFilePath='client.conf')
    print resultpython test.py 运行结果如下:mast result {'Status': 'Upload successed.', 'Storage IP': '192.168.11.56', 'Remote file_id': 'group1/M00/00/00/wKgLOFZOwJWAD8OAAAAFpMMtEeU0320.py', 'Group name': 'group1', 'Local file name': 'test.py', 'Uploaded size': '1.00KB'}
args for slave client.conf group1/M00/00/00/wKgLOFZOwJWAD8OAAAAFpMMtEeU0320.py -html
Traceback (most recent call last):
File "test.py", line 35, in upload_file
    slave_res=client.upload_slave_by_filename(slaveFilePath,master_fileId,"-html")
File "/usr/lib64/python2.6/site-packages/fdfs_client/client.py", line 162, in upload_slave_by_filename
    meta_dict = None)
File "/usr/lib64/python2.6/site-packages/fdfs_client/storage_client.py", line 289, in storage_upload_slave_by_filename
    file_ext_name)
File "/usr/lib64/python2.6/site-packages/fdfs_client/storage_client.py", line 217, in _storage_do_upload_file
    raise DataError('[-] Error: %d, %s' % (th.status, os.strerror(th.status)))
DataError: [-] Error: 2, No such file or directory查看存储服务器,发现主文件上传成功了,而从文件却没上传成功,看这报错的的意思是从文件不存在还是什么?但是要上传的从文件本地是有的。
我之前也是用的同样的代码,运行了很久都没这个问题,后来服务器重装重新配置了就出现这样的问题了。
另外如果我直接指定一个主文件id,使用upload_slave_by_filename是可以上传从文件的。这也就是说当我把上传主文件和从文件一起操作时就报错了。
有人知道怎么解决么?谢谢。

weuwdnds 发表于 2015-11-20 19:57

我在自己的Ubuntu12上配置fdfs,然后运行这份代码,主文件和从文件都能上传成功,难道是环境的问题?那是缺少什么呢?

weuwdnds 发表于 2015-11-22 11:10

没人用过吗?
页: [1]
查看完整版本: 使用fastdfs python客户端fdfs_client_py上传从文件失败