Uppy:支持断点续传 模块化的文件上传库

科技   2024-11-18 19:59   湖北  


文章底部获取项目地址



Uppy 是一个开源的文件上传库,提供模块化的功能管理方式,支持从本地、远程 URL、云存储服务等多种途径获取文件并上传。Uppy 4 已经完全用 TypeScript 重写,提供了更好的类型安全性,无论是设置选项、构建插件以及监听事件。
  • Uppy Dashboard:
  • 一个全功能的上传控制面板,包括添加文件、编辑图像、生成缩略图等功能。它是一个强大、响应式且可插件化的界面。
安装使用:
npm install @uppy/core @uppy/dashboard
import Uppy from 
'@uppy/core';
import Dashboard from 
'@uppy/dashboard';
import 
'@uppy/core/dist/style.min.css';
import 
'@uppy/dashboard/dist/style.min.css';
new Uppy().use(Dashboard, { inlinetruetarget'#uppy-dashboard' });
Dashboard API 配置项:
    id:插件的唯一标识符。
    target:指定 Dashboard 渲染的位置。
    inline:决定 Dashboard 是作为模态窗口还是内联显示。
    trigger:触发打开 Dashboard 模态窗口的按钮的 CSS 选择器。
    width 和 height:当 inline 为 true 时,设置 Dashboard 的宽度和高度。
    waitForThumbnailsBeforeUpload:在开始上传前等待所有缩略图生成完毕。
    showLinkToFileUploadResult:将文件图标和缩略图转换为上传文件的链接。
    showProgressDetails:在状态栏中显示或隐藏进度详情。
    hideUploadButton、hideRetryButton、hidePauseResumeButton、hideCancelButton:控制是否显示相应的按钮。
    doneButtonHandler:定义上传/编码完成后“完成”按钮的行为。
    showSelectedFiles:显示已添加文件的列表和预览。
    showRemoveButtonAfterComplete:在成功上传后显示每个文件的移除按钮。
    singleFileFullScreen:当仅选择一个文件时,将其预览和元信息居中并放大。
    note:在 Dashboard UI 中放置的文本字符串。
    metaFields:为用户创建文本或自定义输入字段。
    closeModalOnClickOutside、closeAfterFinish:控制模态窗口的关闭行为。
    disablePageScrollWhenModalOpen:当模态窗口打开时禁用页面滚动。
    animateOpenClose:添加模态对话框打开或关闭时的动画。
    fileManagerSelectionType:配置文件管理器选择窗口中允许的选择类型。
    proudlyDisplayPoweredByUppy:显示 Uppy 徽标链接。
    disableStatusBar、disableInformer、disableThumbnailGenerator:禁用状态栏、通知和缩略图生成器。
    Uppy Tus:
    Uppy 提供大文件断点续传功能,Tus 是一个基于 HTTP 的开放协议,用于恢复上传,这意味着无论是意外关闭标签,还是失去连接,都可以继续上传。
    安装使用:
    import Tus from 
    '@uppy/tus';
    new Uppy().use(Tus, { endpoint'https://xxx/files/' });
    • Tus API 参见官方文档。

    • Uppy 文件属性:

      • file.source 文件来源、file.id 唯一 ID、file.name 文件名、file.meta 元数据、file.type MIME 类型、file.data 文件数据、file.progress 上传进度、file.size 文件大小、file.isRemote 是否从远程导入、file.remote 远程源数据、file.preview 预览 URL、 file.uploadURL 上传完成后的文件 URL。
    功能和特性:
    控制面板:提供一个强大的响应式和可插件化的文件上传控制面板,用户可以从远程源添加文件、编辑图像、生成缩略图等。
    1. 远程文件源集成:通过 Companion 服务,Uppy 可以从云端服务集成文件,简化了认证过程,并减少了从远程源下载文件的成本。

    2. 技术栈集成:Uppy 可以无缝集成到现有的技术栈中,支持多种框架,如 React、Vue、Svelte 或 Angular。

    3. Companion 服务:Companion 是一个托管的、独立的或中间件服务器,用于处理文件认证的复杂性和下载文件的成本,这意味着大文件不会消耗用户的流量,同时开发者不需要担心 OAuth 问题。

      • 大文件上传:支持通过开放的 Tus 标准进行断点续传的大文件上传,与 Transloadit 的文件编码和处理后端配合良好。
      • 文件恢复:通过 Golden Retriever 支持文件恢复,即使在浏览器崩溃或意外导航后也能恢复文件上传,并支持多语言 i18n 以及无障碍功能。

    《前端资源推荐》公众号收集各种前端组件 UI 框架、JS 插件工具、中后台系统模板、动画库、低代码、可视化资源、开源项目、学习资源、特效源码等,如有其他优秀资源,欢迎发消息投稿,感谢点赞、在看、转发、关注!!!

    其他推荐


    GitHub 56k+ Star AI 项目 截图就能生成前端代码

    Vxe Table:Vue3 支持超大数据量渲染的表格组件

    F2:蚂蚁开源 跨平台多端可视化图表

    Marsview:开源低代码平台 快速搭建自己的管理系统

    TinyMCE:支持 Word 导入 无限插件扩展 富文本编辑器

    X-Flowchart-Vue:基于 Vue 可视化流程图编辑框架
    Varlet:Vue3 移动 桌面 双端适配 UI 组件库

    项目地址


    GitHub:https://github.com/transloadit/uppy

    官方文档:https://uppy.io/

    前端资源推荐
    推荐分享各种前端组件UI、插件工具、中后台系统、低代码、可视化、开源项目、学习资源、特效源码等
     最新文章