Docker 和 FastDFS 上传和下载文件
2021-03-14 05:42
标签:上传 file 存储 code 是什么 std manage 运行 ESS 在命令行运行这句话, 开启 tracker 容器. 我们将 storage 运行目录映射到宿主机的 注意:如果无法重启 storage 容器,可以删除 我们在 meiduo_mall / utils 目录下新建 fastdfs 目录 将提供给大家资料中的 client.conf 配置文件复制到这个目录中: 在 meiduo_mall / utils / fastdfs / 移入 client.conf 修改 client.conf 配置文件 我们需要根据个人的电脑, 更改如下的两项: 效果如图所示: 例如: 我们进入项目的 shell 环境中: 进入之后,添加如下代码: 效果: 在 shell 环境中调用刚刚的代码, 然后得到result结果, 这个result结果是什么呢? 我们可以打印查看: 其中, 上面各个数据的参数在下面有解释. Remote file_id 对应的值, 即为 FastDFS 保存文件的路径 所以, 我们打开浏览器, 访问地址: Docker 和 FastDFS 上传和下载文件 标签:上传 file 存储 code 是什么 std manage 运行 ESS 原文地址:https://www.cnblogs.com/tracydzf/p/12812844.htmlDocker 安装运行 FastDFS
获取 FastDFS 镜像
# 从远端仓库拉取镜像
# 其中 delron 是仓库名.
# fastdfs 是镜像名
sudo docker image pull delron/fastdfs
# 或者:
# 解压教学资料中本地镜像
# 1. 从发的资料中获取 fastdfs_docker.tar 文件
# 2. 把该文件放到桌面的 haha 文件夹中
# 3. cd haha
# 4. 运行以下的命令:
sudo docker load -i fastdfs_docker.tar
开启 tracker 容器
/var/fdfs/tracker
目录中。udo docker run -dit --name=tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
开启 storage 容器
/var/fdfs/storage
目录中。
sudo docker run -dti --name=storage --network=host -e TRACKER_SERVER=tracker所在ip:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
查看宿主机映射路径
/var/fdfs/storage/data
目录下的fdfs_storaged.pid
文件,然后重新运行 storage。FastDFS 的 Python客户端
# 进入scripts目录:
cd scripts
# 运行安装:
pip install fdfs_client-py-master.zip # 安装本地文件
pip install mutagen # 联网下载安装
pip install requests # 联网下载安装
使用
使用 FastDFS 客户端,需要有配置文件
模板:
# base_path = FastDFS客户端存放日志文件的目录:
base_path=/Users/meihao/Desktop
# tracker_server = 运行tracker服务的机器ip:22122
tracker_server=172.16.238.128:22122
上传文件需要先创建 fdfs_client.client.Fdfs_client 的对象,并指明配置文件
python manage.py shell
# 先导入我们安装的 fdfs_client.client 客户端
from fdfs_client.client import Fdfs_client
# 使用添加的客户端创建一个对象
# 这里需要注意: 添加的路径应该为配置文件的绝对路径:
client = Fdfs_client(‘meiduo_mall/utils/fastdfs/client.conf‘)
# 使用刚刚创建的client调用方法, 上传图片(需要图片的绝对路径)
# 这里/Users/meihao/Desktop为老师电脑的路径,需要换成自己的.
ret = client.upload_by_filename(‘/Users/meihao/Desktop/demo.jpeg‘)
上传文件的方法有两种, 分别为:
# 这个是通过文件名上传文件
client.upload_by_filename(上传文件的绝对路径)
# 或是通过这个方法:
# 这个是通过文件内容上传文件:
client.upload_by_buffer(上传文件的bytes数据)
>>> from fdfs_client.client import Fdfs_client
>>> client = Fdfs_client(‘meiduo_mall/utils/fastdfs/client.conf‘)
>>> result = client.upload_by_filename(‘/Users/meihao/Desktop/demo.jpeg‘)
getting connection
ret = {
‘Group name‘: ‘Storage中组名‘,
‘Remote file_id‘: ‘文件保存的位置‘,
‘Status‘: ‘文件上传结果(成功还是失败)‘,
‘Local file name‘: ‘上传文件的路径‘,
‘Uploaded size‘: ‘上传文件的大小‘,
‘Storage IP‘: ‘Storage服务器的ip地址‘
}
查看上传结果
http
172.16.238.128
Nginx
服务器的 IP 地址。8888
Nginx
服务器的端口。group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
http://172.16.238.128:8888/group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg
上一篇:Netty解决粘包问题
文章标题:Docker 和 FastDFS 上传和下载文件
文章链接:http://soscw.com/index.php/essay/64449.html