Repolode
transloadit

transloadit/uppy

模块化的浏览器端 JavaScript 文件上传组件,支持断点续传、云端文件选取和现成的上传界面。

可替代:FilestackDropzone

Star
31,060
Fork
2,114
未关闭 Issue
230
最近提交
前天

这是什么?

Uppy 是一个模块化的 JavaScript 文件上传组件,可嵌入 Web 应用,负责文件选择、预览、元数据编辑和上传。其核心是插件体系:可以把 Dashboard 等界面、本地磁盘、摄像头、Google Drive、Dropbox、Box、OneDrive、远程 URL 等来源,与 Tus、AWS S3 或普通 XHR 接口等目标组合使用。

基于开放的 tus 协议,大文件上传在网络中断或浏览器崩溃后可以继续进行。需要服务端凭据的云端文件选取功能依赖 companion 组件,可以自行部署。Uppy 也可对接 Transloadit 的文件处理服务,但不依赖它即可独立使用。

支持原生 JavaScript,并提供 React、Vue、Svelte 和 Angular 集成,包括开箱即用的组件、无样式组件和 Hooks,便于定制界面。

核心功能

  • 01基于 tus 协议的断点续传,网络中断后可继续上传
  • 02可从 Google Drive、Dropbox、Box、OneDrive 和远程 URL 选取文件
  • 03支持摄像头拍照和录像作为上传来源
  • 04提供带预览、进度条和元数据编辑的 Dashboard 界面
  • 05模块化插件架构,支持 React、Vue、Svelte 和 Angular
  • 06通过 Golden Retriever 在浏览器崩溃后恢复文件

适用场景

  • 为 Web 应用添加支持大文件的稳定上传表单
  • 让用户直接从网盘导入文件,无需先下载到本地
  • 从浏览器直接上传到 AWS S3 或自建 tus 服务
  • 基于无样式组件或 Hooks 构建自定义上传界面

快速上手

  1. 1

    使用 npm 安装核心、Dashboard 和 Tus 包

    npm install @uppy/core @uppy/dashboard @uppy/tus
  2. 2

    将 uppy.min.css 样式表添加到页面的 head 中

  3. 3

    在 JavaScript 中用 Dashboard 和 Tus 插件初始化 Uppy

使用前须知

  • Google Drive、Dropbox、Box 等来源插件需要单独部署的 Companion 服务器。

标签

常见问题

uppy 是什么?
模块化的浏览器端 JavaScript 文件上传组件,支持断点续传、云端文件选取和现成的上传界面。 Uppy 是一个模块化的 JavaScript 文件上传组件,可嵌入 Web 应用,负责文件选择、预览、元数据编辑和上传。其核心是插件体系:可以把 Dashboard 等界面、本地磁盘、摄像头、Google Drive、Dropbox、Box、OneDrive、远程 URL 等来源,与 Tus、AWS S3 或普通 XHR 接口等目标组合使用。
uppy 可以免费使用吗?用的什么许可证?
uppy 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
uppy 还在维护吗?
活跃维护中。uppy 最近一次提交是在 2026年11月5日。
uppy 适合用来做什么?
为 Web 应用添加支持大文件的稳定上传表单 让用户直接从网盘导入文件,无需先下载到本地 从浏览器直接上传到 AWS S3 或自建 tus 服务 基于无样式组件或 Hooks 构建自定义上传界面
uppy 怎么安装和运行?
使用 npm 安装核心、Dashboard 和 Tus 包: npm install @uppy/core @uppy/dashboard @uppy/tus 将 uppy.min.css 样式表添加到页面的 head 中 在 JavaScript 中用 Dashboard 和 Tus 插件初始化 Uppy
在哪里获取 uppy?
源代码和安装说明在 GitHub 上:https://github.com/transloadit/uppy

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目

tus 协议的 Go 参考服务端,支持可断点续传的 HTTP 文件上传,可存储到本地磁盘、Google Cloud Storage 或 S3。

3916+3 本周559GoMIT维护活跃更新于 前天