☰
FastapiAdmin 存储模块全解析:SFTP/S3/OSS/COS/OBS五大协议统一文件接入完整指南
2026/10/14 15:39:34 网站建设 项目流程
  • 后端
  • 前端
  • 认证鉴权
  • 代码生成
  • 移动开发

【免费下载链接】FastapiAdmin

FastapiAdmin 是一套完全开源的快速开发平台,提供免费使用。它结合了现代、高性能的技术栈,后端采用Fastapi + SQLAlchemy,前端采用基于 vue3 + typescript + vite + pinia + Element-Plus。旨在帮助开发者快速搭建高质量的中后台系统。

项目地址:https://gitcode.com/gh_mirrors/fa/FastapiAdmin
点击查看免费下载

FastapiAdmin 是一款完全开源、免费使用的快速开发平台,后端基于 Fastapi + SQLAlchemy,前端基于 Vue3 + TypeScript + Vite + Pinia + Element-Plus。它的存储模块统一接入了SFTP、S3、OSS、COS、OBS五大主流存储协议,让你在一个中后台界面里完成多云对象存储的文件上传、下载、迁移与流程编排。本文将带你快速上手这套存储能力,从添加存储源到可视化传输流程,一篇看懂。

📦 模块总览:一个插件,四大子模块

存储模块是一个独立插件,位于 backend/app/modules/task/storage/,插件元信息见 plugin.toml。它由四个子模块 + 一个适配核心组成:

子模块目录职责
存储源管理node/存储源的增删改查、连接测试、高级配置
文件浏览browse/上传、下载、复制、移动、重命名、分享链接
传输任务transfer/多目标/链式文件迁移,SSE 实时进度推送
流程编排workflow/画布式设计"源 → 目标"传输链路
适配核心core/各协议 SDK 适配器与统一抽象基类

前端页面对应 frontend/web/src/views/module_task/storage/,API 封装在 frontend/web/src/api/module_storage/,登录系统后进入「任务管理 → 存储管理」即可使用。

🌐 支持的协议一览:8 种协议,两类存储

所有协议在 core/base.py 中统一定义为StorageProtocol枚举:

协议默认端口类别底层 SDK典型场景
SFTP22文件系统paramiko自建 Linux 服务器
FTP / FTPS21 / 990文件系统ftplib传统文件服务器(支持显式/隐式 TLS)
S3443对象存储boto3AWS S3 及 MinIO 等 S3 兼容服务
OSS443对象存储alibabacloud-oss-v2阿里云对象存储
COS443对象存储cos-python-sdk-v5腾讯云对象存储
OBS443对象存储esdk-obs-python华为云对象存储
Local-本地原生 os服务器本地目录

💡 协议到适配器的映射关系定义在 core/factory.py 中,StorageAdapterFactory按协议创建对应适配器实例,新增协议只需实现基类方法并注册即可。

🔌 第一步:添加存储源并一键测试连接

使用任何存储能力前,先要在「存储源管理」中添加存储源。后端模型见 node/model.py,不同协议只需填写对应字段:

  • SFTP / FTP / FTPS:主机地址、端口、用户名、密码(FTPS 另可选显式/隐式 TLS、主动/被动模式、编码)
  • S3 / OSS / COS / OBS:AccessKey(用户名)、SecretKey(密码)、桶名 bucket、接入点 endpoint、区域 region、访问协议(http/https)

关键 API(定义在 node/controller.py):

  • POST /task/storage/node/create:创建存储源
  • POST /task/storage/node/test:保存前先测试连接,避免配置错误
  • GET /task/storage/node/protocols:查询当前系统支持的协议及默认端口
  • GET /task/storage/node/advanced-fields:返回各协议高级配置字段,前端据此动态渲染表单

🔐安全细节:密码/SecretKey 落库前会经CryptoUtil做 Fernet 对称加密(见 base.py),与 JWT 签名密钥分离,数据库中不会出现明文密钥。

🗂️ 文件浏览:像浏览器一样管理云端文件

「文件浏览」子模块提供了完整的文件操作能力,接口清单在 browse/controller.py:

操作接口说明
上传POST /browse/upload支持指定远端目录
下载POST /browse/download流式返回文件
打包下载POST /browse/download_dir目录递归打包为 ZIP
列表GET /browse/list对象存储走 SDK 原生游标分页,性能友好
桶列表GET /browse/buckets对象存储多桶切换浏览
复制/移动POST /browse/copy支持跨存储源复制与移动
重命名PUT /browse/rename文件或目录
新建目录POST /browse/mkdir-
分享链接POST /browse/share对象存储生成预签名 URL,有效期 1 分钟 ~ 7 天

