Categories: Perl

depositfiles-curl-upload/

Что-то давненько я не писал в блог, верно? В этой заметке я расскажу, как можно закачивать файлы на depositfiles.com с помощью утилиты curl.

Небольшая справка. DepositFiles.com — это файловый хостинг, позволяющий закачивать файлы размером до 2 Гб на достаточно хорошей скорости, при этом файл хранится практически вечно (если его кто-нибудь скачивает хотя бы раз в месяц). Для пользователей, не имеющих платного аккаунта (цена — 12wmz в месяц), действует ограничение на число скачиваний с одного IP. Также система имеет неплохую партнерскую программу. В общем, достаточно приятный сервис.

Curl — бесплатная утилита для работы с протоколами HTTP, FTP , SCP, TELNET и другими. С ее помощью, к примеру, можно послать POST-запрос на веб-сервер или скачивать файлы по FTP. Curl поддерживает SSL, кукисы, аутентификацию и другие полезные вещи. Работает как под UNIX, так и под Windows . Скачать можно отсюда . Пользователи FreeBSD могут поставить ее из портов — /usr/ports/ftp/curl. Вообще-то, я бы предпочел использовать утилиту wget, но она не поддерживает multipart/form-data формы.

Заходим на depositfiles.com, смотрим html-код страницы и ищем в нем форму для отправки файлов. У меня она выглядела так:

Тут мы видим достаточно много аргументов, но на практике, как выяснилось, достаточно отправить только один из них:

< div >< input type = «file» size = «51» name = «files» class = «file» / >< / div >

Немного покурив в man-page утилиты curl, я выполнил такую команду:

curl -F «files=@path/to/my/file» http: // fileshare261.depositfiles.com / ru / FS261-3u / ?X-Progress-ID=4e12cc6de5c56ee0d40fed3f8d73f21c

Адрес для отправки формы тут скопирован из атрибута action формы. В ответ был получен примерно такой ответ (id файла заменен):

<!DOCTYPE HTML PUBLIC «-//W3C//Dtd HTML 4.01 transitional//EN»>
< html >
< body >
< script >
try{

document.domain = ‘depositfiles.com’;
parent.ud_download_url = ‘http://depositfiles.com/files/abcdefghi’;
parent.ud_delete_url = ‘http://depositfiles.com/ru/rmv/01234567’;
parent.ud_download_url_truncated = ‘http://depositfiles.com/files/abc’;
parent.upload_done();

}catch(err){}
< / script >
< / body >
< / html >

Как видите, тут все достаточно просто и написать скрипт на Perl для автоматической загрузки не представляет собой проблему. Я написал 4 скрипта для загрузки файлов на depositfiles.com, rapidshare.[com|ru] и hotfile.com. Находятся они в этом архиве .

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

admin

Share
Published by
admin
Tags: Perl

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago