Качаем одновременно с нескольких зеркал
Posted: 09 Jun 2010, 12:50 Wed
(Некоторые, наверное, подумали, что я очередной требовальщик. Сразу оговрюсь - это не так)
Почитав форум я понял, что множество пользователей хотят, чтобы в Download Master была включена возможность закачки с нескольких зеркал одновременно. Моё личное мнение - это была бы очень удобная функция, но её можно реализовать и без доплнительных усилий со стороны разработчиков. И я готов предоставить решение.
Давайте разберёмся в том, что нам нужно сделать. Когда мы думаем, что необходимо "научить" программу скачивать одновременно с нескольких зеркал, мы подразумеваем следующее: у нас есть несколько ссылок, по которым разными серверами выдаётся абсолютно идентичный файл.
Подумаем над словосочетанием "разными серверами". Раз сервера различаются - то различаются и URL (ссылки) на закачку, будь они с цифровым IP или же с именем домена - это не играет роли, они всё-равно будут разные. Словосочетание "разными серверами" оговорит наше первое действие:
1) Мы подготовим перехват соединения и подмену URL с одного сервера на другой. Чтобы перехватить соединение можно использовать различные программы, я приведуь в пример одну, которую использую сам: Proxomitron. Скачать его можно отсюда: http://www.proxomitron.ru/download.htm. Нам надо будет сделать две вещи: настроить Proxomitron и настроить Download Master. Начну со второго. Proxomitron слушает по-умолчанию локально на вашем компьютере порт 8080 в качестве прокси-сервера. Следовательно, нужно указать Download Master'у работать через прокси-сервер 127.0.0.1:8080. Далее мы настроем Proxomitron. В первую очередь убедимся, что в главном окне нажата кнопка "Bypass", затем снимем все доступные по кнопне "Web Page" настройки - они нам не понадобятся, но могут нарушить закачку и снимем все галочки в "Headers", кроме "URL: Alias Redirector (Out)". Пока оставим Proxomitron в покое, но мы ещё к нему вернёмся.
Второе ключевое слово здесь - несколько. Это слово оговорит наши следущие действия:
2) Мы настоим закачку так, чтобы она шла в несколько потоков. Точное количество потоков расчитывается по простой формуле Nm*M, N - количество возможных потоков с зеркала m, M - количество зеркал. Внимание! Нам нужно настроить лишь количество потоков (секций), нам не нужно удостоверяться, что все они закачиваются!
3) Теперь мы запустим закачку и убедимся, что N секций для каждого из уже используемых M зеркал начали закачиваться, а следующая за ними - нет. В ней должна отображаться информация о том, что она будет перезапущена через столько-то секунд. Теперь вернёмся к Proxomitron'у и нажмём "Headers". Щелкнем на "URL: Alias Redirector (Out)" (необходимо убедиться, что слева стоит галочка) и нажмём справа "Edit". Внизу будет строка "Replacement text", в ней что-вроде "$RDIR( ... )". Вместо троеточия нам нужно поставить URL следующего зеркала. Нажимаем "OK", затем "Apply", затем снова "OK" и, наконец, "Bypass" (кнопка должна стать ненажатой, если она уже ненажатая - то не трогайте, а если была ненажатая, но тронули и стала нажатой - нажмите ещё раз). Теперь ждём несколько секунд и следующие Nm секций начнут закачиваться!
4) Если остались ещё неиспользванные зеркала - повторяем пункт 3.
5) Если закачка оборвалась, то нужно приостановить закачку, сделать заново "Bypass" в Proxomitron'е, возобновить закачку, дождаться возобновления закачки с первого зеркала, вернуться к пункту 3 для следующих зеркал.
Таким образом, всё не так уж сложно и, тем более, не печально. Надеюсь, факт того, что способ найден и без их участия убедит разработчиков всё-же сделать весь процесс удобнее.
И да, на последок: при использовании этого метода не нужно прописывать никакие зеркала в настройках закачки на вкладке "зеркала".
Ещё одно: в разных версиях Proxomitron настройки могут называться по-разному, но смысл будет тот же. Используемая мною версия - Naoko 4.5 (2003-6-1), в ней всё будет точно так, как я сказал.
И да, если моя инструкция не вызовет ненависти - могу сделать скриншоты. Только скажите мне, скриншоты каких участков инструкции рекоммендуется сделать.
Почитав форум я понял, что множество пользователей хотят, чтобы в Download Master была включена возможность закачки с нескольких зеркал одновременно. Моё личное мнение - это была бы очень удобная функция, но её можно реализовать и без доплнительных усилий со стороны разработчиков. И я готов предоставить решение.
Давайте разберёмся в том, что нам нужно сделать. Когда мы думаем, что необходимо "научить" программу скачивать одновременно с нескольких зеркал, мы подразумеваем следующее: у нас есть несколько ссылок, по которым разными серверами выдаётся абсолютно идентичный файл.
Подумаем над словосочетанием "разными серверами". Раз сервера различаются - то различаются и URL (ссылки) на закачку, будь они с цифровым IP или же с именем домена - это не играет роли, они всё-равно будут разные. Словосочетание "разными серверами" оговорит наше первое действие:
1) Мы подготовим перехват соединения и подмену URL с одного сервера на другой. Чтобы перехватить соединение можно использовать различные программы, я приведуь в пример одну, которую использую сам: Proxomitron. Скачать его можно отсюда: http://www.proxomitron.ru/download.htm. Нам надо будет сделать две вещи: настроить Proxomitron и настроить Download Master. Начну со второго. Proxomitron слушает по-умолчанию локально на вашем компьютере порт 8080 в качестве прокси-сервера. Следовательно, нужно указать Download Master'у работать через прокси-сервер 127.0.0.1:8080. Далее мы настроем Proxomitron. В первую очередь убедимся, что в главном окне нажата кнопка "Bypass", затем снимем все доступные по кнопне "Web Page" настройки - они нам не понадобятся, но могут нарушить закачку и снимем все галочки в "Headers", кроме "URL: Alias Redirector (Out)". Пока оставим Proxomitron в покое, но мы ещё к нему вернёмся.
Второе ключевое слово здесь - несколько. Это слово оговорит наши следущие действия:
2) Мы настоим закачку так, чтобы она шла в несколько потоков. Точное количество потоков расчитывается по простой формуле Nm*M, N - количество возможных потоков с зеркала m, M - количество зеркал. Внимание! Нам нужно настроить лишь количество потоков (секций), нам не нужно удостоверяться, что все они закачиваются!
3) Теперь мы запустим закачку и убедимся, что N секций для каждого из уже используемых M зеркал начали закачиваться, а следующая за ними - нет. В ней должна отображаться информация о том, что она будет перезапущена через столько-то секунд. Теперь вернёмся к Proxomitron'у и нажмём "Headers". Щелкнем на "URL: Alias Redirector (Out)" (необходимо убедиться, что слева стоит галочка) и нажмём справа "Edit". Внизу будет строка "Replacement text", в ней что-вроде "$RDIR( ... )". Вместо троеточия нам нужно поставить URL следующего зеркала. Нажимаем "OK", затем "Apply", затем снова "OK" и, наконец, "Bypass" (кнопка должна стать ненажатой, если она уже ненажатая - то не трогайте, а если была ненажатая, но тронули и стала нажатой - нажмите ещё раз). Теперь ждём несколько секунд и следующие Nm секций начнут закачиваться!
4) Если остались ещё неиспользванные зеркала - повторяем пункт 3.
5) Если закачка оборвалась, то нужно приостановить закачку, сделать заново "Bypass" в Proxomitron'е, возобновить закачку, дождаться возобновления закачки с первого зеркала, вернуться к пункту 3 для следующих зеркал.
Таким образом, всё не так уж сложно и, тем более, не печально. Надеюсь, факт того, что способ найден и без их участия убедит разработчиков всё-же сделать весь процесс удобнее.
И да, на последок: при использовании этого метода не нужно прописывать никакие зеркала в настройках закачки на вкладке "зеркала".
Ещё одно: в разных версиях Proxomitron настройки могут называться по-разному, но смысл будет тот же. Используемая мною версия - Naoko 4.5 (2003-6-1), в ней всё будет точно так, как я сказал.
И да, если моя инструкция не вызовет ненависти - могу сделать скриншоты. Только скажите мне, скриншоты каких участков инструкции рекоммендуется сделать.