【发布时间】:2017-02-24 04:29:40
【问题描述】:
我正在尝试从 Ubuntu 服务器上的外部网站下载 PDF 文件。
我的脚本在 Node.js 中运行,尽快完成下载很重要。
文件应该直接保存到磁盘上。我找到了两种方法来实现这一点...
-
使用 Node 的内置
http库,如下例所示。let file = fs.createWriteStream(path) http.get(url, response => response.pipe(file)) -
使用 Node 的
child_process库调用wget,如下所示。我也知道还有其他命令,例如curl可以使用。exec('wget -P ' + path + ' ' + url)
我知道这些示例可能是错误的编码,但仅用于说明。我还读到人们通常更喜欢使用 Node 的 http,因为它不使用任何外部库,所以更好。
但是,我只关心速度。我的问题是哪种方式下载文件最快?
我一直在查看https://www.hacksparrow.com/using-node-js-to-download-files.html,这表明wget 是最快的解决方案,但我不确定这个结论是如何得出的。
另外,这些方法是否有任何缺点(除了速度)?有没有其他我没有提到的方法?
谢谢! ????
【问题讨论】:
-
我的意思是...在您的情况下,速度的第一竞争者将与网络相关...所有方法都将受其控制。 #2 是磁盘 io,它会再次影响所有方法。
-
你是对的 - 但是我的网络连接速度很快。我想我也对哪个进程将使用最少的内存感兴趣。
-
另外,我不确定为什么我的问题被否决了。人们可以在这样做之前解释一下我如何改进它吗?
-
我告诉你我发现你的问题没有用,而且研究不充分也不会帮助你改进它。
-
如果您担心内存使用情况(这甚至与速度有关吗?)请查看每种方法如何使用内存来执行操作。
标签: javascript node.js http curl wget