Uppy
Uppy 是一个模块化、可扩展的 JavaScript 文件上传器,提供前端上传体验和插件系统
#type / concept
#status / evergreen
#tech / dev / frontend
#resource / javascript
#platform / browser
[!info] related notes
Uppy
一句话定义
Uppy 是一个开源的 JavaScript 文件上传器,主打模块化、可扩展、前端集成方便,提供完整的上传 UI 和插件系统。
核心内容
是什么
Uppy 是一个”前端上传这一整层的现成轮子”,它处理:
- 选文件
- 拖拽上传
- 显示上传列表和进度
- 限制文件类型/大小
- 失败重试
- 接不同上传方式(Tus、XHR、S3 Multipart 等)
核心特性
- 模块化架构:通过插件系统扩展功能
- 现成 UI 组件:Dashboard、Drag & Drop、进度条、文件列表
- 多框架支持:React、Vue、Svelte 等
- 多种上传后端:可接 Tus、XHR、S3 Multipart 等
常见插件
@uppy/dashboard:完整的上传管理界面@uppy/drag-drop:拖拽上传区域@uppy/progress-bar:上传进度条@uppy/tus:基于 tus 协议的断点续传@uppy/xhr:普通 XHR 上传@uppy/aws-s3:AWS S3 直传
适用场景
- 需要快速搭建前端上传页面
- 需要现成的 UI 组件和交互体验
- 需要灵活切换底层上传协议
- React/Vue/Web 项目中的文件上传功能
边界与易混淆点
- Uppy ≠ 上传协议:它是上传框架/SDK,底层可使用不同协议
- Uppy 可以不用 tus:可直接用 XHR 或 S3 Multipart 上传
- Uppy 不是后端:它只负责前端部分,后端需要另外实现