6.Образ
1. Загрузить образ
Адрес интерфейса: /v1/image
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.2.0
Описание интерфейса:
Загрузить образ контейнера(асинхронная задача; после отправки запроса образ будет загружен в репозиторий образов; после успешной загрузки данные вернутся в списке образов; результат выполнения можно запросить по возвращенному traceId в интерфейсах задач)
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| imageUrl | Адрес загрузки образа | body | true | string | |
| socType | Модель вычислительной спецификации | body | true | string | Поддерживаются модели Orion865, Cruise10, Orion8G2 |
| name | Название образа | body | false | string | Название образа, если не указано, совпадает с сгенерированным imageId |
| tags | Информация бизнес-Tags образа(версия системы, версия GS и т. д.) | body | false | Map<String, String> | Например: {"GsVersion":"V2.0.1","Firmware":"567"} |
| imageMd5 | Информация MD5 образа | body | false | string | Используется для проверки загрузки образа, необязательно |
| syncNodeUuids | Список узлов синхронизации образа | body | false | List<String> | если не передано, по умолчанию синхронизируются все узлы; пустой массив означает не синхронизировать |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v1/image"
body:
{
"imageUrl": "http://www.cheersucloud.com/images/qsandroid10_1.0.2.tar",
"socType": "Orion865",
"name": "Orion865-android10_1.0.1",
"projectId":"project_admin",
"syncNodeUuids": [
"1ddf1365dac9137cf77d6d0142ff7251"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Результат | object | |
| jobId | ID задачи | string | |
| syncNodeJobs | Задача синхронизации образа | list<object> | |
| jobId | id задачи | String | |
| command | Операция | String | |
| code | Код возврата | integer | |
| message | Возвращаемое сообщение обработки | String | |
| nodeUuid | uuid узла | String | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string | ID запроса, этот traceId можно использовать для пакетного запроса результатов задач в рамках данного запроса |
Пример ответа:
{
"message": "成功",
"code": 200,
"timestamp": 1703655847574,
"result": {
"jobId": "4dab5a486599491ea98b702969d7044d",
"syncNodeJobs":[
{
"jobId": "02c0182b3e3446ed8022e0cefa91e9db",
"command": "distributeImage",
"code": 200,
"message": "SUCCESS",
"nodeUuid": "1ddf1365dac9137cf77d6d0142ff7251"
}
]
},
"traceId": "C20231227134407574007"
}
2. Постраничный список образов
Адрес интерфейса: /v1/image/page/list
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.2.0
Описание интерфейса:
Запрос списка образов
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| type | Тип запроса | body | false | string | По умолчанию ALL(одновременно запрашиваются публичные и приватные образы)、public(запрашиваются публичные образы)、private(запрашиваются приватные образы, необходимо указать projectId) |
| pageNum | Номер текущей страницы | body | false | integer | По умолчанию 1 |
| pageSize | Количество данных на текущей странице | body | false | integer | По умолчанию 10 |
Пример запроса:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | IPage<object> | |
| records | Список данных текущей страницы | list<object> | |
| uuid | UUID образа | string | |
| imageId | Идентификатор образа | string | Например: img-1749452445158 |
| name | Название образа | string | |
| digest | Сводка образа | string | |
| os | Операционная система | string | Например: Android 10, Android 13 |
| type | Тип образа | string | public — публичный образ,private — приватный образ |
| status | Статус | integer | 0:отключено 1:включено |
| socType | Модель вычислительной спецификации | string | |
| size | Размер образа | long | Единица измерения B |
| sizeStr | Преобразование емкости | string | Адаптировать поле size (единица B) к единицам M или G и взять целое число |
| projectId | ID проекта | string | |
| syncNodeUuids | Список узлов синхронизации образа | List<string> | |
| tags | Информация бизнес-Tags образа(версия системы, версия GS и т. д.) | Map<String,String> | |
| remark | Примечание | string | |
| createTime | Время создания | string | |
| updateTime | Время изменения | string | |
| total | Общее количество записей | integer | |
| current | Номер текущей страницы | integer | |
| pages | Общее количество страниц | integer | |
| size | Количество строк на странице | integer | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": {
"records": [
{
"imageId": "img-1755521097901",
"os": "Android 10",
"remark": "",
"updateTime": "2025-08-18 20:46:20",
"type": "private",
"uuid": "a855bed61a5a49d5a21446d0295f3bc9",
"sizeStr": "824.0 MB",
"socType": "Orion865",
"syncNodeUuids": [
"6aa62c31370175ee1bbe20356c5bd083",
"beb95a81559b894a92c9f1bb13c7aeba"
],
"size": 864070140,
"createTime": "2025-08-18 20:46:20",
"name": "hf20280818",
"digest": "sha256:225caa95edcb8f873f480fce47547fefea30062ee16427143ead83b8ff36c3ee",
"projectId": "f93afddd503d1fc6ada3174160852180",
"status": 1,
"tags":{
"key":"value"
}
}
],
"total": 1,
"current": 1,
"pages": 1,
"size": 10
},
"timestamp": 1703657528870,
"traceId": "C20231227141208870307"
}
3. Удалить образ
Адрес интерфейса: /v1/image/delete
Метод запроса:DELETE
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v2.2.0
Описание интерфейса:
Удалить образ контейнера, параметр представляет собой пару ключ-значение uuid и name образа
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| {uuid} | UUID образа | body | true | string | value — имя образа |
Пример запроса:
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Результат | object | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string | ID запроса |
Пример ответа:
{
"message": "成功",
"code": 200,
"result": null,
"timestamp": 1703655847574,
"traceId": "C20231227134407574007"
}
4. Синхронизировать образ
Адрес интерфейса: /v1/image/distribute
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v2.6.0
Описание интерфейса:
Синхронизировать образ
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| uuid | UUID образа | body | true | string | |
| syncNodeUuids | uuid узла синхронизации | body | true | List<String> |
Пример запроса:
POST "/openapi/v1/image/distribute"
body:
{
"syncNodeUuids": [
"1ddf1365dac9137cf77d6d0142ff7251"
],
"uuid": "bcfcef2741254267aa7f06174536cf87"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Результат | list<object> | |
| jobId | id задачи | String | |
| command | Операция | String | |
| code | Код возврата | integer | |
| message | Возвращаемое сообщение обработки | String | |
| nodeUuid | uuid узла | String | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string | ID запроса |
Пример ответа: