upgrade 步骤,http.get 返回码302,提示下载失败
kaensoft opened this issue · 2 comments
今天尝试upgrade
exe文件上传放到服务器上了
发现新版本,第一次下载的时候,http返回的code是200,能正常下载成功并更新
但是,第二个人再被提示去更新的时候,返回的code是302
然后就下载失败了
不知道是不是服务器端nginx有缓存的原因?
把exe放到阿里的cdn上也是类似的302的问题
`http
.get(uri, res => {
if (res.statusCode < 200 || res.statusCode >= 300) return ev.emit('error', res.statusCode)
res.on('end', () => {
loadFile.end()
loadFile.destroySoon()
ev.emit('end', savePath)
})
res.on('error', err => ev.emit('error', err.message))
res.on('data', chunk => {
loadFile.write(chunk)
loaded += chunk.length
ev.emit('data', loaded / totalSize)
})
})
.on('error', err => ev.emit('error', err.message))
return ev`
这个种子项目没考虑重定向的情况下的包下载。
把exe放到阿里的cdn上也是类似的302的问题
是什么意思?nodejs 的请求不同于浏览器,没有那么多的缓存机制
恩,参考了下面链接里提到的方案
https://cnodejs.org/topic/504f7c501f186ae131021980
update.js里我添加了对302情况下的判断
从res.headers.location里拿到地址,再发起了一次http.get的请求,能下载到了
暂时可以解决问题
: )