12.Управление облачным телефоном
1. Скачать файл
Адрес интерфейса:/v2/command/instance
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Пакетная операция с контейнерами: скачать файл в указанный путь контейнера, можно скачивать только в существующий каталог в /data/
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | один или несколько uuid контейнеров | body | true | List<string> | |
| command | Команда операции | body | true | string | Фиксированно заполняется [ download ] |
| content | Объект содержимого операции | body | true | object | |
| url | Адрес источника скачивания | body | true | string | http-адрес, доступный внутри контейнера |
| dest | Целевой адрес хранения | body | true | string | |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v2/command/instance"
body:
{
"command": "download",
"content": {
"dest": "/data/StressTest.apk",
"url": "http://192.168.50.40/ext_files/StressTest.apk"
},
"instanceUuids": [
"0248c04cfb5a4442a636c903fa003dc8",
"0c70e660f6ee4590ad4b65112f4d7af0"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | List | Конкретный объект данных для обработки запроса |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | При успешной отправке задачи значение равно 200, остальные значения означают ошибку отправки задачи |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string | ID запроса, этот traceId можно использовать для пакетного запроса результатов задач в рамках данного запроса |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "ad66f40e900b45328f4923774f73abfb",
"code": 200,
"message": "success",
"uuid": "0248c04cfb5a4442a636c903fa003dc8",
"command": "download",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "7926d167cbfe435684adc41b522fad05",
"code": 200,
"message": "success",
"uuid": "0c70e660f6ee4590ad4b65112f4d7af0",
"command": "download",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691370725547,
"traceId": "E75620230807091205505"
}
2. Запись файла
Адрес интерфейса:/v2/command/instance
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Пакетная операция с контейнерами: записать содержимое файла в указанный путь контейнера
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | один или несколько uuid контейнеров | body | true | List<string> | |
| command | Команда операции | body | true | string | Фиксированно заполняется [ write_file ] |
| content | Объект содержимого операции | body | true | object | |
| data | Содержимое данных, строка | body | true | string | Содержимое данных не превышает 64K |
| dest | Целевой адрес хранения | body | true | string | Внимание:Можно записывать только в/dataили/sdcard/в каталоге |
| chmod | Права целевого файла | body | false | string | Необязательно |
| chown | Группа пользователей целевого файла | body | false | string | Необязательно |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v2/command/instance"
body:
{
"command": "write_file",
"content": {
"dest": "/data/test.sh",
"data": "cd /data;curl -h http://192.168.50.40/ext_files/StressTest.apk",
"chmod": "a+x",
"chown": "root:root"
},
"instanceUuids": [
"0248c04cfb5a4442a636c903fa003dc8",
"0c70e660f6ee4590ad4b65112f4d7af0"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | integer(int32) |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | List | Конкретный объект данных для обработки запроса |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | При успешной отправке задачи значение равно 200, остальные значения означают ошибку отправки задачи |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | integer(int64) |
| traceId | ID обработки запроса | string | ID запроса, этот traceId можно использовать для пакетного запроса результатов задач в рамках данного запроса |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "ad66f40e900b45328f4923774f73abfb",
"code": 200,
"message": "success",
"uuid": "0248c04cfb5a4442a636c903fa003dc8",
"command": "write_file",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "7926d167cbfe435684adc41b522fad05",
"code": 200,
"message": "success",
"uuid": "0c70e660f6ee4590ad4b65112f4d7af0",
"command": "write_file",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691370725547,
"traceId": "E75620230807091205505"
}
3. Выполнить асинхронную команду adb
Адрес интерфейса:/v2/command/instance
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
callbackUrl предоставляется версией v1.7.4
Описание интерфейса:
Контейнер выполняет shell-команду, возвращает jobId, результат задачи запрашивается через интерфейс запроса статуса выполнения задачи по traceId или jobId, вывод поддерживает максимум 8K байт
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | List<string> | |
| command | Команда операции | body | true | string | Фиксированно заполняется [ shell ] |
| content | Конкретная команда выполнения | body | true | object | |
| command | shell-команда | body | true | string | Максимальная длина 1024 байта, например:find . -name \*.log -exec grep -i user {} + |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v2/command/instance"
body:
{
"command": "shell",
"content": {
"command": "pwd"
},
"instanceUuids": [
"165b41ce26fd406cab7cac868262df44",
"20271b8ef9674bd2ab59cededc9d3e49"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | List | Конкретный объект данных для обработки запроса |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | При успешной отправке задачи значение равно 200, остальные значения означают ошибку отправки задачи |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string | ID запроса, этот traceId можно использовать для пакетного запроса результатов задач в рамках данного запроса |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "ec1c2ac1d5e544428c66a0f4f0d9f603",
"code": 200,
"message": "success",
"uuid": "165b41ce26fd406cab7cac868262df44",
"command": "shell",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "43c7740d8f484b36b08623adac3f6f1d",
"code": 200,
"message": "success",
"uuid": "20271b8ef9674bd2ab59cededc9d3e49",
"command": "shell",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691371028402,
"traceId": "E75920230807091708379"
}
4. Выполнить синхронную команду adb
Адрес интерфейса:/v2/command/instance/sync
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v1.1.1
Описание интерфейса:
Синхронное выполнение shell-команды контейнером
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | List<string> | |
| command | Команда операции | body | true | string | Здесь фиксированно указывается [ shell ] |
| content | Конкретная команда выполнения | body | true | object | |
| command | конкретное содержимое shell-команды | body | true | string | Максимальная длина 1024 байта, например:find . -name \*.log -exec grep -i user {} + |
Пример запроса:
POST "/openapi/v2/command/instance/sync"
body:
{
"command": "shell",
"content": {
"command": "pwd"
},
"instanceUuids": [
"1735cbd34ce3459db9cc8e7ada96a8d7",
"173d456c59cf40e684c3f40793883913"
]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | list<object> | |
| jobId | ID задачи | string | |
| message | Описание отправки задачи | string | |
| uuid | Уникальный uuid контейнера | string | |
| status | Статус выполнения задачи | string | 1:выполняется 2:выполнено успешно -1:ошибка выполнения |
| data | Объект-обертка вывода выполнения задачи | string | |
| stdOut | Вывод содержимого выполнения | list | |
| stdErr | Вывод исключения выполнения | list | |
| command | Команда | string | |
| beginTime | Время начала задачи | string | Формат: UTC [ YYYY-MM-DD HH:MM:SS] |
| endTime | Время завершения задачи | string | Формат совпадает с [ время начала задачи ] |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "90596a7833cb400b898efe4d90509a56",
"data": {
"stdOut": [
"/"
],
"stdErr": [
""
]
},
"beginTime": "2023-08-07 09:19:13",
"endTime": "2023-08-07 09:19:13",
"message": "任务执行成功",
"uuid": "1735cbd34ce3459db9cc8e7ada96a8d7",
"status": 2,
"command": "shell"
},
{
"jobId": "6ffc5573f74a434a96b8e777e9a9be79",
"data": {
"stdOut": [
"/"
],
"stdErr": [
""
]
},
"beginTime": "2023-08-07 09:19:13 ",
"endTime": "2023-08-07 09:19:13 ",
"message": "任务执行成功",
"uuid": "173d456c59cf40e684c3f40793883913",
"status": 2,
"command": "shell"
}
],
"timestamp": 1691371153352,
"traceId": "E76120230807091913091"
}