使用FastDFS--storage文件上传出现如下bug:
>>> ret = client.upload_by_filename('/home/python/Desktop/1.jpg') Traceback (most recent call last): File "<console>", line 1, in <module> File "/home/python/.virtualenvs/meiduo/lib/python3.5/site-packages/fdfs_client/client.py", line 90, in upload_by_filename store_serv = tc.tracker_query_storage_stor_without_group() File "/home/python/.virtualenvs/meiduo/lib/python3.5/site-packages/fdfs_client/tracker_client.py", line 381, in tracker_query_storage_stor_without_group raise DataError('[-] Error: %d, %s' % (th.status, os.strerror(th.status))) fdfs_client.exceptions.DataError: [-] Error: 2, No such file or directory
问题原因:
1. storage启动时设置的IP或端口和python中连接配置文件(如:client.conf)中的IP地址不一致
解决方案:
1. 查看本机IP
ifconfig(linux)或者ipconfig(win)
2. 停止storage容器
sudo docker container stop storage
3. 删除当前容器
sudo docker container rm storage
4. 将 storage 运行目录映射到宿主机的 /var/fdfs/storage
目录中
sudo docker run -dti --name storage --network=host -e TRACKER_SERVER=192.168.103.158:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
# 上面IP地址记得更换自己刚查看的IP地址,TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不能使用127.0.0.1)配置文件也要更改成这个IP地址:如下图
5. 重新运行storage容器
sudo docker container start storage
6. 查看容器状态
sudo docker container ls
如果开启,如下图,证明storage开启成功:
7. 重新上传你的图片,如下图代表成功了。