OTA升级服务

上传固件包文件

方法 API 说明
POST /v3/iot/management/ota/firmware-file 上传固件包文件

请求参数

参数名称 参数类型 是否必须 说明
name String 必选 "file",文件大小限制为10M以内

返回参数

一个ResourceID

请求示例

POST /v3/iot/management/ota/firmware-file HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryALn77wBBoEIFJcgG

------WebKitFormBoundaryALn77wBBoEIFJcgG

Content-Disposition: form-data; name="file"; filename="xxx"

Content-Type: xxx/xxx

------WebKitFormBoundaryALn77wBBoEIFJcgG--

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "id": "993ff7e9-018b-4246-a7ba-5ddqwerqrw",

}

创建固件包

方法 API 说明
POST /v3/iot/management/ota/firmware 创建固件包

请求参数

参数名称 参数类型 是否必须 说明
schemaId String 必选 schema id
description String 可选 描述
version String 必选 版本号
fileId String 必选 上传的固件包文件ID

返回参数

一个ResourceID

请求示例

POST /v3/iot/management/ota/firmware HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

{

        "schemaId":"agagegj-agaeg-gaeg-eg",

        "description": "device_description",

        "version":"1.0.0",

        "fileId":"993ff7e9-018b-4246-a7ba-5ddqwerqrw"

}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

        "id": "993ff7e9-018b-4246-a7ba-5ddqwerqrw"

}

获取固件包详情

方法 API 说明
GET /v3/iot/management/ota/firmware/{firmwareId} 获取固件包详情

请求参数

参数名称 参数类型 是否必须 说明
firmwareId String 必须 固件包ID

返回参数

一个FirmwarePackageDetail

请求示例

GET /v3/iot/management/ota/firmware/12345 HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "id": "12345",

    "description": "device_description",

    "version":"1.2.3",

    "fileId":"file_id",

    "fileName":"file_name",

    "downloadUrl":"https://download_url",

    "schemaName": "door",

    "schemaId": "agage-agage",

    "createdAt": "2018-05-09T03:48:59Z",

    "jobs":[

            {

                "id":"job_id",

                "name": "job_name"

            }

        ]

}

获取固件包列表

方法 API 说明
GET /v3/iot/management/ota/firmware?pageNo=xxx&pageSize=xxx&order=xxx&orderBy=xxx&schemaId=xxx 查询固件包列表

请求参数

参数名称 参数类型 是否必须 说明
pageNo int 可选 默认是1,表示第几页
pageSize int 可选 每页返回的数目,默认10,限制为100以内
order String 可选 默认是按照创建时间排序,支持"createdAt"
orderBy String 可选 默认是降序排列,支持"asc" l "desc"
schemaId String 可选 按schemaId过滤

返回参数

参数名称 参数类型 说明
amount int 满足查询条件的固件包总数
pageNo int 表示第几页
pageSize int 每页返回的数目
firmwares List <FirmwarePackage > 固件包列表

请求示例

GET /v3/iot/management/ota/firmware?pageNo=1&pageSize=10 HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "amount": 1,

    "pageNo": 1,

    "pageSize":10,

    "firmwares":[

        {

                "id": "12345",

                "description": "device_description",

                "version":"1.2.3",

                "fileId":"file_id",

                "fileName":"file_name",

                "downloadUrl":"https://download_url",

                "schemaName": "door",

                "schemaId": "agage-agage",

                "createdAt": "2018-05-09T03:48:59Z"

        }

    ]

}

查询设备使用固件包版本

方法 API 说明
POST /v3/iot/management/ota/device-firmware-version-query 列举当前被设备使用的

请求参数

参数名称 参数类型 是否必须 说明
schemaId String 必选 模型ID

返回参数

一个VersionList

请求示例

POST /v3/iot/management/ota/device-firmware-version-query HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

{

    "schemaId":"afgeagag-018b-4246-a7ba-5dddac970054"

}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "versions": ["1.0.1", "1.0.2"]

}

创建升级任务

方法 API 说明
POST /v3/iot/management/ota/job 创建升级任务

请求参数

参数名称 参数类型 是否必须 说明
obName String 必选 升级任务名称
firmwareId String 必选 固件包ID
description String 可选 升级任务描述
devices List<String> 可选 devices,versionFilter,fileId三者选择一个,优先级依次递减
versionFilter List<String> 可选 如果列表的size为0,则表明全量设备
fileId String 可选 文件内容格式为每行一个设备名

返回参数

一个ResourceID

请求示例

POST /v3/iot/management/ota/job HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

{

    "jobName": "your_ota_job_name",

    "firmwareId": "your_ota_firmware_id",

    "description": "your_description",

    "devices": ["device_1", "device_2"]

}

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "id": "e3a197fe-e211-4499-8a10-8c15146550ae"

}

上传升级设备文件

方法 API 说明
POST /v3/iot/management/ota/device-file 上传需升级的设备文件

请求参数

参数名称 参数类型 是否必须 说明
name String 必选 "file",文件大小限制为1M以内

返回参数

一个ResourceID

请求示例

POST /v3/iot/management/ota/device-file HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: multipart/form-data; boundary=----WebKitFormBoundarymgrwDgRP9sdjkN9p

------WebKitFormBoundarymgrwDgRP9sdjkN9p

Content-Disposition: form-data; name="file"; filename="xxx.txt"

Content-Type: text/plain

------WebKitFormBoundarymgrwDgRP9sdjkN9p--

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "id": "993ff7e9-018b-4246-a7ba-5ddqwerqrw",

}

查询升级任务

