批量下载pdf至本地问题
需要批量下载线上的pdf文档,我用download模块实现下载功能
var arr = [{
url: "http://pdf.dfcfw.com/pdf/H2_AN201803271111860450_1.pdf",
name: "601500通用股份2017年年度报告"
},
{
url: "http://pdf.dfcfw.com/pdf/H2_AN201803281112695091_1.pdf",
name: "601555东吴证券2017年年度报告"
}]
Promise.all(arr.map(x => download(x.url, 'dist',{filename:x.name+'.pdf'}))).then(() => {
console.log('files downloaded!');
}).catch((error)=>{
console.log(error)
})
在下载过程中,总会在下载二十几个或者四十个的时候停止,报如下错误
请问下有什么好的方式可以解决?
6 回复
目录不存在,fs-extra ensureFile
@MiYogurt 对啊,会在下载到一大半的时候,报这样的问题,不知道为啥
@MiYogurt 能提示一下何种情况会导致目录不存在?
不确定你准备下载的数量是多少,建议先控制一下并发数 具体做法可以是用bluebird的Promise.map(items, {concurrency: 20})这种
另外,这个就是全部代码了么?
@Shasharoman 找到原因了,命名问题,window系统文件命名不允许有< > / \ | : " * ?
,去掉就好了
看了报错,第一感觉就是文件名有问题。以前遇到过类似的坑。