我有一个 torrent,里面有我真正想要的文件,但它已经死了好几个月了。现在幸运的是,我有所有文件的直接下载链接。问题是这个 torrent 有好几 GB 的大小,在死机前已经下载了近 75%。我不能浪费这么多数据,因为我有下载限制,而且这里的互联网接入非常昂贵。
有什么方法可以让我使用直接下载链接继续下载所有种子文件吗?我试过频分复用和下载器但据我所知,两者都不支持这一点。
答案1
从理论上来说这应该是可能的,但在实践中似乎没有简单的方法来实现它(至少据我所知没有)。
简单来说,问题是由于 torrent 客户端同时下载各种件每个文件,并将它们以正确的顺序“拼接”到磁盘上。因此,即使您可能拥有文件的 75%,也并不意味着它是从文件开头开始的连续 75% 数据块。缺失的部分(即到目前为止尚未下载的部分)是零字节,随着每个部分的完成,客户端会逐渐填充这些字节。
现在,使用直接 HTTP 链接的多线程下载管理器(例如您使用的 Free Download Manager 或 FDM)也可以恢复下载并同时下载文件的多个部分,前提是满足某些服务器条件。HTTP/1.1 允许客户端请求文件的部分而不是整个文件。这允许客户端恢复中断的下载(或同时下载多个部分),而无需再次重新下载整个资源。Web 服务器发送内容长度和接受范围响应标头,向客户端表明它们允许使用范围标头下载资源的片段。以下是该过程的概述:
仅支持 HTTP/1.0(因此无法恢复下载)的古老服务器现在已经很少见,并且 HTTP/2 已于 2015 年 2 月 17 日成为拟议标准。
所以现在你可能会问,如果下载管理器可以(同时)下载文件的部分内容并像 torrent 客户端一样恢复下载,那么为什么前者不能恢复中断的 torrent 下载呢?就像我在开头说的那样,理论上它们可以,但其中涉及各种问题。Torrent 客户端使用 .torrent 文件来存储关于每个文件的信息,包括名称和文件大小。更重要的是,片段大小是已知的,并且SHA-1 哈希.torrent 文件中还包含每个片段的哈希值(类似于独特的数字“指纹”)以及整个信息字典的信息哈希值。因此,即使使用 torrent 客户端恢复之前从未遇到过的 torrent 的中断下载,它也可以比较每个片段的预期哈希值与磁盘上数据的实际哈希值,以确定哪些片段未通过哈希检查,因此需要重新下载。
但是,当您将中断的 torrent 下载传递给 HTTP 下载管理器时,它不知道文件丢失了哪些部分。现在理论上它可以检查每个文件,创建仅包含零字节的所有数据块的列表,然后尝试从 Web 服务器重新下载这些数据块以填补空白。对于支持 BitTorrent 协议的下载管理器(如 FDM),它甚至可以使用 .torrent 文件进行哈希校验,然后仅通过 HTTP 重新下载未通过上述校验的部分。然而在实践中,正如我上面提到的,我所知道的下载管理器都不会这样做,所以您很可能运气不佳。
†我遇到过的最接近的下载管理器是 GetRight 的恢复丢失的下载功能。但是,这只适用于从头开始连续下载的文件,而且磁盘上的大小应该反映实际下载的字节数,而不是文件的总大小。因此,如果您的下载中断,其中磁盘上的文件大小为 15,000 字节,并且服务器报告内容长度对于资源为 100,000 字节,那么 GetRight 所做的就是发送一个范围请求字节 15,001 到 100,000。(实际上,它会“回滚”4KB(默认值,用户可配置)以确认文件下载中断时最后没有数据损坏,但这是一个次要的实现细节。)显然,考虑到它的工作原理,此功能无法帮助您恢复中断的 torrent 下载。
答案2
#0:如果 torrent 上托管的文件和直接下载链接 (DDL) 相同,那么答案理论上应该有效,即哈希值无差异 [NDH]。我考虑了三种情况。其余的留给读者练习。请按照以下步骤操作:
场景 1
您的 torrent 只有一个文件,并且 DDL 也是具有相同文件类型的单个链接。
如果 DDL(以.mkv/zip/avi/exe
etc. 结尾)没有等待机制或模糊的 URL(例如 Google/One Drive、Dropbox 等),那么您可以将下载链接刻录到种子箱中,例如伯恩比特复制 DDL 的 URL 并将其粘贴到 Burnbit 中。该过程很简单,并逐步说明。让它处理完毕,然后您就可以创建一个新的种子了。下载种子文件并将跟踪器合并到您的原始种子中(某些种子客户端在打开文件后会自动完成此操作)。
#1:请注意,此新种子可能有新的种子和文件名。因此,在合并之前,请将旧种子的名称和文件名更改为新名称。同时,recheck the torrent
在客户端中选择“新种子 [NT]”,以便它可以从 OT 留下文件的位置恢复。
场景 2
原始 Torrent(OT)中有多个文件,并且有多个 DDL 可用。
如果是这样的话,那么经过核算#0,将所有 DDL 刻录到 Burnbit。Burnbit 仅允许刻录单个文件,因此您必须对所有 DDL 重复上述步骤并下载种子文件。打开新的种子并为每个种子指定 OT 下载文件的自定义下载位置 (CDL)。文件可能不直接存储在 CDL 中,而是存储在其下一级(新文件夹)。考虑以下文件树这和这torrent 以了解更多。
#2: 重复#1。如果一切顺利,您将成功下载 OT。
场景 3
OT 是一个档案,里面有单个/多个文件。您的 DDL 是单个/多个链接,但与最终的 OT 档案不同。
探明#0以某种方式。我们的目标是将所有 DDL 收集到一个引擎下并远程存档。前提条件是:
- 一个足够大的虚拟主机空间来存储你的 DDL,
- 文件上传大小不受限制,或至少足以将最大的 DDL 一次性上传到您的托管空间,
- FTP 访问并远程上传至托管域,
- 多上传文件共享网站,例如多重上传(亩)。
谷歌搜索它们,你可以找到许多免费托管计划,它们可以为你提供这些功能(1-3)并在几分钟内完成设置。请阅读他们的常问问题和条款和条件避免帐户被暂停或法律麻烦。
准备好域名和 FTP 凭证后,前往 MU,创建账户,登录,将 FTP 详细信息输入到所需的格式中这里在必填的 FTP 字段中。请通过 FTP 客户端(例如档案。 现在,
- 保存详细信息并前往主页上传文件。
- 选择
Remote Upload
并输入 DDL 链接(仅限一个链接)。 - 勾选
FTP Upload
URL 字段下方的多个选项,并取消选中其余选项。 - 单击
Upload
并让其进行处理。
如果一切顺利,您的 DDL 将远程下载到您的托管空间。通过 FTP 客户端/CPanel 检查是否一切顺利。如果是,则对所有其他 DDL 重复 2-4。
现在我们已经将所有 DDL 放在一个引擎下,让我们通过重命名和构造文件和文件树使其类似于 OT。最新的 CPanel(网络托管)带有文件存档和提取功能。以 OT 的方式存档您的文件。我只知道支持.zip
。下一步是将此文件刻录到 Burnbit。要刻录它,需要它的 URL,可以通过在 Web 浏览器中打开您的域(来自网络托管)来获取,在那里浏览您的文件并通过复制新文件的链接right-click -> copy link location
。您的托管域可能看起来像这。
将复制的链接刻录到 Burnbit 中,现在您就可以使用新的 torrent 了。请记住#1成功下载种子。
#3:必须注意的是,除了可选的 FTP 客户端和 Burnbit 种子文件之外,不需要下载任何新内容,并且所有操作都是远程完成的,从而节省了提问者的带宽。
#4:这些方法可能不适用于需要用户交互(时间等待、验证码等)的下载链接或 URL 末尾没有特定文件类型的模糊链接。
笔记:任何服务均不支持盗版、侵犯版权或违反条款和条件的行为。种子链接仅用作示例。建议读者在使用答案中提到的服务之前,先阅读并遵守其条款和条件。
答案3
Torrent 文件会重命名直至完成。请确保将它们重命名为正确的文件,同时确保 torrent 客户端已关闭,因为它会对您的文件设置写锁。
不过,不能保证下载管理器会发现这一点,因为文件可能不同,因此它会覆盖您的文件并重新开始。因此,请确保先复制文件。
答案4
您无法使用下载管理器恢复下载。请尝试重新宣布torrent 文件并获取任何新的跟踪器并继续下载