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

Pal*_*ini 2 terminal download aria2

我在这里有一个小问题。我正在使用著名的Aria2C文件下载器,并且列出了需要下载的链接。我知道我可以使用:

aria2c -o myOutputFile.exe http://www.fooBar.com/fooBarVirus.exe
Run Code Online (Sandbox Code Playgroud)

下载一个文件并命名为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
Run Code Online (Sandbox Code Playgroud)

我必须下载这些文件,并将其命名为按链接插入顺序排序的整数序列。我的意思是文件名与链接顺序有关,但是我不需要按顺序下载它们

假设我给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
Run Code Online (Sandbox Code Playgroud)

我知道这是一个令人困惑的问题,因此,如果您有任何疑问,请发表评论,我会尽快尝试回答。谢谢!

Jen*_*och 5

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

http://www.fooBar.com/myPDF.pdf
http://www.fooBar.com/kindness.pdf
http://www.fooBar.com/crazyPdf.pdf
http://www.fooBar.com/myLastPdf.pdf
Run Code Online (Sandbox Code Playgroud)

我放入了一个小帮手脚本,将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);
Run Code Online (Sandbox Code Playgroud)

这将输出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
Run Code Online (Sandbox Code Playgroud)

然后只需运行以下命令:

aria2c -i ariaDownloadsFile.txt
Run Code Online (Sandbox Code Playgroud)