对象存储的分片上传参数(分片大小、并发路数、内存预算)可在存储源上独立配置,见 StorageAdapterConfig,默认 50MB 分片、6 路并发,兼顾速度与内存占用。

⚡ 传输任务:多目标与链式迁移,进度实时可见

「传输任务」是整个模块的杀手级能力,执行引擎见 transfer/engine.py,支持两种模式:

  • parallel(多目标):一份源文件同时分发到多个存储源,比如把备份同时推到 OSS 和 COS 做异地冗余
  • chain(链式):步骤串联,上一步的目标就是下一步的源,例如「SFTP → 本地 → OSS」,链条长度不限

任务模型把每个任务展开为多个步骤记录(见 transfer/model.py),每步独立跟踪进度、速度、错误信息。

亮点设计:

  • 📡SSE 实时推送:GET /task/storage/transfer/stream以 Server-Sent Events 广播任务进度,页面打开即见进度条与实时速度
  • ❌优雅取消:后台任务运行在独立会话中,取消操作在当前步骤执行完毕后生效,不会中断正在写入的数据
  • 🧹自动清理:本地源任务的临时文件在响应发送后自动删除

🎨 可视化流程编排:在画布上"画"出传输链路

「传输流程」子模块基于 VueFlow 提供拖拽式画布设计器(页面在 workflow/index.vue,节点与连线组件在 components/):

  1. 在画布上放置存储源节点(可设置默认源目录)
  2. 用连线连接源与目标,在连线面板配置传输方式(流式/分片)
  3. 选择parallel或chain类型,点击「执行流程」,后端一键生成对应传输任务

数据模型将画布布局与业务配置分离存储(见 workflow/model.py),回显时由服务层组装,避免双份数据不一致。前端对每种协议还内置了主题色与中文标签(见 protocol.ts),画布上一眼区分各存储源。

🔐 高级配置指南:按协议精调 SDK 参数

每种协议都提供了结构化的高级配置模型(定义在 base.py),通过「高级设置」面板动态渲染,常用项包括:

  • S3:超时与重试策略、连接池、代理、双栈端点、传输加速端点
  • OSS:内网访问、CNAME 自定义域名、CRC64 校验开关
  • COS / OBS:临时密钥 Token、自定义域名接入
  • SFTP:SSH 认证超时、心跳保活、ssh-agent/密钥文件认证、传输压缩

⚠️ 提示:校验类字段(如 OSS 的 CRC64 开关、COS 的 MD5 校验)默认保持即可,仅在性能敏感或特殊环境下调整。

🚀 快速上手:3 步接入你的第一个对象存储

  1. 添加存储源:进入「任务管理 → 存储管理 → 存储源」,选择协议(如 S3),填写 AccessKey、SecretKey、bucket 与 endpoint,先点「测试连接」
  2. 浏览与上传:在「文件浏览」中选中该存储源,即可上传/下载/打包/分享文件
  3. 发起迁移:在「传输任务」或「传输流程」中配置源与目标,执行后通过 SSE 实时查看进度

更多细节可查阅仓库内文档 frontend/docs/src/guide/overview.md 与官方文档站(界面如下):

总结

FastapiAdmin 的存储模块用一套统一的适配器架构,把 SFTP、S3、OSS、COS、OBS 五大协议(外加 FTP/FTPS/本地)纳入同一个中后台界面:

  • ✅一处配置,多源管理:存储源集中管理,密码 Fernet 加密落库
  • ✅完整文件操作:上传、下载、ZIP 打包、跨源复制移动、预签名分享链接
  • ✅企业级传输:多目标/链式迁移 + SSE 实时进度 + 优雅取消
  • ✅可视化编排:画布式设计传输链路,连线级配置传输参数
  • ✅可深度调优:按协议提供超时、重试、代理、加速等高级配置

如果你的中后台系统正在被"各家对象存储各写一套代码"困扰,这套开箱即用的存储方案值得一试。

  • 后端
  • 前端
  • 认证鉴权
  • 代码生成
  • 移动开发

【免费下载链接】FastapiAdmin

FastapiAdmin 是一套完全开源的快速开发平台,提供免费使用。它结合了现代、高性能的技术栈,后端采用Fastapi + SQLAlchemy,前端采用基于 vue3 + typescript + vite + pinia + Element-Plus。旨在帮助开发者快速搭建高质量的中后台系统。

项目地址:https://gitcode.com/gh_mirrors/fa/FastapiAdmin
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询