问题描述
我要:
- 下载大型zip文件(
curl
) - 如果#1成功,则将文件解压缩到目标目录(
unzip
) - 如果#2成功,则删除文件(
rm
)
我正在编写一个简单的nodejs
脚本来完成上述操作,并为此使用了child_process.execSync
。
const execSync = require('child_process').execSync
execSync(`curl --output ${source} ${target}`)
execSync(`unzip -q ${target} -d ${target-dir}`)
execSync(`rm ${target}`)
我正在使用*sync
的{{1}}版本来确保事情按顺序进行。由于这些过程运行时间长(内部包含大量文件的大型zip存档),因此我希望随着时间的推移能够取得进展。我既可以使用exec
之类的东西,也可以使用npm progress
和curl
来显示进度,所以我不介意仅使用它。我该如何实现这一目标?
更新:这是我到目前为止已经尝试过的方法。我可以获得下载的进度条,但是我一直呆滞在unzip
的空白屏幕上(这需要花费很长时间,因为存档非常大)。我可以简单地执行unzip
,而无需使用静默选项unzip
,但随后我会得到每个压缩文件的清单。我不要我只想要一个进度条。我尝试使用节点模块q
和其他类似的模块,但是它们不起作用。
unzip
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)