Page 1 of 1

MD5

Posted: 11 Oct 2007, 19:46 Thu
by edlab
Если возможно, введите подсчет суммы MD5 для закачанных файлов, с отображением её в таблице.

Спасибо.

Posted: 11 Oct 2007, 21:07 Thu
by Alex Qwerty
Можно вручную - Ctrl-M.
Вот если бы еще она в процессе закачки потихоньку считалась (для больших файлов)...

Posted: 20 Jan 2008, 17:51 Sun
by x2088
... у вас имеется 4 сервера, 5 программистов (у меня такие сведения или догадки) и популярный менеджер закачек в некоторой географической зоне. MD5 сегодня не отдаёт ни один из серверов, по крайней мере я о таких не слышал и не знаю, но не хотели бы вы исправить это, осуществив это для ваших серверов и DM`а, для этого необходимо написать скрипт или програмку, которая по запросу DM`а будет модсчитывать MD5-хэш, заданного ссылкой, файла на вашем сервере и возвращать его DM`у, т.о пользователь сможет заранее узнать контрольную сумму интересующего его файла, без его предварительного полного скачивания. После того как данная возможность будет разрекламирована (за вас это запросто сделают пользователи DM`а, главное чтобы они о ней знали), ч.з некоторое время появятся и др. сервера с такой возможностью - это станет нормой, а вы первооткрывателями данной возможности.

Posted: 24 Jan 2008, 20:41 Thu
by VLAD.V
Ну на серверах где лежит Linux есть файлы с MD5 суммой.
Вопрос в другом как заставить ДМ найти где именно была ошибка во время закачки, чтоб потом он перекачал именно те битые фрагменты!?

Posted: 24 Jan 2008, 21:54 Thu
by Alex Qwerty
Никак. Качай заново.

Posted: 28 Jan 2008, 19:47 Mon
by x2088
Восстановление содержимого по MD5 (или др. контрольной сумме) теоретически - возможно, практически - нет. Файл надо качать заново.

Posted: 02 Feb 2008, 1:16 Sat
by VLAD.V
Я в Linux'е с помощью rsync востановил битые файлы (которые DM повредил в процесе скачивания), быстро и с минимальной потерей трафика!
rsync — это программа для UNIX-подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодировку данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.

Posted: 02 Feb 2008, 1:36 Sat
by VLAD.V
Кстати есть программы, например Orbit Downloader, который может просматривать содержимое ZIP-файла до его скачивания! Если учесть что архиватором можно открывать "iso" образы, то можно заставить просматривать архивы и образы дисков тоже! А если можно просматривать файлы не скачивая их, можно посмотреть размер кажного файла в архиве и увидеть где именно нарушена структура файла!

Posted: 02 Feb 2008, 12:51 Sat
by x2088
Про rsync я ничего не знаю, но насколько я понимаю по вашему описанию это не совсем "то". Узнать содержимое файла имея только его размер и контрольную сумму - нельзя. Для того, чтобы воссановить битый файл с минимизацией нагрузки на трафик, нужно иметь целый файл, и делать это например так:

1) сравнить размеры файлов и при несовпадении размеров у битого файла восстановить правильный размер;
2) условно поделить файл на кусочки заданного размера (чем меньше кусочки тем меньше полезная нагрузка на трафик и больше служебная нагрузка и наоборот);
3) подсчитать контрольные суммы каждого кусочка в отдельности (обоих файлов);
4) передать набор контрольных сумм на сервер (на нём хранится целый файл);
5) сервер сравнивает 2 набора контрольных сумм и выявляет не совпадающие пары сумм (участки файлов);
6) сервер начинает отправку тех участков файла, контрольная сумма которых не совпала, а клиентский компьютер, естественно, эти участки файлов принимает и записывает в резервную копию битого файла;
7) после окончания передачи восстановленных участков файла резервная копия должна стать целой, т.е рабочей с восстановленным содержимым.

От сюда видно, что для этого нужны компьютерные мощности, которых у разнаботчиков нет. К тому же эта процедура, как и процедура, описанная мной в 3-м посте будет поддерживаться только серверами, пренадлежащими разработчикам DM`а, по крайней мере по началу (имею ввиду Win-серверы, поскольку вы говорите, что в *nix это уже есть).

Posted: 02 Feb 2008, 13:00 Sat
by x2088
VLAD.V wrote:Кстати есть программы, например Orbit Downloader, который может просматривать содержимое ZIP-файла до его скачивания! Если учесть что архиватором можно открывать "iso" образы, то можно заставить просматривать архивы и образы дисков тоже! А если можно просматривать файлы не скачивая их, можно посмотреть размер кажного файла в архиве и увидеть где именно нарушена структура файла!
И DM то же это делать умеет. А для всего остального можно на сервере поставить архиватор, который по запросу DM`а открывал бы заданный файл, считывал его содержимое и передавал запрашиваемому содержимое данного архива. Для экономии ресурсов после первого открытия архива производить индексацию содержимого архива. Для этого так же нужны компьютерные мощности.

Posted: 02 Feb 2008, 18:43 Sat
by VLAD.V
x2088 wrote:Про rsync я ничего не знаю, ...
... что в *nix это уже есть).
Утилита rsync использует алгоритм, разработанный австралийским программистом Andrew Tridgell, для эффективной передачи структур (например файлов) по коммуникационным соединениям в том случае, когда принимающий компьютер уже имеет отличающуюся версию этой структуры.
Принимающий компьютер разделяет свою копию файла на неперекрывающиеся куски фиксированного размера S, и вычисляет контрольную сумму для каждого куска: MD4 хэш и более слабый 'rolling checksum', и отправляет их серверу, с которым синхронизируется.
Сервер, с которым синхронизируются, вычисляет контрольные суммы для каждого кусочка размера S в своей версии файла, в том числе перекрывающиеся куски. Это может быть эффективно подсчитано ввиду особого свойства rolling checksum: если rolling checksum байт от n до n+S-1 равняется R, то rolling checksum байт от n+1 до n+S может быть посчитана исходя из R, байта n и байта n+S без необходимости учитывать байты, лежащие внутри этого интервала. Таким образом, если уже подсчитана rolling checksum байт 1-25, то для подсчета rolling checksum байт 2-26 используется предыдущая контрольная сумма и байты 1 и 26

http://manual.sidux.com/ru/sys-admin-rsync-ru.htm
http://www.opennet.ru/tips/info/977.shtml