- 后端
- 前端
- 认证鉴权
- 代码生成
- 移动开发
【免费下载链接】FastapiAdmin
FastapiAdmin 是一套完全开源的快速开发平台,提供免费使用。它结合了现代、高性能的技术栈,后端采用Fastapi + SQLAlchemy,前端采用基于 vue3 + typescript + vite + pinia + Element-Plus。旨在帮助开发者快速搭建高质量的中后台系统。
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 | 典型场景 |
|---|---|---|---|---|
| SFTP | 22 | 文件系统 | paramiko | 自建 Linux 服务器 |
| FTP / FTPS | 21 / 990 | 文件系统 | ftplib | 传统文件服务器(支持显式/隐式 TLS) |
| S3 | 443 | 对象存储 | boto3 | AWS S3 及 MinIO 等 S3 兼容服务 |
| OSS | 443 | 对象存储 | alibabacloud-oss-v2 | 阿里云对象存储 |
| COS | 443 | 对象存储 | cos-python-sdk-v5 | 腾讯云对象存储 |
| OBS | 443 | 对象存储 | 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/):
- 在画布上放置存储源节点(可设置默认源目录)
- 用连线连接源与目标,在连线面板配置传输方式(流式/分片)
- 选择
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 步接入你的第一个对象存储
- 添加存储源:进入「任务管理 → 存储管理 → 存储源」,选择协议(如 S3),填写 AccessKey、SecretKey、bucket 与 endpoint,先点「测试连接」
- 浏览与上传:在「文件浏览」中选中该存储源,即可上传/下载/打包/分享文件
- 发起迁移:在「传输任务」或「传输流程」中配置源与目标,执行后通过 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。旨在帮助开发者快速搭建高质量的中后台系统。
相关推荐
Apache DolphinScheduler 资源中心存储配置指南:本地文件系统与 S3/OSS/OBS/COS 云存储接入
Apache DolphinScheduler 资源中心存储配置指南:本地文件系统与 S3/OSS/OBS/COS 云存储接入 Apache DolphinSc
任务调度数据编排工作流自动化后端大数据如何用 AI NovelGenerator 快速生成多章节长篇小说:新手上手指南
如何用 AI NovelGenerator 快速生成多章节长篇小说:新手上手指南 AI NovelGenerator 是一款 AI 小说生成工具:接入大语言模型
人工智能大模型AI 应用AI 写作RAG桌面应用FastGPT 对象存储 SDK(@fastgpt-sdk/storage):S3/MinIO/OSS/COS 统一接口实战指南
FastGPT 对象存储 SDK(@fastgpt sdk/storage):S3/MinIO/OSS/COS 统一接口实战指南 FastGPT 在 sdk/s
人工智能AI AgentRAG大模型工作流自动化后端前端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考