Answers:
我不确定您的问题是理论上的还是真实的问题...将作为理论上的答案...
只要完整文件完成了,从技术上讲,是的-我不完全确定最好的程序来实际完成此任务。
更好的解决方案可能是下载.torrent文件并将其修改为您和您的朋友之间的专用跟踪器,以便彼此完成。
是的,您可以使用torram实用程序来实现。它使用任意数量的部分或完全下载的文件来重建torrernt的下载目录。因此,如果您的文件都在〜/ Download / Torrents /中,则可以使用:
torram -c -o <the_directory_where_to_put_reconstructed_files> <yourtorrentfile.torrent> ~/Download
无论您的文件位于何处,都可以-为其指定父目录(这就是为什么我在示例中使用〜/ Download /的原因)。如果您不确定甚至可以使用'/'作为最后一个arg,则该工具将递归扫描目录,按文件大小查找候选对象,按md5哈希检查其块,然后将找到的每个好的片段合并到最终文件中。
如果您有一个洪流文件,两个人在不同的系统上下载了该洪流文件,并想将人B所下载的内容带到人A的系统中,那么简单明了的事情就是直接将B的文件复制到A的洪流中,然后继续洪流在人A的系统上。当我开始使用的所有Bittorrent对等程序开始弄清楚它们在文件中的位置时,它们都会对其进行扫描。因此,从文件恢复不是问题。
但是-仅当torrent包含多个文件且B人具有许多完整文件或A没有开始下载的许多不完整文件时,这才对您有帮助。
如果您用人B的同名文件覆盖人A的文件,则不会“合并”他们之间已经下载的文件,您将成为人B离开该文件的地方。
如果您的洪流仅仅是一个非常大的单个文件,那么这对您没有帮助,您将只管从B停止下载。
否则考虑mergetorrent由@Alexey马尔科夫的意见建议。我没有使用过该实用程序,但它似乎可以满足您的要求。
如果它们是同一洪流的两个不同文件,则只需将两个文件移动到相同(未完成)的下载数据中(文件名需要精确地指向目标)。然后进行重新检查,您的Bittorrent客户端会将您的新文件情况与已知的torrent校验和进行比较。
如果您下载的片段来自同一文件。它变得更糟。我想知道没有人为此编写工具,因为潜在工具的算法非常简单明了:
如前所述,对于工具而言,这是一项简单的任务。如果您没有这样的工具(我不知道),则可以手动合并文件,以防客户端没有下载垃圾(=与校验和不匹配的部分)。在这种情况下,您可以使用仅复制非空块的工具。dd if=inputfile.dat of=outputfile.dat bs=1024 conv=notrunc,sparse
只需将bs=
(块大小)参数调整为下载文件的块大小即可。最后,在Torrent客户端中重新扫描文件,它会比以前找到更多的块。