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

固件元数据 form-data 的 Header

名称

必需/可选

数据类型

描述

Content-Disposition

必需

Content-Disposition: form-data; name=”metadata”

name 为常量,表示元数据消息体名称


固件元数据 form-data 的 Body

名称

必需/可选

数据类型

描述

name

必需

StringI18n

固件国际化名称,同一产品下的固件名称不得重复。结构参见 国际化名称结构体

version

必需

String

固件版本。前往 OTA 升级 > 固件管理版本号 列查看固件版本号。

signMethod

必需

String

固件文件的签名算法,支持 md5sha256

sign

必需

String

固件文件签名。

desc

可选

String

固件描述

enableVerification

必需

Boolean

固件用于升级任务时是否必须验证过。true 为必须验证。false 为可以不验证。

firmwareTags

可选

Map(Key 和 Value 为 string)

固件的标签。标签键必需是唯一。标签的作用与表示方法>>

maxAllowedForVerification

可选

Integer

用来验证固件的最大设备数量。该值必须大于或等于 1。

minSuccessForVerified

可选

Integer

为通过固件验证任务,成功验证设备的最小数量。该值必须大于或等于 1,且不能大过 maxAllowedForVerification


固件文件 form-data 的 Header

名称

必需/可选

数据类型

描述

Content-Disposition

必需

Content-Disposition: form-data; name=”file”; filename=”yourFileName”

name 为常量,表示消息体名称;filename 表示固件对应文件名

响应参数

名称

数据类型

描述

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 示例: