Перейти к содержимому

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"
}