Docker+fastDFS安装配置并在Python中应用

一、下载安装Docker:

  1. 下载和安装Docker

  2. 如果使用CentOS系统,可能会在安装Docker时遇到以下错误:

    File "/usr/bin/yum-config-manager", line 133 except yum.Errors.RepoError, e:
    

    这是由于yum的包管理使用python2,因此系统默认的环境变量python就是python2。

    如果你将python默认改为python3,yum-config-manager就会报错。

    # 打开配置文件, 将第一行的python改为python2
    vim /usr/bin/yum-config-manager
    


二、安装fastDFS:

  1. 拉取镜像:

    sudo docker pull delron/fastdfs
    
  2. 构建tracker容器:

    docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs -v /etc/localtime:/etc/localtime delron/fastdfs tracker
    
  3. 构建storage容器:

    docker run -dti  --network=host --name storage -e TRACKER_SERVER=192.168.56.1:22122 -v /var/fdfs/storage:/var/fdfs  -v /etc/localtime:/etc/localtime  delron/fastdfs storage
    

    # 这里的TRACKER_SERVER可以设置为内网IP或公网IP,不要设置为本机地址127.0.0.1。如果fastDFS配置在远程服务器上,需要设置为公网IP。

    # 如果之后重启storage失败,需要进入/var/fdfs/storage/data,删除pid:


三、配置防火墙、开放端口:

可以直接在腾讯云控制台中点击防火墙,添加自定义规则,开放TCP协议22122端口和23000端口。


四、在应用中配置client.conf:

connect_timeout=30
network_timeout=60
tracker_server=xxx:22122  # 这里设置为你tracker_server的ip,如果使用远程服务器,使用公网ip
log_level=info
use_connection_pool = false
connection_pool_max_idle_time = 3600
load_fdfs_parameters_from_tracker=false
use_storage_id = false
storage_ids_filename = storage_ids.conf
http.tracker_server_port=80

五、测试上传图片:

1、在python中配置fastDFS:

pip install py3Fdfs
pip install mutagen
pip isntall requests

2、编写测试代码:

from fdfs_client.client import Fdfs_client,get_tracker_conf

tracker_path = get_tracker_conf(r'xxx\utils\fastdfs\client.conf')
# 创建客户端实例
client = Fdfs_client(tracker_path)
# 上传文件
ret = client.upload_by_filename(r"C:\Users\xxx\1.png")

成功后返回结果:

上传的结果可以在配置了fastDFS的服务器的8888端口访问到(需要在防火墙中开放8888端口)。

posted @ 2021-02-01 17:46  macguz  阅读(160)  评论(0编辑  收藏  举报