简体中文

视频和字幕·直接媒体下载器

从 FTP 和 wget 到下载属性:保存文件的历史记录

· 背景

网络历史记录 下载 浏览器

从文件传输终端到浏览器Blob和下载控制的序列
原始 ToolAcre 矢量图

从 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 文件。当规模、简历、身份验证或策略需要其他路径时,选择本地链接另存为、授权传输客户端或来源的官方设施。当现代便利性的局限性被理解时,它就变得很有价值,它允许用户选择一种更强大的授权机制,而不会滥用这一机制。当用户可以转移到授权的专业方法而无需假装此浏览器路径包含其功能时,现代便利性是最有用的。