阿语python4-2 美多商城v5.0商品-准备商品数据之第6.2.3节Docker和FastDFS上传和下载文件...

本文介绍了如何在Docker环境下安装并运行FastDFS的tracker和storage容器,以及如何使用Python FastDFS客户端进行文件上传。详细步骤包括拉取镜像、启动容器、配置客户端并上传文件,最后探讨了通过Nginx代理访问存储在FastDFS中的图片。
摘要由CSDN通过智能技术生成

1. Docker安装运行FastDFS

1.获取FastDFS镜像

# 从仓库拉取镜像
$ sudo docker image pull delron/fastdfs
# 解压教学资料中本地镜像
$ sudo docker load -i 文件路径/fastdfs_docker.tar

2.开启tracker容器

  • 我们将 tracker 运行目录映射到宿主机的 /var/fdfs/tracker目录中。

$ sudo docker run -dit --name tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker

3.开启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.103.158:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage

4.查看宿主机映射路径

 

注意:如果无法重启storage容器,可以删除/var/fdfs/storage/data目录下的fdfs_storaged.pid 文件,然后重新运行storage。

2. FastDFS客户端上传文件

  • Python版本的FastDFS客户端使用参考文档

1.安装FastDFS客户端扩展

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

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

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

  • meiduo_mall.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客户端实例
client = Fdfs_client('meiduo_mall/utils/fastdfs/client.conf')
# 3. 调用FastDFS客户端上传文件方法
ret = client.upload_by_filename('/Users/zhangjie/Desktop/kk.jpeg')
ret = {
'Group name': 'group1',
'Remote file_id': 'group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg',
'Status': 'Upload successed.',
'Local file name': '/Users/zhangjie/Desktop/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地址'
 }

3. 浏览器下载并渲染图片

思考:如何才能找到在Storage中存储的图片?

  • 协议:

    • http

  • IP地址:192.168.103.158

    • Nginx服务器的IP地址。

    • 因为 FastDFS 擅长存储静态文件,但是不擅长提供静态文件的下载服务,所以我们一般会将 Nginx 服务器绑定到 Storage ,提升下载性能。

  • 端口:8888

    • Nginx服务器的端口。

  • 路径:group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg

    • 文件在Storage上的文件索引。

  • 完整图片下载地址

    • http://192.168.103.158:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg

编写测试代码:meiduo_mall.utils.fdfs_t.html

<img src="http://192.168.103.158:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg" width="
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zz77244920

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>