Закачка одного файла одновременно с нескольких источников

Пожелания по улучшению программы. Чего еще не хватает в DM.

Moderators: Korney San, Qwertiy, marcipan, igelizm

MKisH
Бывалый
Posts: 15
Joined: 26 Feb 2006, 18:49 Sun
Contact:

Post by MKisH »

Ну допустим, вы нашли два одинаковых файла на разных серверах, добавили закачку, качает с разных серваков разные секции, и вдруг, о чудо, оказывается, что файлы-то разные или косяченые... и что делать? Перекачивать заново с другого источника? :?:
Prandr
Posts: 7
Joined: 03 Mar 2006, 0:25 Fri

Post by Prandr »

хорошая идея. пригодится для скачивания хотя бы с sourceforge.net
User avatar
Conver
Профи
Posts: 50
Joined: 03 Mar 2006, 3:23 Fri
Location: Санкт-Петербург
Contact:

Post by Conver »

Нет, ребята, нам такого механизма в DM ненадо. У кого есть Осёл, должен был сталкиваться с таким замечательным явлением, когда скачанный на 100% файл вдруг по окончании закачки сбрасывается, например, на 88%. Произошла проверка файла и система выкинула битые части - теперь 12% опять докачивать. И это в программе, которая специально ориентирована на закачку частями с разных источников. СКОЛЬКО же косяков даст подобный механизм в DM, ведь никто не предоставит контрольной суммы файла, как в Осле или Торренте? Сами намучаетесь и будете отключать столь ненадёжную систему...
Loki_UA
Posts: 8
Joined: 03 Mar 2006, 12:19 Fri
Location: мимо пробегал
Contact:

Post by Loki_UA »

СКОЛЬКО же косяков даст подобный механизм в DM, ведь никто не предоставит контрольной суммы файла, как в Осле или Торренте? Сами намучаетесь и будете отключать столь ненадёжную систему...
А никто и не говорил, что система будет подобной...
Идея в том, чтобы не перекачивать файл два раза полностью. В моем случае с BDS битый кусок находился в конце файла, причем это было заметно невооруженным глазом(RAR-архив, два одинаковых символа подряд).
К тому же совсем необязательно встраивать эту функцию в сам ДМ(можно сделать плагин) и уж совершенно необязательно она должна всегда быть включена...
Кстати, какие у кого будут идеи по поводу проверки закачиваемого файла на целостность? С архивами понятно, а медиафайлы?
P.S. Кстати, сброс со 100 на 88 все равно лучше, чем заново качать все 100...
User avatar
Conver
Профи
Posts: 50
Joined: 03 Mar 2006, 3:23 Fri
Location: Санкт-Петербург
Contact:

Post by Conver »

В пиринговых системах проверка контрольной суммы всего файла, частей или даже отдельных чанков (как в Торренте) заложена изначально. В нашем случае ГДЕ брать контр.сумму? Пока серверы не будут отдавать её по запросу, как обязательную функцию, ничего хорошего из этой затеи не выйдет. И чем поможет контрольная сумма ВСЕГО архива (ведь только её можно извлечь из начала файла-архива)? Всё равно второй раз придётся качать ВЕСЬ архив.
Loki_UA
Posts: 8
Joined: 03 Mar 2006, 12:19 Fri
Location: мимо пробегал
Contact:

Post by Loki_UA »

Если проверять контрольную сумму, тогда действительно придется качать весь архив заново...
А если сравнивать файлы по содержимому, предположив, что недокачанный файл правилен? Идея была такая: есть два файла - докачанный, но битый и недокачанный, по правильный. Программа сравнивала файлы блоками по 100кб. В случае, когда блоки расходились, производился полный побайтовый проход блока. Если соответствующие байты оказывались разными, то для итогового файла брался байт из недокачанного, если он не нулевой...
Была еще идея проходить только недокачанный файл, заменяя нулевые куски соответсвующими кусками из битого...
Идеи не идеальные, но все равно лучше, чем повторная закачка... Если у кого-нибудь есть еще варианты, я согласен их реализовать.
P.S. В обоих случаях предполагается, что в настройках ДМ стоит "Резервировать размер на диске для всего файла".
User avatar
Conver
Профи
Posts: 50
Joined: 03 Mar 2006, 3:23 Fri
Location: Санкт-Петербург
Contact:

Post by Conver »

Нууу... По-моему идея более, чем не идеальная.
Это надо, если найдено несоответствие, подменять блок, запускать(распаковывать, прослушивать, просматривать) полученный файл и если что не так, продолжать повторную закачку (надеясь, что она-то правильная, а если НЕТ!) до нахождения следующего несоответствия и так далее.
Жуть...
Нет, по-моему, ничего, кроме разбивания файла на блоки и подсчёта контрольных сумм блока со сравниванием с исходными (а где взять исходные суммы для блоков оригинала?), помочь не может. Всё это есть в Торренте, но нам не светит. Все-же я остаюсь при своём мнении, что лучше не заморачиваться.
WhiteWind
Posts: 2
Joined: 05 Mar 2006, 12:02 Sun

Post by WhiteWind »

Не нравится - не ешь. Ведь не будет же DM насильно качать файл из разных мест - типа пока не дашь вторую сцылку, качать не буду :twisted: .
Я за эту фичу всеми конечностями :!: .
User avatar
Conver
Профи
Posts: 50
Joined: 03 Mar 2006, 3:23 Fri
Location: Санкт-Петербург
Contact:

