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