const writer = fsx.createWriteStream(file)
axios
.get(url, {
responseType: 'stream',
...options
})
.then((res) => {
res.data.pipe(writer)
writer.on('error', (err) => {
utils.log(`download error`, err)
reject(err)
})
writer.on('finish', (res) => {
utils.log(`download finish`, res)
resolve(res)
})
writer.on('close', (err) => {
utils.log(`download close`, err)
})
res.data.on('error', (err) => {
utils.log(`download error2`, err)
})
res.data.on('end', (err) => {
utils.log(`download end`, err)
})
res.data.on('aborted', (err) => {
utils.log(`download aborted`, err)
})
res.data.on('close', () => {
if (res.request.aborted) {
utils.log('download aborted')
} else {
utils.log('download completed')
}
})
})
[info] download aborted undefined
[info] download end undefined
[info] download completed
[info] download finish undefined
[info] download close undefined
1
ntedshen 82 天前 1
aborted 是 nodejs 的 http 或者 https 报的,看起来是服务器超时。。。
网太烂以至于传输 0kb 。。。这不就是超时么。。。 话说虽然我有自己的 curl 库但是网烂的情况下我都宁可套个 exec aria2 。。。 |
2
David2077 OP 我上面响应头里返回的 timeout 设置的是 5s ,这里的流的超时也是 5s 么大佬
|