V2.1 Create Firmware File¶
为一个产品创建固件。
该 API 支持在 EnOS 2.2.0 及以上环境中使用。
操作权限¶
使用此 API 前,确保服务账号已被授予包含下列服务和操作权限的策略。有关授权服务账号的更多信息,参见 管理服务账号。
需授权的服务 |
所需操作权限 |
---|---|
固件 |
Create |
前提条件¶
确保已创建所需产品。
请求格式¶
POST https://{apigw-address}/connect-service/v2.1/ota-firmwares?action=create
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织 ID。如何获取 orgId 信息>> |
productKey |
Query |
可选 |
String |
产品的 Product key。如何获取 productKey 信息>> |
请求参数(Body)¶
请求 Body 的格式为 multipart/form-data,由两个 form-data 组成:
固件元数据的 form-data
固件文件的 form-data
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
Content-Disposition |
必需 |
Content-Disposition: form-data; name=”metadata” |
|
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
name |
必需 |
StringI18n |
固件国际化名称,同一产品下的固件名称不得重复。结构参见 国际化名称结构体。 |
version |
必需 |
String |
固件版本。前往 OTA 升级 > 固件管理 中 版本号 列查看固件版本号。 |
signMethod |
必需 |
String |
固件文件的签名算法,支持 |
sign |
必需 |
String |
固件文件签名。 |
desc |
可选 |
String |
固件描述 |
enableVerification |
必需 |
Boolean |
固件用于升级任务时是否必须验证过。 |
firmwareTags |
可选 |
Map(Key 和 Value 为 string) |
固件的标签。标签键必需是唯一。标签的作用与表示方法>> |
maxAllowedForVerification |
可选 |
Integer |
用来验证固件的最大设备数量。该值必须大于或等于 1。 |
minSuccessForVerified |
可选 |
Integer |
为通过固件验证任务,成功验证设备的最小数量。该值必须大于或等于 1,且不能大过 |
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
Content-Disposition |
必需 |
Content-Disposition: form-data; name=”file”; filename=”yourFileName” |
|
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
FirmwareCreateResult结构体 |
已创建的固件 ID。结构体的结构见下表。 |
FirmwareCreateResult 结构体¶
名称 |
数据类型 |
描述 |
---|---|---|
firmwareId |
String |
创建成功的固件 ID。 |
错误码¶
代码 |
错误信息 |
描述 |
---|---|---|
24601 |
Firmware version already exists |
具有此版本的固件已存在。 |
24602 |
Firmware name already exists |
具有该名称的固件已存在。 |
24603 |
Not allowed to create firmware concurrently |
无法同时创建固件。 |
示例¶
请求示例¶
url: https://{apigw-address}/connect-service/v2.1/ota-firmwares?action=create&orgId=yourOrgId&productKey=yourProductKey
method: POST
requestBody:
Firmware metadata form-data:
Header:
Content-Disposition: form-data; name="metadata"
Body:
{
"name": {
"defaultValue": "defaultValue"
},
"version": "yourVersion",
"signMethod": "md5",
"sign": "fileSig",
"enableVerification": false,
"desc": "ota firmware",
"firmwareTags": {
"tagKey": "tagValue"
},
"maxAllowedForVerification": 5,
"minSuccessForVerified": 2
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "9bba8197-d6d6-4fe2-a3d2-65153ab6376c",
"data": {
"firmwareId": "5ee0edb729b990001b9acf9a"
}
}
SDK 示例¶
你可以在 Github 上获取接入服务的 SDK 示例: