Page 2 of 3

Posted: 04 Mar 2006, 17:09 Sat
by MKisH
Ну допустим, вы нашли два одинаковых файла на разных серверах, добавили закачку, качает с разных серваков разные секции, и вдруг, о чудо, оказывается, что файлы-то разные или косяченые... и что делать? Перекачивать заново с другого источника? :?:

Posted: 04 Mar 2006, 18:18 Sat
by Prandr
хорошая идея. пригодится для скачивания хотя бы с sourceforge.net

Posted: 04 Mar 2006, 21:51 Sat
by Conver
Нет, ребята, нам такого механизма в DM ненадо. У кого есть Осёл, должен был сталкиваться с таким замечательным явлением, когда скачанный на 100% файл вдруг по окончании закачки сбрасывается, например, на 88%. Произошла проверка файла и система выкинула битые части - теперь 12% опять докачивать. И это в программе, которая специально ориентирована на закачку частями с разных источников. СКОЛЬКО же косяков даст подобный механизм в DM, ведь никто не предоставит контрольной суммы файла, как в Осле или Торренте? Сами намучаетесь и будете отключать столь ненадёжную систему...

Posted: 04 Mar 2006, 22:19 Sat
by Loki_UA
СКОЛЬКО же косяков даст подобный механизм в DM, ведь никто не предоставит контрольной суммы файла, как в Осле или Торренте? Сами намучаетесь и будете отключать столь ненадёжную систему...
А никто и не говорил, что система будет подобной...
Идея в том, чтобы не перекачивать файл два раза полностью. В моем случае с BDS битый кусок находился в конце файла, причем это было заметно невооруженным глазом(RAR-архив, два одинаковых символа подряд).
К тому же совсем необязательно встраивать эту функцию в сам ДМ(можно сделать плагин) и уж совершенно необязательно она должна всегда быть включена...
Кстати, какие у кого будут идеи по поводу проверки закачиваемого файла на целостность? С архивами понятно, а медиафайлы?
P.S. Кстати, сброс со 100 на 88 все равно лучше, чем заново качать все 100...

Posted: 04 Mar 2006, 22:41 Sat
by Conver
В пиринговых системах проверка контрольной суммы всего файла, частей или даже отдельных чанков (как в Торренте) заложена изначально. В нашем случае ГДЕ брать контр.сумму? Пока серверы не будут отдавать её по запросу, как обязательную функцию, ничего хорошего из этой затеи не выйдет. И чем поможет контрольная сумма ВСЕГО архива (ведь только её можно извлечь из начала файла-архива)? Всё равно второй раз придётся качать ВЕСЬ архив.

Posted: 05 Mar 2006, 0:43 Sun
by Loki_UA
Если проверять контрольную сумму, тогда действительно придется качать весь архив заново...
А если сравнивать файлы по содержимому, предположив, что недокачанный файл правилен? Идея была такая: есть два файла - докачанный, но битый и недокачанный, по правильный. Программа сравнивала файлы блоками по 100кб. В случае, когда блоки расходились, производился полный побайтовый проход блока. Если соответствующие байты оказывались разными, то для итогового файла брался байт из недокачанного, если он не нулевой...
Была еще идея проходить только недокачанный файл, заменяя нулевые куски соответсвующими кусками из битого...
Идеи не идеальные, но все равно лучше, чем повторная закачка... Если у кого-нибудь есть еще варианты, я согласен их реализовать.
P.S. В обоих случаях предполагается, что в настройках ДМ стоит "Резервировать размер на диске для всего файла".

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

Posted: 05 Mar 2006, 18:15 Sun
by WhiteWind
Не нравится - не ешь. Ведь не будет же DM насильно качать файл из разных мест - типа пока не дашь вторую сцылку, качать не буду :twisted: .
Я за эту фичу всеми конечностями :!: .

Posted: 05 Mar 2006, 18:31 Sun
by Conver
Сколькими-сколькими? :shock: :oops:
А если я хочу указать зеркала, но не хочу подгрузки с них частями? Придётся ещё и переключатель добавлять, типа "перебирать зеркала/качать одновременно со всех". И однажды он окажется не в том положении и закачается венегрет, вместо нормального файла...
Хотя, если он будет при добавлении новой закачки устанавливаться на безопасный режим закачки всего файла с одного зеркала, то я согласен. И что-бы состояние переключателя можно было менять на лету...

Posted: 05 Mar 2006, 18:44 Sun
by MKisH
Вещь-то она нужная.... Но уж сильно глючить будет! 100%! :?

Posted: 05 Mar 2006, 18:45 Sun
by marcipan
Conver wrote:... И однажды он окажется не в том положении и закачается венегрет, вместо нормального файла...
Может разработчтки из-за этого и не хотят вводить эту фишку, чтобы потом не заморачиваться? Может решить пока это на уровне плагинов?

Posted: 06 Mar 2006, 18:16 Mon
by MKisH
Вот именно! Кому это сильно уж нужно пусть делает плагин! :wink:

Posted: 09 Mar 2006, 15:43 Thu
by Denter
Специально зарегистрировался, дабы свои 5 коп вставить.
Ибо фишка нужная. Особенно для тех, у кого инет толстый.

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

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

Как ислючить одни косяки и минимизировать другие:
а) Один из источников назначается основным.
б) С него закачивается столько кусков по, допустим, 100 Кб равномерно по всему файлу, сколько есть дополнительных зеркал. При добавлении зеркала - закачивается дополнительный кусок.
в) Паралельная закачка с зеркала начинается с позиции, начинающейся с уже закачанного с основного источника куска. Если куски совпали - зеркало признается "идентичным". Если нет - отправляется в лес. Этим мы исключим первые два косяка.
г) В информации о закачке сохраняем карту - с какого источника какие части файла скачаны.
д) После окончания закачки с использованием этой фишки предлагается файл "проверить" (проверка архива может быть автоматической с возможностью предварительно забить пароль на архив. Проверку видео тоже можно автоматизировать, но это уже сложнее) на целостность. Например - просто запустив. Как проверить ISOшник сходу не предложу.
е) После чего или признать, что все в порядке (тогда инфа о закачке удаляется), или предложить перекачать, исключив какие-то из источников.
ж) Если проверка целостности архива автоматическая, то поставить галку "При нарушении целостности автоматически перезакачивать с основного источника". При этом вначале перезакачивать закачанное с последнего из списка зеркал. Проверять. Если все равно битое - с предыдущего и так далее, пока не выясним, что архив битый на основном источнике :о).

Posted: 10 Mar 2006, 0:45 Fri
by Conver
У Вас, уважаемый, похоже не только толстый канал, но и анлим на этом канале. Масквич что-ли? И много вас таких мега-пользователей DM? Я, например, не могу себе позволить подобные проверки...

Думаю такое надо однозначно в плагин и не замусоривать программу всякими нестабильными функциями. Кому надо - тот подключит плагин и пусть тратит свой трафик на что угодно, если система попадёт в цикл - пусть у него.

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

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

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