9

Возможно ли объединить два одинаковых незавершенных торрент-файла.? например. Я загружаю торрент, который состоит из 2 частей, но я загружаю только первую часть, а мой друг загружает вторую часть. Можно ли объединить эти два файла, чтобы у меня был законченный торрент.

6 ответов6

3

Я не уверен, если ваш вопрос является просто теоретическим или реальным вопросом ... собираюсь ответить как теоретический ...

Пока полный файл закончен, технически да - я не совсем уверен в том, что лучшая программа на самом деле выполняет это.

Лучшим решением может быть загрузка файла .torrent и его преобразование в личный трекер между вами и вашим другом, чтобы вы друг друга дополнили.

3

Да, вы можете сделать это с помощью утилиты torram . Он восстанавливает каталог загрузки torrernt, используя любое количество частично или полностью загруженных файлов. Так что, если ваши файлы находятся где-то в ~/Download/Torrents/, вы можете использовать:

torram -c -o <the_directory_where_to_put_reconstructed_files> <yourtorrentfile.torrent> ~/Download

Неважно, где именно находятся ваши файлы - просто укажите любой каталог, родительский для них обоих (именно поэтому я использовал ~/Download/ в примере). Если вы не уверены, что можете использовать '/' в качестве последнего аргумента - инструмент рекурсивно просматривает каталог, находит кандидатов по размеру файла, проверяет их фрагменты по хэшу md5 и объединяет все найденные хорошие фрагменты в окончательный файл.

1

Если у вас есть один торрент-файл, который два разных человека скачивали в разных системах, и вы хотите передать то, что человек B загрузил, в систему человека А, то простая и очевидная вещь - просто скопировать файлы Б непосредственно в торрент А, а затем возобновить торрент на систему человека А. Все используемые мной одноранговые программы Bittorrent будут сканировать файлы, когда они начнут выяснять, где они находятся в файле. Поэтому возобновление работы с файлами не является проблемой.

Но - это поможет вам, только если торрент состоял из нескольких файлов, а у человека B было несколько полных файлов или несколько неполных файлов, которые A не начал загружать.

Если вы перезаписываете файлы человека А файлами того же имени, что и у человека Б, вы не будете "объединять" то, что уже загружено между ними, вы будете там, где человек Б остановился с этим файлом.

Если ваш торрент представляет собой просто очень большой отдельный файл, это вам не поможет, вы просто перенесете туда, где B прервал загрузку.

В противном случае посмотрите на mergetorrent, как подсказывает @Alexey Markov в комментариях. Я не пользовался этой утилитой, но она, кажется, делает то, что вы хотите.

0

Если вы загружаете что-то вроде двух частей .iso или .rar файлов, это означает ДА, вы можете это сделать. Например, вы можете скачать atutorial-part1.rar то время как ваш друг скачивает atutorial-part2.rar без проблем.

0

Большинство клиентов BitTorrent имеют возможность перепроверить загруженные файлы. Если вы объединяете законченные части торрента, а затем запускаете повторную проверку, клиент должен распознать совокупное содержимое (и начать его заполнение).

0

Если это два разных файла одного и того же торрента, вы можете просто переместить оба файла в одни и те же (неполные) данные для загрузки (имя файла должно точно соответствовать цели). Затем выполните перепроверку, и ваш клиент Bittorrent сравнит вашу новую ситуацию с файлом с известными контрольными суммами торрента.

Если ваши скачанные фрагменты находятся в одном файле. Становится немного хуже. Интересно, что никто не написал инструмент для этого, потому что алгоритм для потенциального инструмента довольно прост и прост:

  • прочитать все контрольные суммы
  • открыть оба / все файлы / незавершенные загрузки
  • перебрать все куски
    • проверьте, содержит ли одна из этих загрузок правильный хеш
    • возьмите этот хэш и запишите его в «целевую загрузку»
  • удалить все остальные входные файлы

Как уже говорилось, для инструмента это простая задача. Если у вас нет такого инструмента (я его не знаю), вы можете объединить файл вручную, что работает в том случае, если ваш клиент не загружал мусор (= части, которые не соответствуют контрольной сумме). В этом случае вы можете использовать инструмент, который копирует только непустые блоки. dd if=inputfile.dat of=outputfile.dat bs=1024 conv=notrunc,sparse может сделать это, просто настройте параметр bs= (размер блока) в соответствии с размером порции вашего загружаемого файла. В конце заново отсканируйте ваш файл в клиенте Torrent, и он должен найти больше фрагментов, чем раньше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .