2015-04-29 3 views
1

Я пытаюсь запустить команду для загрузки 3000 файлов параллельно. Я использую Cygwin + Windows.WGET игнорирует -content-disposition?

Загрузка одного файла с помощью WGET в терминале:

wget --no-check-certificate --content-disposition --load-cookies cookies.txt \ -p https://username:[email protected]/folder/document/download/1?type=file 

позволяет мне скачать файл с ID 1 сингулярно, в правильном формате (пока --content-disposition в команде).

Я повторяю этот вызов REST API, чтобы загрузить всю папку (3000 файлов). Это работает нормально, но довольно медленно.

FOR /L %i in (0,1,3000) do wget --no-check-certificate --content-disposition --load-cookies cookies.txt \ -p https://username:[email protected]/folder/document/download/%i?type=file 

Теперь я пытаюсь запустить программу в Cygwin параллельно.

seq 3000 | parallel -j 200 wget --no-check-certificate --content-disposition --load-cookies cookies.txt -p https://username:[email protected]/folder/document/download/{}?type=file 

Он работает, но имя файла и формат теряется (вместо "index.html", например, мы можем получить "[email protected]=file" как имя-файла).

Есть ли способ для меня исправить это?

ответ

0

Непонятно, что вы хотели бы назвать им. Давайте предположим, что вы хотите, чтобы они назвали:. Индекс [1-3000] .html

seq 3000 | parallel -j 200 wget -O index.{}.html --no-check-certificate --content-disposition --load-cookies cookies.txt -p https://username:[email protected]/folder/document/download/{}?type=file 

Я думаю, что это вызвано --content-диспозиции является экспериментальным, и wget используется CygWin может быть старше wget, используемый циклом FOR. Для того, чтобы проверить, что пробег:

wget --version 

в CygWin и вне CygWin (т.е. там, где вы бы запустить цикл.).

Смежные вопросы