Docker和FastDFS上传和下载文件
Docker安装运行FastDFS 获取FastDFS镜像 # 从仓库拉取镜像 $ sudo docker image pull delron/fastdfs # 解压资料中本地镜像 $ sudo docker load -i 文件路径/fastdfs_docker.tar 开启tracker容器 • 我们将 tracker 运行目录映射到宿主机的 /var/fdfs/tracker目录中。 sudo docker run -dit --name tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker 开启storage容器 • TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不要使用127.0.0.1) • 我们将 storage 运行目录映射到宿主机的 /var/fdfs/storage目录中。 sudo docker run -dti --name storage --network=host -e TRACKER_SERVER=192.168.102.168:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage 查看宿主机映射路径 注意:如果无法重启storage容器,可以删除/var/fdfs/storage/data目录下的fdfs_storaged.pid 文件,然后重新运行storage。 FastDFS客户端上传文件 • Python版本的FastDFS客户端使用参考文档 1.安装FastDFS客户端扩展 • 安装准备好的fdfs_client-py-master.zip到虚拟环境中 pip install fdfs_client-py-master.zip pip install mutagen pip install requests 2.准备FastDFS客户端扩展的配置文件 • lgshop.utils.fastdfs.client.conf base_path=FastDFS客户端存放日志文件的目录 tracker_server=运行Tracker服务的机器ip:22122 3.FastDFS客户端实现文件存储 # 使用 shell 进入 Python交互环境 python manage.py shell # 1. 导入FastDFS客户端扩展 from fdfs_client.client import Fdfs_client # 2. 创建FastDFS客户端实例 相对路径'lgshop/utils/fastdfs/client.conf'如报错 改为绝对路径 client = Fdfs_client('lgshop/utils/fastdfs/client.conf') # 3. 调用FastDFS客户端上传文件方法 ret = client.upload_by_filename('/kk.jpeg') ret = { 'Group name': 'group1', 'Remote file_id': 'group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg', 'Status': 'Upload successed.', 'Local file name': '/kk.jpeg', 'Uploaded size': '69.00KB', 'Storage IP': '192.168.103.158' } ret = { 'Group name': 'Storage组名', 'Remote file_id': '文件索引,可用于下载', 'Status': '文件上传结果反馈', 'Local file name': '上传文件全路径', 'Uploaded size': '文件大小', 'Storage IP': 'Storage地址' } 浏览器下载并渲染图片 思考:如何才能找到在Storage中存储的图片? • 协议: • http • IP地址:192.168.10.252 • Nginx服务器的IP地址。 • 因为 FastDFS 擅长存储静态文件,但是不擅长提供静态文件的下载服务,所以我们一般会将 Nginx 服务器绑定到 Storage ,提升下载性能。 • 端口:8888 • Nginx服务器的端口。 • 路径:group1/M00/00/00/CtM3BVnqsV2ACAvPAAPWWMjR7sE760.jpg • 文件在Storage上的文件索引。 • 完整图片下载地址 • https://192.168.10.252:8888/group1/M00/00/01/CtM3BVnqsV2ACAvPAAPWWMjR7sE760.jpg • Nginx安装 sudo apt install nginx 编写测试代码:lgshop.utils.fdfs_t.html <img src="https://192.168.10.252:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg" width="320" height="480"> Docker安装运行FastDFS 获取FastDFS镜