登录后免广告,享受更多奶昔会员权益!
您需要 登录 才可以下载或查看,没有账号?注册
×
📁 Fast File Upload:MonkeyCode云开发环境的轻量文件工作台
标签: [forecolor=#FF6B6B]文件传输[/forecolor] | [forecolor=#4ECDC4]MonkeyCode[/forecolor] | [forecolor=#45B7D1]FastAPI[/forecolor] | [forecolor=#96CEB4]开源工具[/forecolor]
【前言:云开发环境的文件流转痛点】
各位,用MonkeyCode云环境开发时,有没有遇到过这些坑:
[strike]前端上传文件大小受限,大文件传不上去[/strike]
[strike]不同任务环境之间,文件互传麻烦[/strike]
[strike]临时传个文件,不想走网盘但又没顺手工具[/strike]
最近写了个开源项目——[forecolor=red]Fast File Upload[/forecolor],专门解决这些问题。
不是对象存储,不是重型网盘,就是一个适合云开发环境的轻量文件工作台。

【一、项目定位】
`fast-file-upload` 是一个基于 `FastAPI + 原生前端` 的轻量文件上传工作台,重点三件事:
1. 上传体验 — 流式处理,支持大文件
2. 部署简洁 — MonkeyCode云机秒级启动
3. 最小治理 — 令牌、白名单、限流、自动清理

【二、核心特性】
2.1 流式上传
上传过程按流处理,避免一次性把文件读进内存。适合大文件场景,也更适合资源有限的云开发环境。
2.2 批量上传队列
前端支持批量上传,逐项进度反馈。一次传多个压缩包、测试文件比纯命令行顺手很多。
2.3 文件管理能力
| 功能 | 说明 | | 🔍 文件搜索 | 按文件名快速查找 | | 📎 扩展名筛选 | 只显示特定类型文件 | | 📊 排序 | 按大小/时间/名称排序 | | ⬇️ 下载 | 单文件直链下载 | | 🔗 复制链接 | 快速分享下载地址 | | 🗑️ 删除 | 手动清理或自动过期 |
2.4 最小治理能力
- ✅ 可选访问令牌 UPLOAD_TOKEN
- ✅ 扩展名白名单 ALLOWED_EXTENSIONS
- ✅ 单文件大小限制 MAX_UPLOAD_SIZE_MB
- ✅ 上传/删除接口内存限流
- ✅ 基础浏览器安全响应头
复制代码
对于临时对外开放的内部工具,这层能力很有价值。
2.5 自动清理
支持 `RETENTION_DAYS` 设置文件保留天数,到期自动清理。适合做“临时中转站“。
2.6 审计与校验
• `/api/audit` 审计日志导出
• `/api/admin/summary` 管理摘要接口
• 文件 SHA-256 校验值

【三、技术栈与目录结构】
- Python 3 + FastAPI + 原生前端
- fast-file-upload/
- ├── app/
- │ ├── config.py # 配置解析
- │ ├── main.py # FastAPI 应用工厂
- │ └── storage.py # 文件存储与校验逻辑
- ├── server.py # CLI 启动入口
- ├── tests/
- │ └── test_app.py # API 回归测试
- ├── web/
- │ └── index.html # 单页前端界面
- └── requirements.txt
复制代码
【四、MonkeyCode云环境部署】
https://github.com/2379278408/fast-file-upload 帮我部署该项目
4.2 推荐配置
```bash
UPLOAD_DIR=./uploads
PORT=8083
MAX_UPLOAD_SIZE_MB=512
ALLOWED_EXTENSIONS=.pdf,.zip,.png,.pt,.tar.gz
UPLOAD_TOKEN=your-token
RATE_LIMIT_COUNT=20
RATE_LIMIT_WINDOW_SECONDS=60
RETENTION_DAYS=7
面向公网或多人环境使用时,建议优先配置 UPLOAD_TOKEN。
【五、API使用示例】
5.1 上传文件
- curl -F “file=@/path/to/large-file.zip“
- http://your-domain/api/upload
复制代码5.2 启用令牌后的上传
- curl -H “X-Upload-Token: your-token“
- -F “file=@/path/to/large-file.zip“
- http://your-domain/api/upload
复制代码5.3 列出文件
- curl -H “X-Upload-Token: your-token“
- http://your-domain/api/files
复制代码5.4 下载文件
- wget “http://your-domain/download/文件ID?token=your-token“
复制代码5.5 查看健康状态
- curl http://your-domain/api/health
复制代码
【六、实际使用场景】
6.1 任务A → 任务B 文件中转
- 任务A:训练完成,得到 model.pt
- 任务A:启动 fast-file-upload
- 任务A:上传 model.pt,获取下载链接
- 任务B:通过下载链接获取 model.pt
- 任务B:继续做推理或验证
复制代码
价值不是“永久存储“,而是“快速中转 + 可控分享“。
6.2 云机打包导出到本地
- 打包项目
- tar czvf project-backup.tar.gz /workspace/my-project
- 上传到文件工作台
- curl -H “X-Upload-Token: your-token“
- -F “file=@project-backup.tar.gz“
- http://your-domain/api/upload
- 本地下载
- wget “http://your-domain/download/文件ID?token=your-token“ -O backup.tar.gz
复制代码6.3 临时素材收集站
- 启动服务
- 配置扩展名白名单和大小限制
- 把链接发给协作者
- 用 /api/files 查看结果
- 用 /api/admin/summary 查看大文件和旧文件
复制代码
【七、比“临时脚本“强在哪】
| 临时脚本 | Fast File Upload | | 无前端页面 | ✅ 拖拽上传 + 批量队列 | | 手动翻目录 | ✅ 文件列表 + 搜索筛选排序 | | 无访问控制 | ✅ 令牌验证 + 限流 | | 手动清理 | ✅ 自动过期清理 | | 无审计日志 | ✅ 审计 + 管理摘要 | | 无测试覆盖 | ✅ pytest回归测试 |
定位:“足够轻“,同时“又比Demo更完整“。
【八、当前边界与增强方向】
当前更适合:内部使用、临时分发、小规模共享、最小治理工作台。
自然增强方向:
• 反向代理层加 Basic Auth / IP白名单 / TLS
• 更强限流策略
• 对象存储后端
• 病毒扫描
• 更细粒度权限体系
【九、开源地址与注册】
[forecolor=green]>> 项目源码:[/forecolor]
👉 点击此处查看源码
[forecolor=green]>> MonkeyCode云开发环境[/forecolor]
👉 点击此处跳转注册
[forecolor=gray]最后更新时间:[now]
作者: 干嘛皱眉呢
项目:Fast File Upload
技术栈:Python 3 + FastAPI + 原生前端
用途:MonkeyCode云开发环境轻量文件工作台[/forecolor]
【互动区】
• 用MonkeyCode时遇到过文件传输问题吗?
• 还需要什么工具来补全云开发体验?
• 有改进建议欢迎提Issue或PR
求Star!求Fork!你的支持是我更新的动力! 🚀
|