[ FastDFS分布式文件储存 ]


docker compose 部署

docker-compose.yml - TRACKER_SERVER=xxxx:22122需要填写自己的tracker主机地址

version: "3.0"
services:
  tracker:
    hostname: tracker
    image: delron/fastdfs
    volumes:
      - ./fdfs/tracker:/var/fdfs
      - /etc/localtime:/etc/localtime
    network_mode: "host"
    command: tracker
  storage:
    hostname: storage
    image: delron/fastdfs
    volumes:
      - ./fdfs/storage:/var/fdfs
      - /etc/localtime:/etc/localtime
    environment:
      - TRACKER_SERVER=192.168.50.213:22122
    network_mode: "host"
    command: storage
    depends_on:
      - tracker

保留端口 - 23000是与storage通信端口 - 22122是与tracker通信端口 - 8888是storage的文件访问端口

version: "3.0"
services:
  tracker:
    hostname: tracker
    image: delron/fastdfs
    volumes:
      - /etc/localtime:/etc/localtime
    ports:
      - "22122:22122"
      - "8080:8080"
    command: tracker
  storage:
    hostname: storage
    image: delron/fastdfs
    ports:
      - "23000:23000"
      - "8888:8888"
    volumes:
      - /etc/localtime:/etc/localtime
    environment:
      - TRACKER_SERVER=42.193.152.252:22122
    command: storage
    depends_on:
      - tracker

python模块安装

pip install py3Fdfs

conf.conf

connect_timeout = 30
network_timeout = 60
tracker_server = 192.168.50.213:22122
http.tracker_server_port = 8888

client.py

from fdfs_client.client import Fdfs_client, get_tracker_conf

conf_path = get_tracker_conf("/home/ouzijun/docker-compose-work/docker-compose-fasfdfs/test/conf.conf")
client = Fdfs_client(conf_path)

res = client.upload_by_filename("./123.jpg")
print(res)

# file_id = res["Remote file_id"]
# res = client.delete_file(file_id)
# print(res)

# group1/M00/00/00/wKgy1WRa_ZeAeKtnAAeN27bAbOQ118.jpg