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。

请求参数(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 固件版本。
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 示例: