Скачивание нескольких файлов с помощью curl с разными прокси


0

Я пытаюсь загрузить несколько URL-адресов из разных доменов, используя разные прокси.

Он должен сделать все это в одной строке кода, запустив curl только один раз:

do shell script "curl --proxy 1.2.3.4:800 http://domain1.com/somefile.txt"
do shell script "curl --proxy 2.3.4.5:80 http://www.domain2.com/otherfile.png"
do shell script "curl --proxy 3.4.5.6:8080 http://domain3.com/file.jpg"
...

Это не удается:

do shell script "curl --proxy 1.2.3.4:800 2.3.4.5:80 3.4.5.6:8080 http://domain1.com/somefile.txt http://www.domain2.com/otherfile.png http://domain3.com/file.jpg"

Взяв код из ответа ниже, я попытался запустить

set url_list to "1.2.3.4:800 http://domain1.com/somefile.txt
2.3.4.5:80 http://www.domain2.com/otherfile.png
3.4.5.6:8080 http://domain3.com/file.jpg"

do shell script "xargs curl --proxy < " & url_list

но это тоже не получается.


Как не работает второй пример (сообщение об ошибке и т. Д.)? И на вопрос в целом: что вы ожидаете от запуска трех загрузок в одной строке кода? Вы хотите запустить их параллельно?
nohillside

Нет необходимости работать параллельно.

Какова мотивация иметь все это в «одной строке кода» тогда?
холме

Ответы:


2

Если у вас длинный URL или кратные символы, используйте вместо них xargs:

do shell script "xargs curl --proxy < url-list.txt"

URL-list.txt

1.2.3.4:800 http://domain1.com/somefile.txt
2.3.4.5:80 http://www.domain2.com/otherfile.png
3.4.5.6:8080 http://domain3.com/file.jpg

Не следует ли вам также перейти -L 1 -P 3к тому, xargsчтобы убедиться, что он curlвызывается правильно и что xargsзагрузка выполняется параллельно?
холме

@patrix, да, я бы так и opсделал , хотя в их исходной команде не было ни одного из этих аргументов - так что, возможно, они не хотели повторных попыток. Аргументы туннеля прокси необходимы, только если не используется протокол HTTP.
l'L'л

Я бы передавал их Xargs, а не скручивать.
холме

LOL, иронично, как эти аргументы все еще применимы к вопросу в аспекте curl - но да, xargs eof и output полезны, без сомнения и извините, я не заметил этого в вашем первоначальном комментарии.
l'L'л
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.