生成OTA升级包文件的URL后,调用该接口创建设备的OTA升级包。

使用说明

在调用此接口创建升级包前,已调用GenerateOTAUploadURL生成升级包上传信息,并已调用OSS PostObject接口上传了升级包文件。

使用限制

单个实例下最多可有500个升级包。

QPS限制

单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。

说明 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateOTAFirmware

系统规定参数。取值:CreateOTAFirmware。

DestVersion String 2.0.0

当前OTA升级包的版本号,仅支持英文字母、数字、半角句号(.)、短划线(-)和下划线(_)。长度限制为1~64个字符。

FirmwareName String Firmware2

OTA升级包名称,需在阿里云账号下唯一,创建后不可修改。支持中文、英文字母、日文、数字、短划线(-)、下划线(_)和半角圆括号(()),必须以中文、英文、日文或数字开头,长度限制为1~40个字符。

IotInstanceId String iot-cn-0pp1n8t****

实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID

重要
  • 若有ID值,必须传入该ID值,否则调用会失败。
  • 若无实例概览页面或ID值,则无需传入。
FirmwareUrl String https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/bcd6142594d0183a16d825ad8225****/A6B3400B70CA4D6D872160D1A91A****.bin

OTA升级包文件的URL,即升级包文件在对象存储(OSS)上的存储地址。您可调用GenerateOTAUploadURL生成升级包文件的URL。

重要 仅当OTA升级包中添加一个文件时,才可传入此参数,且必须传入。
FirmwareSign String 93230c3bde425a9d7984a594ac55****

OTA升级包文件的签名值。使用SignMethod值(SHA256MD5)对升级包文件内容加签计算得出的值。

重要 仅当OTA升级包中添加一个文件时,才可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值作为升级包签名值。
SignMethod String MD5

OTA升级包签名方法。取值:

  • MD5(默认):MD5签名。
  • SHA256:SHA256签名。
FirmwareSize Integer 900

OTA升级包文件的大小,单位:字节。

重要 仅当OTA升级包中添加一个文件时,才可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的大小。
ProductKey String a1uctKe****

OTA升级包所属产品的ProductKey

FirmwareDesc String OTA function updated

OTA升级包描述。长度不可超过100个字符。一个中文汉字算一个字符。

Type Integer 0

OTA升级包类型。可选:

  • 0:整包升级包,您上传的升级包文件包含完整的升级包,将推送整包升级包给设备进行升级。
  • 1:差分升级包,您上传的升级包文件仅包含新版本升级包与之前版本的差异部分,仅推送差异部分给设备进行升级。

不传入此参数,则默认值为0

SrcVersion String 1.0.0

待升级OTA模块版本号,即待升级设备的当前OTA模块版本号。

可以调用QueryDeviceDetail,查看设备OTA模块版本号(FirmwareVersion)。

说明
  • Type1(差分升级包)时,必须传入该参数,且取值不能与当前升级包版本(DestVersion)相同。
  • Type0(整包升级包)时,可不传入该参数。
ModuleName String WifiConfigModify

OTA模块名称。OTA模块是同产品下设备的不同可升级模块。

说明
  • 不传入该参数,则使用default模块,表示整个设备的固件。
  • 可调用CreateOTAModule创建自定义OTA模块,调用ListOTAModuleByProduct查询产品下已创建的OTA模块。
NeedToVerify Boolean true

是否需要在创建批量升级任务前通过升级包验证。

  • true(默认):需要
  • false:不需要
Udi String {"ota_notice":"升级底层摄像头驱动,解决视频图像模糊的问题。"}

推送给设备的自定义信息。不限制文本内容格式,长度不超过4096个字符。

添加该升级包完成,并创建升级任务后,物联网平台向设备推送升级通知时,会将该自定义信息下发给设备。

MultiFiles.N.Name String Firmware1

OTA升级包文件名称,长度限制为1~32个字符。支持最多添加20个文件名称,且多个升级包文件的名称不能重复。

重要 OTA升级包中添加多个升级包文件时,必须传入此参数。
MultiFiles.N.Size Integer 200

OTA升级包文件的大小,单位:字节。

说明 OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的大小。
MultiFiles.N.Url String https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/bcd6142594d0183a16d825ad8225****/A6B3400B70CA4D6D872160D1A91A****.bin

OTA升级包文件的URL,即升级包文件在对象存储(OSS)上的存储地址。您可调用GenerateOTAUploadURL为每个升级包文件生成文件URL。

重要 OTA升级包中添加多个升级包文件时,必须传入此参数。
MultiFiles.N.SignValue String 93230c3bde425a9d7984a594ac45****

OTA升级包文件的签名值。使用SignMethod对升级包文件内容加签计算得出的值。

说明 OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值作为升级包签名值。
MultiFiles.N.FileMd5 String 93230c3bde425a9d7984a594ac56***

OTA升级包文件的MD5值。

说明 OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值。

调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档

返回数据

名称 类型 示例值 描述
Code String iot.system.SystemException

调用失败时,返回的错误码。更多信息,请参见错误码

Data Struct

调用成功时,返回的升级包信息。更多信息,请参见Data下参数描述。

FirmwareId String s8SSHiKjpBfrM3BSN0z803****

OTA升级包ID,物联网平台为升级包颁发的唯一标识符。

UtcCreate String 2019-11-04T06:21:54.607Z

OTA升级包的创建时间,UTC格式。

ErrorMessage String 系统异常

调用失败时,返回的出错信息。

RequestId String 291438BA-6E10-4C4C-B761-243B9A0D324F

阿里云为该请求生成的唯一标识符。

Success Boolean true

是否调用成功。

  • true:调用成功,表示OTA升级包创建成功。
  • false:调用失败,表示OTA升级包创建失败。

示例

请求示例

https://iot.cn-shanghai.aliyuncs.com/?Action=CreateOTAFirmware
&ProductKey=a1uctKe****
&FirmwareName=Firmware2
&DestVersion=2.0.0
&FirmwareUrl=https%3A%2F%2iotx-ota.oss-cn-shanghai.aliyuncs.com%2Fota%2F****%2F****.bin
&SignMethod=MD5
&FirmwareSign=93230c3bde425a9d7984a594ac55****
&FirmwareSize=900
&FirmwareDesc=OTA function updated
&Type=0
&ModuleName=WifiConfigModify
&<公共请求参数>

正常返回示例

XML格式

<CreateOTAFirmwareResponse>
    <Data>
        <FirmwareId>s8SSHiKjpBfrM3BSN0z803****</FirmwareId>
        <UtcCreate>2019-11-04T06:21:54.607Z</UtcCreate>
    </Data>
    <RequestId>E4BD5A12-7C1D-4712-A7D5-B2432331165E</RequestId>
    <Success>true</Success>
</CreateOTAFirmwareResponse>

JSON格式

{  
  "Data": {
    "FirmwareId": "s8SSHiKjpBfrM3BSN0z803****",
    "UtcCreate": "2019-11-04T06:21:54.607Z"
  },
  "RequestId": "291438BA-6E10-4C4C-B761-243B9A0D324F",
  "Success": true
}