方法 API 说明
GET /v3/iot/management/ota/job/{jobId} 查询升级任务

请求参数

参数名称 参数类型 是否必须 说明
jobId String 必选 升级任务ID

返回参数

一个OtaJob对象

请求示例

GET /v3/iot/management/ota/job/e3a197fe-e211-4499-8a10-8c15146550ae HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "id": "e3a197fe-e211-4499-8a10-8c15146550ae",

    "jobName": "job_name",

    "description":"job_description",

    "firmwareId":"a4dfc99e-92d5-435c-a903-47fa8f042c2a",

    "createdAt": "2018-05-09T03:48:59Z"

}

查询升级任务列表

方法 API 说明
GET /v3/iot/management/ota/job?pageNo=xxx&pageSize=xxx&orderBy=xxx&order=xxx 查询升级任务列表

请求参数

参数名称 参数类型 是否必须 说明
pageNo int 可选 默认是1,表示第几页
pageSize int 可选 每页返回的数目,默认10,限制为100以内
order String 可选 默认是按照创建时间排序,支持"createdAt"
orderBy String 可选 默认是降序排列,支持"asc" l "desc"

返回参数

参数名称 参数类型 说明
amount int 满足条件的升级任务总数
pageNo int 表示第几页
pageSize int 每页返回的数目
jobs List<OtaJob> 升级任务列表

请求示例

GET /v3/iot/management/ota/job?pageNo=1&pageSize=10 HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "amount": 1,

    "pageNo": 1,

    "pageSize":10,

    "jobs":[

        {

            "id": "e3a197fe-e211-4499-8a10-8c15146550ae",

            "jobName": "job_name",

            "description":"job_description",

            "firmwareId":"a4dfc99e-92d5-435c-a903-47fa8f042c2a",

            "createdAt": "2018-05-09T03:48:59Z"

        }

    ]

}

查询升级任务结果

方法 API 说明
GET /v3/iot/management/ota/job/{jobId}/statistics 查询升级任务结果

请求参数

参数名称 参数类型 是否必须 说明
obId String 必选 升级任务ID

返回参数

一个JobStatistics

请求示例

GET /v3/iot/management/ota/job/e3a197fe-e211-4499-8a10-8c15146550ae/statistics HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "deviceCount": 3,

    "succeededCount": 1

}

查询升级任务各设备升级结果

方法 API 说明
GET /v3/iot/management/ota/job/{jobId}/device-result?pageNo=xx&pageSize=xx 查询各设备升级结果

请求参数

参数名称 参数类型 是否必须 说明
obId String 必选 升级任务ID
pageNo int 可选 默认是1,表示第几页
pageSize int 可选 每页返回的数目,默认10,限制为100以内

返回参数

参数名称 参数类型 说明
amount int 升级任务中包含的设备总数
pageNo int 表示第几页
pageSize int 每页返回的数目
results List<DeviceJobResult> 设备升级结果列表

请求示例

GET /v3/iot/management/ota/job/e3a197fe-e211-4499-8a10-8c15146550ae/device-result?pageNo=1&pageSize=10 HTTP/1.1

Host: iotdm.gz.baidubce.com

Authorization: {authorization}

Content-Type: application/json; charset=utf-8

返回示例

HTTP/1.1 200 OK

Content-Type: application/json; charset=utf-8

x-bce-request-id: 993ff7e9-018b-4246-a7ba-5dddac970054

{

    "amount": 1,

    "pageNo": 1,

    "pageSize":10,

    "results":[

            {

                "deviceName": "e3a197fe-e211-4499-8a10-8c15146550ae",

                "isOnline": "job_name",

                "startAt": "2018-05-09T03:48:59Z",

                "finishedAt": "2018-05-09T04:48:59Z",

                "firmwareVersionBefore": "1.0.0",

                "jobStatus":"SUCCEEDED"

            }

    ]

}

参数定义

FirmwarePackage

参数名称 参数类型 说明
id String 固件包ID
version String 固件包版本号
description String 固件包描述
fileId String 固件包文件ID
fileName String 固件包文件名
downloadUrl String 下载路径
schemaName String 固件包对应模型名称
schemaId String 固件包对应模型ID
createdAt Date 固件包创建时间,格式yyyy-MM-dd'T'HH:mm:ss'Z'

FirmwarePackageDetail

参数名称 参数类型 说明
类中各字段 FirmwarePackage 继承其中所有字段
jobs List<SimplifiedJob> 使用该固件包的升级任务列表

SimplifiedJob

参数名称 参数类型 说明
id String 升级任务ID
name String 升级任务名称

OtaJob

参数名称 参数类型 说明
id String 任务ID
jobName String 任务名称
description String 任务描述
firmwareId String 任务使用固件包ID
createdAt Date 任务创建时间,格式yyyy-MM-dd'T'HH:mm:ss'Z'

JobStatistics

参数名称 参数类型 说明
eviceCount int 升级任务涉及的设备数量
succeededCount int 成功的设备数量

DeviceJobResult

参数名称 参数类型 说明
deviceName String 物影子名字
isOnline boolean 在线状态
startedAt Date 升级开始时间,格式yyyy-MM-dd'T'HH:mm:ss'Z'
finishedAt Date 升级结束时间,格式yyyy-MM-dd'T'HH:mm:ss'Z'
firmwareVersionBefore String 升级前版本号
jobStatus String 升级结果,内容为"PENDING" l "RUNNING" l "SUCCEEDED" l "FAILED" 之一

ResourceID

参数名称 参数类型 说明
id String 资源ID

VersionList

参数名称 参数类型 说明
versions List<String> 版本列表