(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
问题解决