upgrade_firmware 升级固件
POST /api/v1/system/upgrade_firmware
描述
升级固件接口,接口升级固件。这个方法执行以后会上传固件,上传完成就会返回,不会等待固件升级完成。
系统后台会升级固件,升级完成后,会等待6秒,然后会自动重启。
这个方法会检查固件文件是否正确,如果不正确会返回错误信息。
这个方法是异步方法,这个方法会在后台执行,不会等待固件升级完成。
在升级期间可以使用 upgrade_status 请求查看升级进度。由于升级完成后会留下6秒的检查窗口,所以在升级完成后6秒内调用这个接口会返回升级成功的信息。
危险
得到成功消息后表示系统进入正式升级流程,务必提醒用户系统正在升级,不要断电!!否则可能导致系统无法启动。
访问权限
需要登录,具备以下权限:
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--
提示
可以使用上传控件上传文件,也可以使用curl命令上传文件。 文件上传标准参考rfc1867
注意
只能包含一个上传文件,文件名会被忽略,文件内容会被校验读取 不能包含其他的参数。
升级文件格式为 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.error | 4 |
| 40006 | 上传配置文件设备不支持 | config.file.device.not.support | 4 |
提示
4 表示弹框提示错误信息。