当前位置: 首页 > news >正文

fastDFS

docker 部署fastDFS

docker pull delron/fastdfs

docker-compose.yml

version: '3'services:fastdfs_tracker:image: delron/fastdfs:latestcontainer_name: trackerhostname: trackernetwork_mode: hostports:- "22122:22122"volumes:- ./data/tracker:/var/fdfscommand: trackerrestart: unless-stoppedfastdfs_storage:image: delron/fastdfs:latestcontainer_name: storagehostname: storagenetwork_mode: hostports:- "8888:8888"- "23000:23000"environment:- TRACKER_SERVER=服务器ip:22122volumes:- ./data/storage:/var/fdfsdepends_on:- fastdfs_trackercommand: storagerestart: unless-stopped

注意修改docker-compose.yml中的服务器ip

python操作fastDFS

pip3 install fdfs-client-py3
fdfs_tracker.conf
connect_timeout=30
network_timeout=60
tracker_server = 127.0.0.1:22122
http.tracker_server_port = 8888
from fdfs_client.client import Fdfs_clientdef mkdir_p(path):Path(path).mkdir(parents=True, exist_ok=True)class FdfsClient:def __init__(self):tracker_conf_path = "./fdfs_tracker.conf"  # tracker配置文件的地址self.client = Fdfs_client(client=tracker_conf_path)def upload_by_filename(self, file_path):'''文件上传当有一个文件在本地磁盘上,并且知道文件的路径时,可以使用这个方法:param file: 文件路径:return:{'Group name': 'group1', 'Remote file_id': 'group1/M00/00/00/PAo80GdNlk0AAAABAwXgAHrGIgk207.iso','Status': 'Upload successed.', 'Local file name': '/home/wangxiuyan/06-vm/iso/xxxxxxxxx.iso','Uploaded size': '4.05GB', 'Storage IP': '60.10.60.208'}'''ret = self.client.upload_by_filename(file_path)print(ret)return retdef upload_by_buffer(self, file_buffer, file_name):'''文件上传当已经将文件读取到内存中(例如从网络下载的数据、从数据库获取的数据等),或者直接上传内存中的数据时,可以使用这个方法:param file_buffer: 文件二进制内容:param file_name: 文件名:return:'''ret = self.client.upload_by_buffer(file_buffer, file_name)print(ret)return retdef delete_file(self, file_id):'''删除文件:param file_id: 文件在fastDFS中的 Remote file_id:return:'''ret = self.client.delete_file(file_id)print(ret)return retdef download_to_file(self, save_path, file_id):'''下载文件:param save_path: 文件保存路径:param file_id: 文件在fastDFS中的 Remote file_id:return:'''res = self.client.download_to_file(save_path, file_id)print(res)return resdef list_all_groups(self):ret = self.client.list_all_groups()print(ret)return retdef get_meta_data(self, file_id):ret = self.client.get_meta_data(file_id)print(ret)return ret

http://www.lryc.cn/news/497862.html

相关文章:

  • 【Linux】存储
  • hadoop单机安装
  • 产品批量分类设置——未来之窗行业应用跨平台架构
  • 2024年中国各省份碳相关投资分析:区域差异与未来趋势
  • 【六足机器人】03步态算法
  • 路由VueRouter的基本使用
  • Guiding a Diffusion Model with a Bad Version of Itself
  • 快速上手!低功耗Air724UG模组软件指南:FTP示例
  • GAMES101 完结篇(笔记和作业)
  • 3D Slicer与MONAI人工智能三维影像处理
  • NC65客开单据自定义项处理以及自定义项相关介绍(超级详细带图以及代码NC65自定义项大全)
  • 责任链模式的理解和实践
  • 【大模型-向量库】详解向量库管理:连接管理、集合管理、向量管理
  • MySQL书籍推荐
  • 常见的数据结构:
  • 快速、高效的数据处理:深入了解 Polars 库
  • 【LINUX】Linux 下打包与部署 Java 程序的全流程指南
  • Spark 计算总销量
  • 矩阵置零
  • Ai编程cursor + sealos + devBox实现登录以及用户管理增删改查(十三)
  • 深度解读:生产环境中的日志优化与大数据处理实践20241116
  • docker 搭建gitlab,亲测可用
  • SpringBoot 分层解耦
  • opencv复习
  • flask-socketio相关总结
  • 2024-12-03OpenCV图片处理基础
  • 本地部署开源趣味艺术画板Paint Board结合内网穿透跨网络多设备在线绘画
  • iOS、android的app备案超简单的公钥、md5获取方法
  • SpringCloud 与 SpringBoot版本对应关系,以及maven,jdk
  • 23种设计模式之装饰模式