Загрузка файлов напрямую

toonel

Есть возможность указать браузеру использовать .pac файл. Файл этот предназначен для тонкой настройки использования прокси.

 

Предоставляемые возможности весьма широки, наиболее интересными в нашем случае представляется возможность анализа url (это то, что в адресной строке у браузера). Это даёт возможность исключить (или наоборот, включить) использование прокси (т.е. toonel) для того или иного сервера или, анализируя расширение файла, указывать браузеру не использовать (или использовать) toonel.

 

Итак, поставим задачу - исключить использование прокси для файлов, которые уже сжаты, например, архиватором RAR. Расширение у этих файлов .rar, если это однотомный архив, либо .rar, .r00, .r01, .r02 и т.д. для многотомных архивов.

 

Сам по себе .pac файл - это текстовый файл, маленькая программка на JavaScript. Если браузеру указать использовать .pac файл, то для каждого ресурса (странички, картинки, файла и пр.) он будет выполнять функцию под названием FindProxyForURL из указанного .pac файла.

 

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

 

Итак, открываем какой-нибудь текстовый редактор попроще (для Windows - Notepad, ни в коем случае не Word, т.к. это должен быть простой текстовый файл) и вставляем следующий код:

Код:

 

function FindProxyForURL(url, host)

{

   if( shExpMatch(url, "*.rar") )

   { return "DIRECT"; }

 

   return "PROXY 127.0.0.1:8080";

 

разбор функции:

1-я строчка - название функции FindProxyForURL. url - это переменная, наша строка для анализа. Например, если нам нужно загрузить текущую версию toonel, то строчка будет http://www.toonel.net/generic/005050/toonel.jar - это видно в адресной строке браузера при загрузке файла toonel.jar

2-я строчка переводится так - "если url заканчивается на .rar, то переходим к следующей строчке, иначе следующую строчку пропускаем".

3-я строчка - возвращаем указание браузеру использовать прямое (DIRECT) соединение, т.е. не использовать прокси. На этом выполнение функции заканчивается и всё, что написано ниже, выполняться не будет.

4-я строчка - если url заканчивается как-либо иначе, то возвращаем указание браузеру использовать прокси 127.0.0.1 порт 8080.

 

Сохраняем этот файл где-нибудь на диске и назовём его, скажем, nozip.pac.

Следующий шаг - указать браузеру использовать этот файл. Для этого идем в настройки браузера, там, где указывается использование прокси.

Ставим галку "use automatic configuration script" (или похоже) и в строке вводим путь к нашему файлу.

 

Для Opera это может выглядить так:

Код:

 

c:\toonel\nozip.pac

 

 

Для FireFox:

Код:

 

file://с:/toonel/nozip.pac

 

 

Для IE:

Код:

 

file://с:/toonel/nozip.pac

 

 

Некоторые браузеры требуют, чтобы их закрыли и запустили опять.

Теперь можно загрузить какой-нибудь .rar файл из интернета и убедиться, что файл загружается напрямую, минуя toonel.

 

Чтобы таким же образом обрабатывать не только первый том в архиве (.rar), но и последующие (.r00 т.д.), необходимо дополнить наш .pac файл.

 

Открываем его в текстовом редакторе и исправляем, чтобы он выглядел следующим образом:

Код:

 

function FindProxyForURL(url, host)

{

   if( shExpMatch(url, "*.rar") )

   { return "DIRECT"; }

   if( shExpMatch(url, "*.r00") )

   { return "DIRECT"; }

 

   return "PROXY 127.0.0.1:8080";

 

То есть мы просто добавили проверку для расширения .r00 сразу же после проверки .rar. Таким же образом добавляются другие расширения - .exe, .zip и т.д.:

 

Код:

 

function FindProxyForURL(url, host)

{

   if( shExpMatch(url, "*.rar") )

   { return "DIRECT"; }

   if( shExpMatch(url, "*.r00") )

   { return "DIRECT"; }

   if( shExpMatch(url, "*.zip") )

   { return "DIRECT"; }

   if( shExpMatch(url, "*.exe") )

   { return "DIRECT"; }

 

   return "PROXY 127.0.0.1:8080";

}

 

Замечание

Следует заметить, что обязательно соблюдать регистр (маленькие-большие буквы - важно!) и не ставить вместо двойных кавычек одинарные.

 

Если есть навыки программирования - рекомендуется почитать о .pac файлах, что они могут и что не могут - например, раньше на их основе делали блокировку рекламы.

 

Другим способом загрузки каких-либо файлов минуя toonel является использование Proxomitron в паре с toonel.

 

Замечание

Пользователям IE обязательно читать http://support.microsoft.com./default.aspx?id=271361