Aria2c - как скачать много файлов и выводить как 0.pdf, 1.pdf, 2.pdf ...?

У меня тут небольшая проблема. Я использую известный загрузчик файлов Aria2C, и у меня есть список ссылок, которые мне нужно скачать. Я знаю, что могу использовать:

aria2c -o myOutputFile.exe http://www.fooBar.com/fooBarVirus.exe

скачать один файл и назвать его как myOutputFile.exe, Проблема в том, что я должен загрузить некоторые файлы и назвать их как 0.pdf, 1.pdf, 2.pdf, 3.pdf... потому что я соберу все эти PDF-файлы позже.

Я постараюсь объяснить лучше. Если я дам следующие ссылки на aria2c:

http://www.fooBar.com/myPDF.pdf
http://www.fooBar.com/kindness.pdf
http://www.fooBar.com/crazyPdf.pdf
...
http://www.fooBar.com/myLastPdf.pdf

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

Давайте предположим, что я даю Aria2C предыдущие ссылки. Следующий вывод будет правильным для моей проблемы:

 Time: 0
 Link: http://www.fooBar.com/crazyPdf.pdf
 Filename: 2.pdf

 Time: 1
 Link: http://www.fooBar.com/myPDF.pdf
 Filename: 0.pdf

 Time: 2
 Link: http://www.fooBar.com/kindness.pdf
 Filename: 1.pdf

 ...

 Time: N
 Link: http://www.fooBar.com/myLastPdf.pdf
 Filename: N.pdf

Я знаю, что это запутанный вопрос, поэтому, если у вас есть какие-либо сомнения, пожалуйста, оставьте комментарий, и я постараюсь ответить как можно скорее. Спасибо!

1 ответ

Хорошо, давайте начнем с pdfs.txt файл, содержащий URL-адреса для PDF-файлов:

http://www.fooBar.com/myPDF.pdf
http://www.fooBar.com/kindness.pdf
http://www.fooBar.com/crazyPdf.pdf
http://www.fooBar.com/myLastPdf.pdf

Я добавляю небольшой вспомогательный скрипт, чтобы превратить URL из pdfs.txt файл в формат файла, который принимает Aria2c. Скрипт использует числовой индекс URL в массиве в качестве нового имени файла для PDF.

<?php
$urls = __DIR__ . '/pdfs.txt';
$downloads = file($urls);

$targetFolder = __DIR__; // define your taget folder
$ariaDownloadList = '';
foreach($downloads as $idx => $url)
{
    $pdfName = $idx . '.pdf'; // 0.pdf ... N.pdf

    // add new download entry
    $ariaDownloadList .= $url;
    $ariaDownloadList .= '  dir=' . pathinfo($targetFolder, PATHINFO_DIRNAME) . PHP_EOL;
    $ariaDownloadList .= '  out=' . $pdfName . PHP_EOL;
}

file_put_contents('ariaDownloadsFile.txt', $ariaDownloadList);

Это выводит файл ariaDownloadsFile.txt со следующим содержанием:

http://www.fooBar.com/myPDF.pdf
  dir=C:\pdfs
  out=0.pdf
http://www.fooBar.com/kindness.pdf
  dir=C:\pdfs
  out=1.pdf
http://www.fooBar.com/crazyPdf.pdf
  dir=C:\pdfs
  out=2.pdf
http://www.fooBar.com/myLastPdf.pdf  
  dir=C:\pdfs
  out=3.pdf

Затем просто запустите следующую команду:

aria2c -i ariaDownloadsFile.txt
Другие вопросы по тегам