Post by Conver »

Сколькими-сколькими? :shock: :oops:
А если я хочу указать зеркала, но не хочу подгрузки с них частями? Придётся ещё и переключатель добавлять, типа "перебирать зеркала/качать одновременно со всех". И однажды он окажется не в том положении и закачается венегрет, вместо нормального файла...
Хотя, если он будет при добавлении новой закачки устанавливаться на безопасный режим закачки всего файла с одного зеркала, то я согласен. И что-бы состояние переключателя можно было менять на лету...
MKisH
Бывалый
Posts: 15
Joined: 26 Feb 2006, 18:49 Sun
Contact:

Post by MKisH »

Вещь-то она нужная.... Но уж сильно глючить будет! 100%! :?
marcipan
Гуру
Posts: 1400
Joined: 11 Jun 2005, 3:55 Sat
Location: Санкт-Петербург

Post by marcipan »

Conver wrote:... И однажды он окажется не в том положении и закачается венегрет, вместо нормального файла...
Может разработчтки из-за этого и не хотят вводить эту фишку, чтобы потом не заморачиваться? Может решить пока это на уровне плагинов?
MKisH
Бывалый
Posts: 15
Joined: 26 Feb 2006, 18:49 Sun
Contact:

Post by MKisH »

Вот именно! Кому это сильно уж нужно пусть делает плагин! :wink:
Denter
Posts: 6
Joined: 09 Mar 2006, 15:08 Thu
Contact:

Post by Denter »

Специально зарегистрировался, дабы свои 5 коп вставить.
Ибо фишка нужная. Особенно для тех, у кого инет толстый.

Господа, давайте прикинем, в каких ситуациях это может быть востребовано:
а) Закачка видео большого размера
б) Закачка крупных архивов
в) Закачка ISOшников

Какие могут быть косяки при этом:
а) файлы имеют одинаковый размер, но сами по себе отличаются. Вероятность, мягко говоря, мизерная.
б) На одном из зеркал лежит "муляж" - файл с таким-же названием и размером, но забитый фигней. Тоже случаи исключительные
в) Версия на одном из зеркал битая. Вот это уже больше похоже на правду. Этот вариант и рассмотрим дальше.

Как ислючить одни косяки и минимизировать другие:
а) Один из источников назначается основным.
б) С него закачивается столько кусков по, допустим, 100 Кб равномерно по всему файлу, сколько есть дополнительных зеркал. При добавлении зеркала - закачивается дополнительный кусок.
в) Паралельная закачка с зеркала начинается с позиции, начинающейся с уже закачанного с основного источника куска. Если куски совпали - зеркало признается "идентичным". Если нет - отправляется в лес. Этим мы исключим первые два косяка.
г) В информации о закачке сохраняем карту - с какого источника какие части файла скачаны.
д) После окончания закачки с использованием этой фишки предлагается файл "проверить" (проверка архива может быть автоматической с возможностью предварительно забить пароль на архив. Проверку видео тоже можно автоматизировать, но это уже сложнее) на целостность. Например - просто запустив. Как проверить ISOшник сходу не предложу.
е) После чего или признать, что все в порядке (тогда инфа о закачке удаляется), или предложить перекачать, исключив какие-то из источников.
ж) Если проверка целостности архива автоматическая, то поставить галку "При нарушении целостности автоматически перезакачивать с основного источника". При этом вначале перезакачивать закачанное с последнего из списка зеркал. Проверять. Если все равно битое - с предыдущего и так далее, пока не выясним, что архив битый на основном источнике :о).
User avatar
Conver
Профи
Posts: 50
Joined: 03 Mar 2006, 3:23 Fri
Location: Санкт-Петербург
Contact:

Post by Conver »

У Вас, уважаемый, похоже не только толстый канал, но и анлим на этом канале. Масквич что-ли? И много вас таких мега-пользователей DM? Я, например, не могу себе позволить подобные проверки...

Думаю такое надо однозначно в плагин и не замусоривать программу всякими нестабильными функциями. Кому надо - тот подключит плагин и пусть тратит свой трафик на что угодно, если система попадёт в цикл - пусть у него.
Denter
Posts: 6
Joined: 09 Mar 2006, 15:08 Thu
Contact:

Post by Denter »

Conver wrote:У Вас, уважаемый, похоже не только толстый канал, но и анлим на этом канале. Масквич что-ли? И много вас таких мега-пользователей DM? Я, например, не могу себе позволить подобные проверки...
Хм... Почти. Киевлянин :wink:
Но речь и в самом деле идет об анлиме. К тому-же рабочем (к тому-же как для админа 8) ).
Conver wrote:Думаю такое надо однозначно в плагин и не замусоривать программу всякими нестабильными функциями. Кому надо - тот подключит плагин и пусть тратит свой трафик на что угодно, если система попадёт в цикл - пусть у него.
Нууу... фишка то может быть включена или выключена, в зависимости от стремления человека получить конкретно этот файл как можно быстрее.

Кстати о птичках - а как на счет такой фичи:
Возможность использовать паралельно несколько прокси серверов для закачки файла из одного источника.
?

Те-же яйца, только в профиль (хотя для конкретно моих задач это не совсем оно). И проверок не надо.
Post Reply