# docker-compose-fastdfs **Repository Path**: yeyuxi/docker-compose-fastdfs ## Basic Information - **Project Name**: docker-compose-fastdfs - **Description**: 这是一个文件管理服务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-16 - **Last Updated**: 2024-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README


Docker-compose 安装FastDfs(文件管理服务)

#### 运行文件安装FastDfs ```bash docker-compose up --build -d ``` #### 使用docker-compose运行项目 ```bash #安装docker-compose curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose #运行如下命令,有输入版本,表示docker-compose 可以用了 docker-compose --version #在当前目录执行如下命令即可以运行app # 具体查看文件路径liunx目录层级 运行项目外层的docker-compose 以及nginx/redis中的docker-compose.yaml docker-compose up --build -d ``` # liunx目录层级 ```docker-compose-script ├─docker-compose.yaml # 运行文件 └───fastdfs # fastdfs(文件管理服务) ├─storage_data # 文件 │ └─test.jpg # 可进容器中测试是否成功 ├─tracker_data # └─nginx.conf # nginx配置文件访问端口等信息 ``` # 部署完成, 启动后, 可进容器进行测试 ```shell ### FastDFS - 分布式文件系统 # docker-compose -f docker-compose-fastdfs.yml -p fastdfs up -d docker-compose up -d # 进入storage容器, 根据docker-compose.yaml启动镜像名称 docker exec -it fastdfs_storage bash # 进入`/var/fdfs`目录 cd /var/fdfs # 执行如下命令,会返回在storage存储文件的路径信息,然后拼接上ip地址即可测试访问 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.jpg # 执行成功后, 返回示例 group1/M00/00/00/rBEAAl8aYsuABe4wAAhfG6Hv0Jw357.jpg # 访问: http://ip:8888/group1/M00/00/00/rBEAAl8aYsuABe4wAAhfG6Hv0Jw357.jpg ``` # python脚本运行测试 ```python脚本运行测试 # 使用fdfs_client先下载 pip install py3Fdfs==2.2.0 from fdfs_client.client import get_tracker_conf, Fdfs_client tracker_conf = get_tracker_conf('./client.conf') client = Fdfs_client(tracker_conf) #文件上传 result = client.upload_by_filename('Snipaste_2024-04-09_16-35-22.png') print(result) # {'Group name': b'group1', 'Remote file_id': b'group1/M00/00/00/rBMGZWCeGhqAR_vRAAIAABZebgw.sqlite', 'Status': 'Upload successed.', 'Local file name': './db.sqlite3', 'Uploaded size': '128.00KB', 'Storage IP': b'101.133.225.166'} # 访问地址即可下载:http://101.133.225.166:8888/group1/M00/00/00/rBMGZWCeGhqAR_vRAAIAABZebgw.sqlite # 文件下载 文件下载需要将三方包中的文件替换, 否则将一直报错 下载超时 替换文件stirage_client.py # result = client.download_to_file('./a.png', b'group1/M00/00/00/rBsAA2ZEhpCAcumSAAASeKLgwRM920.png') # print(result) #文件删除 # result = client.delete_file(b'group1/M00/00/00/rBsAA2ZEhpCAcumSAAASeKLgwRM920.png') # print(result) # ('Delete file successed.', b'group1/M00/00/00/rBMGZWCeGhqAR_vRAAIAABZebgw.sqlite', b'101.133.225.166') #列出所有的group信息 # result = client.list_all_groups() # print(result) ```