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 2024-10-03 19:18:15 +08:00 ![]() aborted 是 nodejs 的 http 或者 https 报的,看起来是服务器超时。。。 网太烂以至于传输 0kb 。。。这不就是超时么。。。 话说虽然我有自己的 curl 库但是网烂的情况下我都宁可套个 exec aria2 。。。 |
![]() | 2 David2077 OP 我上面响应头里返回的 timeout 设置的是 5s ,这里的流的超时也是 5s 么大佬 |
![]() | 3 sujin190 2024-10-03 22:18:49 +08:00 via Android ![]() @< href="/member/David2077">David2077 看起来像是响应超时 5s ,读超时应该有另外的吧 |