upgrade.lua
[返回首页]

API说明

固件升级

参数

HTTP提交参数:POST

通过HTTP测试该API调用 (URL):

升级固件需要通过HTTP POST multipart/form-data方式,将待升级的固件文件上传至设备。

有关 HTTP POST multipart/form-data的细节,请参考 HTTP/1.1 (rfc 2616)。基本原则是:

HTTP头部,Content-Type应该为 multipart/form-data; boundary=<Boundary-flag,该标志由用户自行选择>


HTTP的POST内容,格式为:

<Boundary-flag,这个与 Content-Type 中定义的Boundary-flag一致>

Content-Disposition: form-data; name="form-name"; filename="原始上传文件的文件名"

Content-Type: application/octet-stream


<二进制文件内容>

<Boundary-flag, 与前面的Boundary-flag一致,代表结束>

返回

返回JSON格式的结果。该JSON数据的格式如下:

{
/*对象*/

"Result":
数值

200表示OK, 其它错误码含义类似于HTTP Response.

"Status":
"字符串"

状态消息。反馈API执行的结果状态,如有错误,将描述出错的原因。

"Data": {
/*对象*/

升级返回细节信息

"ErrorTag":
"字符串"

除Status描述的错误消息外,此Tag可以体现升级结果(或错误)的具体情况,这可能包括:

upload.save-fail

保存上传的固件文件失败

extract.fail

展开固件文件时出错

precheck.exec-fail

在执行固件升级的预检查时出现错误,无法执行预检查

precheck.type-mismatch

不兼容(不适用于该产品)的固件

precheck.insuf-mem

内存不足,不能进行升级

precheck.insuf-space

存储空间不足,不能进行升级

precheck.version-mismatch

升级的固件要求基于某个之前版本,但实际的版本不能符合升级要求

preupgrade.exec-fail

在执行升级前的准备动作时失败

preupgrade.error

执行升级前的准备工作出错,不能升级

done

成功

"Requirement":
"字符串"

执行完本次上传固件的动作后,要求进一步采取的行动:

reboot

重启设备(目前,一般情况下上传固件成功,会要求本动作。因此,您将需要调用API reboot.lua来完成重启)

reset

快速复位设备(如果返回该值,表示需要您调用API reset.lua来快速复位编码来完成升级)

none

不需要额外动作

}
}

说明

注意:上传固件的过程受文件的大小、网络速度的影响,可能为数秒至数十秒,与其它API不同,您必须在等待API响应结果时控制一个合理的超时值,建议超时值至少不低于30秒,否则可能造成升级不成功。

其它说明

Device HTTP API, v1.0