這篇文章旨在介紹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也無法救回丟失的進度,比如一個非常大的文件在上傳時被打斷,或者瀏覽器完全徹底的崩潰。但是至少它能保存一些這個文件的關鍵信息,比如它的名字和預覽,以便讓使用者重新添加它們。

關於tus:

tus是一個可恢復用戶正在上傳中文件的上傳協議,支持所有平台的客戶端和伺服器端,當使用者結束當前進行中的上傳時,伺服器將存儲已上傳的數據(如果沒有發生內部錯誤或者存儲的數據會違反某些規定的話)。當使用者準備恢復上傳時,就向相應的URL發送一個請求來獲得可用的空間從而繼續上傳數據。但是如果經過了較長的時間還是沒有完成上傳的話(比如一周),伺服器就將刪除未完成的上傳文件。

關於作者:

Artur Paikin:喜歡旅行,種植蔬菜,泡coffee,編寫代碼,製作網頁,並且致力於家庭的自動化。他用Instagram 上傳照片,用Facebook,twitter 寫小說。

個人主頁