zoukankan      html  css  js  c++  java
  • python3.7.3操作FastDfs来进行文件操作

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

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

    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目录中,这里,我们不上传图片,而是上传一个视频

    docker exec -i storage /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /var/root/test.mp4

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

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

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

     

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

    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的泛用性之广,实实在在的提高了开发效率。

  • 相关阅读:
    numpy.argmax 用在求解混淆矩阵用
    1、VGG16 2、VGG19 3、ResNet50 4、Inception V3 5、Xception介绍——迁移学习
    Tensorflow深度学习之十二:基础图像处理之二
    tensorflow实现图像的翻转
    成都Uber优步司机奖励政策(1月13日)
    北京Uber优步司机奖励政策(1月13日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月13日)
    天津Uber优步司机奖励政策(1月11日~1月17日)
    苏州Uber优步司机奖励政策(1月11日~1月17日)
    南京Uber优步司机奖励政策(1月11日~1月17日)
  • 原文地址:https://www.cnblogs.com/weifeng-888/p/10943948.html
Copyright © 2011-2022 走看看