影片與字幕·直接媒體下載器
從 FTP 和 wget 到下載屬性:儲存檔案的歷史記錄
· 背景
網路歷史記錄 下載 瀏覽器
從 Internet 儲存檔案已從 FTP 會話和命令列工具變更為單一瀏覽器 API。這篇文章追溯了這段歷史,並展示了純瀏覽器直接連結下載器的適用範圍。
下載曾經是一件大事-恢復按鈕和隔夜傳輸的撥號時代
緩慢的連線使保存檔案成為一項有計劃的事件:使用者觀察流逝的時間,保護電話線,並重視在中斷後可以繼續運作的工具。
這些限制影響了對佇列、復原和可見進展的期望。現代介面更簡單,但可靠性功能並不會因為按鈕變小而變得不必要。隔夜傳輸失敗也會產生顯著的機會成本,鼓勵工具公開連續性和完整性訊息,而不僅僅是最終的成功訊息。失敗也帶來了明顯的機會成本,鼓勵恢復控制和完整性檢查,而不是單一樂觀的完成訊息。
FTP 和早期檔案傳輸:明確遠端會話和單獨資源
FTP 早於網頁,並透過專用協定提供明確的遠端檔案操作。它的會話和傳輸模式與 HTTPS Fetch 有很大不同,因此「每個連接一個檔案」的範圍太廣泛了。
有用的對比是使用者意圖:選擇遠端資源並複製位元組。 ToolAcre 完全拒絕 FTP,因為它的驗證器只接受加密的 HTTPS 位址。 FTP 可以使用單獨的控制和資料連接以及多種傳輸模式,因此簡化的網路時代類比不應取代特定於協定的歷史。 FTP 可以使用單獨的控制和資料連接以及多種傳輸模式,因此網路時代的摘要不應使其協定歷史變得扁平化。
wget、curl 與命令列 — 腳本化下載、重試以及塑造現代工具的習慣
wget 和curl 等命令列客戶端使傳輸可編寫腳本且可觀察。重定向、標頭、輸出名稱、重試策略、驗證、範圍和退出狀態成為可組合選項。
此權力仍然適合處理授權自動化的管理員。瀏覽器頁面具有較小的權限表面,不應模仿憑證、TLS 覆蓋或身分變更重試。腳本還會造成可重複的無聲錯誤,這就是為什麼退出狀態、經過驗證的目的地和保守的憑證處理仍然很重要。自動化也使錯誤變得可重複,從而保留了目的地審查、退出狀態處理和保守的憑證實踐的需要。當記錄的命令避免將令牌洩漏到共用 shell 歷史記錄中時,也會建立稽核證據。
下載管理員和瀏覽器「另存為」-分段下載、復原和下載列的時代
下載管理器新增了佇列、分段傳輸、排程和復原;瀏覽器整合了下載架和本機另存為行為。這些工具可以逐步編寫,而無需先建立一個應用程式 Blob。
Direct Media Downloader 不參與這些功能的競爭。它為有限的單一回應提供明確 URL 策略、主機公告、CORS 解釋、進度、取消和瀏覽器本機保存。對於可見的允許連結,本機瀏覽器保存仍然是最直接的選擇,並可以避免該應用程式的 CORS 和 Blob 記憶體限制。對於可見的授權連結,原生瀏覽器保存仍然更簡單,並可以避免腳本級 CORS 和 Blob 累積。
HTML5 的下載屬性和 Blob — 瀏覽器本身如何獲得保存產生或取得的檔案的能力
HTML 下載屬性讓錨點建議保存而不是導航,而物件 URL 讓腳本暫時尋址產生的 Blob 資料。它們一起使頁面能夠提供它已產生或獲取的位元組。
ToolAcre 接收區塊,建構 Blob,然後使用選取的檔案名稱呼叫其共用下載實用程式。瀏覽器行為仍然控制對話方塊、資料夾、重複項目和完成。物件 URL 在使用後應由儲存公用程式撤銷,以便臨時參考不會超出其在檔案中的用途。臨時物件 URL 在使用後應被撤銷,以便其檔案範圍的參考不會無限期地保持可用。
這個僅限瀏覽器的工具適合的地方:一個 GET、流式區塊、一個 Blob、一個保存
此實作執行一次 GET 進行下載,儘管可選的早期 HEAD 可以檢查標頭。它流式傳輸進度和取消,但會保留區塊,直到組裝一個 Blob,預設為 2 GiB 限制。
來源和瀏覽器之間沒有伺服器。此設計保留了直接路徑,同時接受本機或命令列下載機制可能以不同方式處理的 CORS 和記憶體成本。取消會丟棄部分資料,介面不提供排隊的第二個作業;這兩個事實都將其與完整的轉會經理區分開來。取消會丟棄部分資料,且佇列不會啟動另一個作業,從而將這種集中互動與傳輸管理器區分開來。
重點:比以往任何時候都簡單 — Direct Media Downloader 如何使用瀏覽器自己的 API 來完成曾經複雜的工作
儲蓄比早期時代更容易啟動,但尚未普遍解決。 Direct Media Downloader 代表了一個更大的工具箱中的一個瀏覽器本機點,並保持其邊界可見。
當其主機允許跨網域讀取時,將其用於允許的直接 HTTPS 檔案。當規模、履歷、身分驗證或策略需要其他路徑時,選擇本地連結另存為、授權傳輸用戶端或來源的官方設施。當現代便利性的限制被理解時,它就變得很有價值,它允許使用者選擇一種更強大的授權機制,而不會濫用這種機制。當使用者可以轉移到授權的專業方法而無需假裝此瀏覽器路徑包含其功能時,現代便利性是最有用的。