开源项目精选: 整洁、模块化的浏览器文件上传组件 Uppy

这篇文章旨在介绍uppy这一工具,希望更多的人能了解并使用 uppy

 

Uppy是什么?

Uppy 是一个整洁的,模块化的,几乎可以与任何浏览器结合的文件上传组件,它快速,易用,能让你把心思放在比文件上传组件更重要的事情上

如何使用Uppy?

你可以通过在线尝试快速掌握Uppy的使用

开源项目精选: 整洁、模块化的浏览器文件上传组件 Uppy

Uppy应对浏览器崩溃的方法:

随着人们每天在网络上不断的进行文件传输,文件传输过程中出现意外已经司空见惯,如何在发生意外时减少使用者受到的损失已经成为了一个重要的问题。而uppy 使用了Golden Retriever 来解决这个问题。Golden Retriever 将你选定的文件保存在你的浏览器缓存之中,这样当浏览器崩溃时,uppy 也能找回所有东西继续上传。但是如果在浏览器崩溃之后没有进行恢复而是进行了某种清理缓存的操作的话……那就没办法了。

Golden Retriever 通过三种方法结合起来保存数据:

  1. 使用本地存储来保存文件真正的数据,在浏览器启动时恢复它们,但 uppy 不能直接访问这些数据
  2. 使用Service Worker 来保存对文件转变为BLOB(二进制大对象,是一个可以存储二进制文件的容器)之后的引用,虽然这会在浏览器崩溃后失效
  3. IndexedDB 可以永久保存BLOB 文件,但是在储存文件的量上有诸多限制

所以当uppy 启动时,信息将从本地存储中恢复,从而让uppy可以知道发生了什么。对于BLOB来说,它们将从Service Worker 和 IndexedDB中恢复。当文件成功上传后,或者是使用者决定删除它们时,Golden Retriever将会把它们自动清理掉。

虽然在有些时候Golden Retriever也无法救回丢失的进度,比如一个非常大的文件在上传时被打断,或者浏览器完全彻底的崩溃。但是至少它能保存一些这个文件的关键信息,比如它的名字和预览,以便让使用者重新添加它们。

开源项目精选: 整洁、模块化的浏览器文件上传组件 Uppy

关于tus:

tus是一个可恢复用户正在上传中文件的上传协议,支持所有平台的客户端和服务器端,当使用者结束当前进行中的上传时,服务器将存储已上传的数据(如果没有发生内部错误或者存储的数据会违反某些规定的话)。当使用者准备恢复上传时,就向相应的URL发送一个请求来获得可用的空间从而继续上传数据。但是如果经过了较长的时间还是没有完成上传的话(比如一周),服务器就将删除未完成的上传文件。

关于作者:

Artur Paikin:喜欢旅行,种植蔬菜,泡coffee,编写代码,制作网页,并且致力于家庭的自动化。他用Instagram 上传照片,用Facebook,twitter 写小说。

开源项目精选: 整洁、模块化的浏览器文件上传组件 Uppy

个人主页