前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3.7.3操作FastDfs来进行文件操作

python3.7.3操作FastDfs来进行文件操作

作者头像
用户9127725
发布2022-08-08 09:44:00
6540
发布2022-08-08 09:44:00
举报
文章被收录于专栏:刘悦的技术博客

在之前的一篇文章中:利用Docker来搭建分布式文件系统FastDfs,我们已经搭建好了FastDfs分布式文件系统,并且已经可以通过命令进行上传操作,那么如何使用python来上传文件呢?

    很简单,还是利用docker的特性,我们知道docker 的 -v 参数,可以自动挂载宿主机的文件件到容器中去,这样宿主和容器就可以进行无障碍的文件共享,我们通过-v参数,把宿主机的root目录自动挂载到docker容器中的/var/root目录中去。

代码语言:javascript
复制
docker run -d --network=host --name tracker -v /root:/var/root delron/fastdfs tracker

docker run -d --network=host --name storage -e TRACKER_SERVER=172.18.0.1:22122 -v /root:/var/root -e GROUP_NAME=group1 delron/fastdfs storage

我们又起了两个服务,一个tracker(调度)另外一个是storage(仓库),只不过都共享了宿主的文件夹/root,挂载到了/var/root下

然后分别进入宿主的命令行以及进入容器storage的命令行,发现文件夹已经共享

此时,我们可以利用docker的exec命令不进入容器,直接在宿主机的环境下调用容器内的命令,因为文件夹已经共享,所以我们输入的文件目录虽然是容器中的/var/root目录,但是实际上该上传的文件就在宿主的/root目录中,这里,我们不上传图片,而是上传一个视频

代码语言:javascript
复制
docker exec -i storage /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /var/root/test.mp4

上传成功后,fastdfs将会返回视频的网络地址

浏览器访问一下,没有问题

至此,在宿主机中上传文件已经搞定,而python同样也可以在命令行中执行命令,我们可以从命令中得到URL的做法来实现django与fastdfs的交流,这里利用的是python中的os.popen方法,可以非常简单的在命令行中获取返回的fastdfs网络地址,从而避开了必须要安装fastdfs的python客户端,因为该客户端对python3并不十分友好。代码如下:

代码语言:javascript
复制
import os
import re

std = os.popen("docker exec -i storage /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /var/root/test.mp4").read()
print('*********** fastdfs excute start ***********')
print(std.strip())
print('*********** fastdfs excute end ***********')

这样,在django中上传文件时,就可以通过命令的方式上传到fastdfs中,获取返回地址后入库就可以了,本次操作将docker的特性运用到了极致,由此可见docker的泛用性之广,实实在在的提高了开发效率。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档