Aria2c - 如何下载大量文件和输出为.pdf,1.pdf,2.pdf ......?

时间:2014-12-21 02:40:54

标签: terminal download aria2

我在这里遇到一点问题。我使用着名的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 个答案:

答案 0 :(得分:4)

好的,让我们从包含PDF的URL的pdfs.txt文件开始:

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

我引入了一个小帮助脚本,将pdfs.txt文件中的URL转换为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