解决Server doesn‘t support Accept-Ranges问题

Cannot download differentially, fallback to full download: Error: Server doesn't support Accept-Ranges (response code 200)

解决方案

修改nginx配置文件支持Accept-Ranges(范围请求)

server
{
    ...
    location ^~/ {
        default_type multipart/byteranges;
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS,PUT';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
        # 支持范围请求
        add_header Accept-Ranges bytes;
        proxy_pass   http://127.0.0.1:5000/;
        proxy_set_header x-forwarded-for  $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

分段请求和差异更新

useMultipleRangeRequest(分段请求)

useMultipleRangeRequest 是 Electron 更新机制中的一个配置选项,用于控制是否启用多段请求(Multiple Range Requests)来下载更新内容。

  • 当启用时,更新程序会通过多个分段请求(Range: bytes=x-y)来下载更新内容,而不是一次性下载整个文件。这种方式可以提高下载效率,尤其是在网络不稳定或文件较大的情况下。

  • 如果服务器不支持多段请求(例如某些服务不支持 Content-Type: multipart/byteranges),则需要禁用此选项。

differentialPackage(差异更新

differentialPackage 是 Electron 构建工具(如 electron-builder)中的一个配置选项,用于启用差异更新(Differential Updates)。

  • 差异更新通过对比新旧版本的文件内容,只下载发生变化的部分,从而减少更新包的大小和下载时间。

  • 这种方式通常通过 blockmap 文件实现,blockmap 文件记录了文件的分块信息(如哈希值和大小),用于确定需要下载的更新内容。

配置示例:

修改main.js文件:
autoUpdater.useMultipleRangeRequest = false;
autoUpdater.differentialPackage = false;
修改package.json:
{
  "publish": [
    {
      "provider": "generic",
      "url": "http://127.0.0.1:5000/updates",
      "useMultipleRangeRequest": false
    }
  ],
  "nsis": {
    "differentialPackage": false
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值