FastDFS客户端上传文件踩坑记录

(1) 安装FastDFS客户端扩展

安装准备好的fdfs_client-py-master.zip到虚拟环境中

pip install fdfs_client-py-master.zip
pip install mutagen
pip install requests

注: pip安装东西时常常会出现ERROR: Could not find a version that satisfies the requirement xxx的问题
解决: pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

(2) 准备FastDFS客户端扩展的配置文件

修改日志文件的保存目录和 traker服务器的域名和端口

meiduo_mall/utils/fastdfs/client.conf

在这里插入图片描述

(3) FastDFS客户端实现文件存储

# 使用 shell 进入 Python交互环境
python manage.py shell
# 1. 导入FastDFS客户端扩展
from fdfs_client.client import Fdfs_client
# 2. 创建FastDFS客户端实例
client = Fdfs_client('meiduo_mall/utils/fastdfs/client.conf')
# 3. 调用FastDFS客户端上传文件方法
ret = client.upload_by_filename('/home/ws/Desktop/back6.jpg')

注: 第三步可能报错:

fdfs_client.exceptions.DataError: [-] Error: 28, No space left on device

原因是没有足够的空间存储数据
在这里插入图片描述

这时要进入容器修改配置文件, 修改FastDFS允许存储的空间百分比

sudo docker exec -it tracker /bin/bash
vi /etc/fdfs/tracker.conf


把预留存储空间由10%改为2%, 保存退出
在这里插入图片描述
然后exit退出容器,
重启tracker:

docker container restart tracker

然后可能又会报这个错: fdfs_client.exceptions.ConnectionError: Socket closed on remote end
在这里插入图片描述
重启storage

docker container restart storage

问题解决
在这里插入图片描述


版权声明:本文为qq_38992249原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。