andrey1961
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: 4get Advanced Member EXTERMINATOR случаи есть, а автоматического способа нет точнее так - я последний раз битый файл получал под зависшей win98 и пока ни разу на 2k/xp + ntfs + опция reserve space on disk for entire file, но это у меня со светом все в порядке а вот есть кто периодически мучается: Цитата:From: "Konstantin L. Shustik" <shustik@spb.cityline.ru> Newsgroups: regetsoft.public.regetdx.ru Subject: Re: Как восстановить закачку???????? Date: Wed, 20 Feb 2002 03:18:46 +0300 > Случилась следующая ситуация: при закачке ОЧЕНЬ большого файла вырубили > свет. > После перзагрузки и попытки продолжения ReGet предложил начать всё сначала. > ВОПРОС: можно как-то исправить ситуацию??? Я решил данную проблему очень просто: 1. Файл обрезается до некоторого немного меньшего размера. 2. В конец файла дописывается служебная информация ReGet-а (вручную или с помощью написанной на Delphi программы) 3. Продолжается закачка файла. Это очень просто, если происходила закачка в одну нить. Если в более, чем в одну, то нужно найти "дыры" в файле (области незакаченной информации) и опять же дописать служебную информацию ReGet-а. Данный "фокус" был мне полезен в ситуации, когда файл был скачан с ошибкой. Пришлось найти испорченную область и "заставить" ReGet скачать ее заного. После этого файл стал в порядке. Кстати, мож но ведь данную фичу (закачать область файла с байта X по байт Y) ввести прямо в ReGet, думаю будет полезной. Цитата:From: "Konstantin L. Shustik" <shustik@spb.cityline.ru> Newsgroups: regetsoft.public.regetdx.ru Subject: Re: Как восстановить закачку???????? И КОЕ-ЧТО РАЗРАБОТЧИКАМ Date: Thu, 21 Feb 2002 02:43:52 +0300 > А попдробнее можно (как узнать, где-что обрезать и, главное, как добавить > информацию) > О закачке - zip, 125M, 3 секции, на данный момент 89M > ЗЫ: К РАЗРАБОТЧИКАМ - может стоить служебную информацию перенести в начало > файла (или в отдельный файл, напр., descript.ion) и обновлять при каждом > корректном (не ресетом/выкл пит) завершении (пауза в т.ч.). > Тогда, при некорректном завершении потеряется только последний(-ие) > фрагмент(-ы) файла и продолжится закачка с откатом Я все это выяснил с помощью 16-ричного вьюера. Служебная информация ReGet-а имеет следующую структуру: 1. Размер закаченной области файла дополняется в конце нулями до кратности размера 4096 байт (4Кб). 2. Каждая сессия закачки занимает в конце файла 16 байт (4 LongWord-а (32 битное целое без знака)): 1) Сигнатура 0x2F772145 2) Байт начала сессии (0 - ...) 3) Количество закаченных байт 4) Размер сессии 3. Для первой сессии 2) всегда равен 0, а 4) равен размеру файла. 4. Для следующих сессий 4) всегда равен 0 Вот пример последних байтов одного из моих файлов с одной сессией: 0AC81FC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0AC81FD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0AC81FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0AC81FF0: 45 21 77 2F 00 00 00 00 93 13 C8 0A D3 9A E4 22 0AC82000: Вот пример последних байтов одного из моих файлов с четырьмя сессиями: 0288CFC0: 45 21 77 2F 00 00 00 00 19 55 01 00 00 90 60 03 0288CFD0: 45 21 77 2F 8F 85 D8 00 1A 21 00 00 00 00 00 00 0288CFE0: 45 21 77 2F 4E 4A B0 01 56 16 01 00 00 00 00 00 0288CFF0: 45 21 77 2F D0 8E 88 02 EA 37 00 00 00 00 00 00 0288D000: | О Г Р О М Н Е Й Ш Е Е С П А С И Б О ! ! ! Очень грамотная, профессиональная, подсказка, как же всё-таки сделать "аварийный rollback"! Уже даже практически поигрался. Великолепно! Долго искал что-нибудь по этой теме - что же творится в хвостах недокачанных файлов. И, сказать честно, совсем не рассчитывал найти что-нибудь толковое по этому впопросу здесь... Хорошо... Теперь хоть совсем не обидно, что столько времени потратил на добросовестное просматривание всех тем этой секции с самой первой страницы... | Всего записей: 22 | Зарегистр. 09-04-2006 | Отправлено: 20:36 29-05-2006 | Исправлено: andrey1961, 20:47 29-05-2006 |
|