Скачивание нескольких файлов с помощью 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

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

LIS2
источник
Как не работает второй пример (сообщение об ошибке и т. Д.)? И на вопрос в целом: что вы ожидаете от запуска трех загрузок в одной строке кода? Вы хотите запустить их параллельно?
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'L'л
источник
Не следует ли вам также перейти -L 1 -P 3к тому, xargsчтобы убедиться, что он curlвызывается правильно и что xargsзагрузка выполняется параллельно?
холме
@patrix, да, я бы так и opсделал , хотя в их исходной команде не было ни одного из этих аргументов - так что, возможно, они не хотели повторных попыток. Аргументы туннеля прокси необходимы, только если не используется протокол HTTP.
l'L'л
Я бы передавал их Xargs, а не скручивать.
холме
LOL, иронично, как эти аргументы все еще применимы к вопросу в аспекте curl - но да, xargs eof и output полезны, без сомнения и извините, я не заметил этого в вашем первоначальном комментарии.
l'L'л