Вход

Просмотр полной версии : Загрузка файлов с url через wget с аутентификацией


feelz
12.05.2018, 11:06
Доброго времени суток, господа. Пишу серверное приложение, совсем недавно начал знакомство с Node.js.
Нужно реализовать загрузку файлов с конкретного url, но с автовводом аутентификационных данных, в том числе с доменом. Если на обычном wget можно ввести параметры вроде --http=user --http=password, то как присвоить эти опции в нодовские модули wget-improved или wget, найти не удалось. Такие параметры есть только для прохождения прокси, но это явно не то.
Кто сталкивался с решением подобного или альтернативным вариантом, буду весьма признателен.

EmperioAf
12.05.2018, 15:43
Здравствуйте.
wget-improved использует модули http/https для скачивания (метод request)
из параметров позволяет передать в опциях только поле auth: string /* user:password */, при этом это будет базовая авторизация, если вам нужна какая-то другая авторизация, то модуль не подойдет, потому что в функции download вызывается request(функция данного модуля) так:

...
req = request({
protocol: srcUrl.protocol,
host: srcUrl.hostname,
port: srcUrl.port,
path: srcUrl.pathname + (srcUrl.search || ""),
proxy: options?options.proxy:undefined,
auth: options.auth?options.auth:undefined,
method: 'GET'
}...



модуль node-wget для скачивания использует модуль request, при этом параметр options передается как он есть в функцию request, так что тут вас никак модуль не ограничивает в возможностях аутентификации, почитать что именно принимает request в качестве параметров вы можете ЗДЕСЬ (https://github.com/request/request)