Skip to main content

upgrade_firmware 升级固件

POST /api/v1/system/upgrade_firmware

描述

升级固件接口,接口升级固件。这个方法执行以后会上传固件,上传完成就会返回,不会等待固件升级完成。

系统后台会升级固件,升级完成后,会等待6秒,然后会自动重启。

这个方法会检查固件文件是否正确,如果不正确会返回错误信息。

这个方法是异步方法,这个方法会在后台执行,不会等待固件升级完成。

在升级期间可以使用 upgrade_status 请求查看升级进度。由于升级完成后会留下6秒的检查窗口,所以在升级完成后6秒内调用这个接口会返回升级成功的信息。

danger

得到成功消息后表示系统进入正式升级流程,务必提醒用户系统正在升级,不要断电!!否则可能导致系统无法启动。

访问权限

需要登录,具备以下权限:

system:upgrade_firmware

上传配置文件

使用multipart/form-data格式上传文件。

采用文件上传的方式:

POST /api/v1/system/upgrade_firmware HTTP/1.1
Host: <ip>:<port>
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-length: 12345

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="firmware.bin"
Content-Type: application/octet-stream
file content, binary data, not shown here
------WebKitFormBoundary7MA4YWxkTrZu0gW--
tip

可以使用上传控件上传文件,也可以使用curl命令上传文件。 文件上传标准参考rfc1867

warning

只能包含一个上传文件,文件名会被忽略,文件内容会被校验读取 不能包含其他的参数。

升级文件格式为 tag.gz 格式。升级文件内容:

  • flash.version.bin 升级的固件文件,文件名包含版本号;
  • flash.version.md5 升级的固件文件的md5值,用于检验文件完整性;
  • type.txt 文件内容为设备型号,用于检验设备是否支持升级;
  • hook.sh 可选的升级的脚本文件,用于升级前后的操作;一般用于特殊升级操作,如升级前后的备份和恢复操作。

响应结果

请求返回的HTTP状态码为200

返回结果为JSON格式的数据,您可以通过解析JSON数据来获取API调用的结果信息。结构如下:

{
"success": true|false,
"errorCode"?: "option string",
"errorMessage"?: "option string",
"showType"?: 0|1|2|4|9,
"traceId"?: "option string"
}

正确结果示例:

{
"success": true
}

错误结果示例, 返回false时候需要带上错误码和错误信息:
```json
{
"success": false,
"errorCode": "40000",
"errorMessage": "no.blank.params",
}

错误码

错误码说明错误信息显示类型
40005上传配置文件格式错误config.file.format.error4
40006上传配置文件设备不支持config.file.device.not.support4
tip

4 表示弹框提示错误信息。