5

Я ищу решение между прокси и wget , поскольку ни один из них не решает полностью проблему, которую пытаюсь решить.

Я хочу загружать файлы в определенный каталог на моем домашнем компьютере (сервер Linux - только из командной строки) из удаленных мест (через смартфон, веб-браузер и т.д.). Это звучит как решение для wget , за исключением того, что многие файлы, которые я загружал, приходят из источников, которые создают для вас специальные "сессии" загрузки через AJAX/Javascript (например, Uploaded.net, Mega.nz).

Я предполагаю, что мне придется использовать прокси-сервер в какой-то момент в этом процессе, но я не хочу, чтобы загружаемые данные вообще попадали на мое удаленное устройство, так как это привело бы к потере пропускной способности. Но использование прокси-сервера для доступа к сайтам и создания сессий будет работать для меня.

Итак, решения, которые не работают (по крайней мере, из коробки):

  • Удаленный рабочий стол: только Windows
  • VNC: у меня есть доступ только из командной строки; Кроме того, не очень дружат со смартфонами и тому подобным
  • wget: ссылки на скачивание обычно существуют только для "сессии"; очень сложно эмулировать среду AJAX для сайтов
  • прокси: отправляет все данные удаленному клиенту; монтирование удаленного каталога приведет к тому, что для данных потребуется три прыжка (сайт на прокси, сервер / прокси на клиент, клиент на удаленный каталог). Я ищу прямой (сайт в удаленный каталог) маршрут для загрузки.

В моем идеальном мире я предполагаю просмотр сайта через прокси-сервер, но затем, когда браузер классифицирует что-то как «Загрузка», он просто загружает в удаленный каталог (или даже открывает диалоговое окно «Сохранить файл» и позволяет мне выбрать место для сохранения). это на удаленном сервере). Решение не должно иметь такой уровень простоты, но, надеюсь, это поможет прояснить суть моего вопроса.

7 ответов7

4

У wget есть опции для сохранения и загрузки файлов cookie. Иногда, в зависимости от сайта, если вы используете wget для загрузки веб-страницы, на которой находится ссылка, и указываете ей сохранять файлы cookie, то сделайте еще один запрос для фактического файла и загрузите файлы cookie, которые будут работать.

Это двухэтапный процесс, подобный этому:

wget --cookies=on --keep-session-cookies --save-cookies=cookie.txt http://domain.com/page_with_link.html
wget --referer=http://domain.com/page_with_link.html --cookies=on --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt http://domain.com/some_file_to_download.zip
1

Для моих нужд я остановился на JDownloader, Java-приложении с открытым исходным кодом для обработки загрузок с различных сайтов, включая прямые загрузки HTTP. Он обрабатывает таймеры ожидания страницы и представляет мне капчи, когда мне нужно их решить.

У него приятный графический интерфейс, но у меня он работает без головы (без графического интерфейса) на моем сервере и взаимодействует с ним через веб-интерфейс JDownloader или приложение для Android, что означает, что я могу инициировать загрузку из любого браузера или даже с моего телефона.

Это все еще не работает идеально с некоторыми сайтами, но это, конечно, работало хорошо для меня в целом. На мой взгляд, приложение для Android имеет еще лучший интерфейс, чем браузер сайта.

0

Перейдите по адресу и загрузите файл со ссылками через соединение SSH. Экран GNU также можно использовать для завершения загрузки без открытого соединения SSH.

0

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

Если вы не возражаете против графического интерфейса, я бы посоветовал взглянуть на Slimrat

0

У вас есть следующие варианты:

  • запустить виртуальную машину на удаленном сервере, установить свою любимую ОС на ВМ и запустить свой любимый браузер через графическую консоль ВМ, доступ к которой осуществляется по протоколу удаленного рабочего стола, поддерживаемому программным обеспечением ВМ (например, VirtualBox может быть доступен с помощью rdesktop), необязательно, через SSH,
  • запускать ваш любимый браузер непосредственно на сервере через удаленный протокол X, опционально туннелируемый через SSH (также целесообразно использовать опцию сжатия SSH),
  • запустить текстовый браузер (например: lynx) через SSH (опционально на экране),
  • запустить тупой HTTP-клиент (например: wget, curl) через SSH (опционально на экране),
  • запустите HTTP-прокси (например, squid) с нестандартными настройками: вам, вероятно, придется увеличить максимально допустимый размер файла, который будет храниться на диске, и целесообразно уменьшить предел прерывания (точка, в которой прокси будет завершите загрузку, даже если клиент прервал загрузку, чтобы вы могли запустить загрузку, а затем остановить клиент заранее и позволить прокси-серверу завершить работу),
  • написать свой собственный HTTP-клиент :)
0

Другой возможностью (помимо, возможно, пользовательского изменения ziproxy для добавления опции "сохранить эти типы локально") будет использование X-сервера.

Есть X-серверы для смартфонов, и для Windows тоже. Этот ответ намекает на HTTP-серверы X-клиента.

Таким образом, на вашем типичном смартфоне Android вы должны установить сервер Android X, а на Linux - простую тему браузера Firefox для небольших дисплеев. Теперь у вас есть локальный экран удаленного процесса, и любая загрузка будет происходить удаленно. Очень похоже на VNC, но дружелюбнее к смартфонам.

На устройствах с большим экраном вы все равно запускаете X-сервер, но на этот раз запускаете нормальный экземпляр Firefox.

-1

Установите сервер owncloud (https://owncloud.org/) на свой Linux-бокс и установите клиенты owncloud на свои устройства (смартфон, удаленный компьютер и т.д.). Конфиг, аутентифицируй и вуаля! Теперь вы можете сохранять загрузки на свой собственный диск с облаком ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .