8.Резервная копия
1. Создать резервную копию
Адрес интерфейса:/v1/backup/add
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия: v1.17.0
Описание интерфейса:
Пакетное создание резервных копий
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceUuids | uuid контейнера | body | true | list | Одна или несколько записей данных контейнера |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v1/backup/add"
body:
{
"instanceUuids": ["348504568b904b7eb64264e488a2f79d","ae674f4546c74bf48c00c211334f214a"]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "fb3e172cbbc847e6ba18bdd991b79e72",
"code": 200,
"message": "success",
"uuid": "348504568b904b7eb64264e488a2f79d",
"command": "backupInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "1e3388fddf3e4c1496fa109986c05383",
"code": 200,
"message": "success",
"uuid": "ae674f4546c74bf48c00c211334f214a",
"command": "backupInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691369821823,
"traceId": "E75320230807085701790"
}
2. Список резервных копий
Адрес интерфейса:/v1/backup/list
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия: v1.17.0
Описание интерфейса:
Постраничный запрос списка резервных копий
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| projectId | Id проекта | body | false | string | По умолчанию проект по умолчанию текущего пользователя |
| nodeUuid | uuid узла | body | true | string | |
| instanceUuids | Список контейнеров | body | false | list<object> | Список контейнеров, запрос резервных копий по контейнеру |
| instanceName | Название контейнера | body | false | string | Нечеткий поиск по имени контейнера |
| jobId | ID задачи | body | false | string | ID задачи, возвращенный интерфейсом создания резервной копии |
| name | Название резервной копии | body | false | string | |
| pageNum | Номер текущей страницы | body | false | integer | По умолчанию 1 |
| pageSize | Количество данных на текущей странице | body | false | integer | По умолчанию 10 |
Пример запроса:
POST "/openapi/v1/backup/list"
body:
{
"pageNum": 1,
"pageSize": 10,
"projectId": "project_admin",
"name": "back-mi10",
"jobId": "fb3e172cbbc847e6ba18bdd991b79e72",
"instanceUuids": [
"ae674f4546c74bf48c00c211334f214a"
],
"instanceName": "mihayou"
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | IPage<object> | |
| records | Список данных текущей страницы | list<object> | |
| nodeUuid | uuid узла | string | |
| uuid | uuid резервной копии | string | |
| name | Название резервной копии | string | false |
| size | Размер резервной копии | string | bytes |
| imageId | id образа резервной копии | string | id образа исходного контейнера резервной копии |
| instanceUuid | ID контейнера | string | uuid контейнера, которому принадлежит источник резервной копии |
| instanceName | Название контейнера | string | Название исходного контейнера резервной копии |
| jobId | ID задачи | string | |
| status | Статус задачи | integer | 0: выполняется резервное копирование 1:резервное копирование успешно; 2: ошибка резервного копирования |
| createTime | Время создания | string | |
| total | Общее количество записей | integer | |
| current | Номер текущей страницы | integer | |
| pages | Общее количество страниц | integer | |
| size | Количество строк на странице | integer | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"code":200,
"message":"操作成功",
"result":{
"records":[
{
"nodeUuid":"a5b93c4e98224c84bb10957aa6175a92",
"uuid":"befd6ef1400d491db459e5681c6891ad",
"name":"xxx",
"size":1534654694,
"instanceUuid":"ae674f4546c74bf48c00c211334f214a",
"instanceName": "mihayou",
"jobId": "fb3e172cbbc847e6ba18bdd991b79e72",
"status": 1,
"imageId": "img-1743489439031",
"projectId": "f93afddd503d1fc6ada3174160852180",
"createTime":"2023-08-01 12:02:55"
}
],
"total":40,
"current":1,
"pages":4,
"size":10
},
"timestamp":1691464377302,
"traceId":"E07620230808111257302"
}
3. Восстановить резервную копию
Адрес интерфейса:/v1/backup/recovery
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия: v1.17.0
Описание интерфейса:
Восстановить резервные копии по одной или пакетно
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| instanceBackups | Список восстановления контейнеров | body | true | list | Список контейнеров и данных резервных копий, которые необходимо восстановить. Каждый элемент является объектом и содержит следующие поля: |
| instanceUuid | uuid контейнера | true | string | Уникальный идентификатор контейнера, строка длиной 32 символа. | |
| backupUuid | uuid резервной копии | ture | string | Уникальный идентификатор резервной копии, строка длиной 32 символа. | |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
| statusStartType | Тип запуска контейнера | body | false | integer | 0:запустить(параметр по умолчанию)1:сохранить исходное состояние(запущено/остановлено) |
Пример запроса:
POST "/openapi/v1/backup/recovery"
body:
{
"instanceBackups":[{
"instanceUuid":"348504568b904b7eb64264e488a2f79d",
"backupUuid":"ae674f4546c74bf48c00c211334f214a"
}]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid контейнера | string | |
| command | Команда | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "fb3e172cbbc847e6ba18bdd991b79e72",
"code": 200,
"message": "success",
"uuid": "348504568b904b7eb64264e488a2f79d",
"command": "restoreInstance",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691369821823,
"traceId": "E75320230807085701790"
}
4. Удалить резервную копию
Адрес интерфейса: /v1/backup/remove
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия: v1.17.0
Описание интерфейса:
Пакетное удаление резервных копий
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | uuid узла | body | true | list | |
| backupUuids | uuid резервной копии | body | true | list | Одна или несколько записей данных контейнера |
Пример запроса:
POST "/openapi/v1/backup/remove"
body:
{
"backupUuids": ["348504568b904b7eb64264e488a2f79d","ae674f4546c74bf48c00c211334f214a"]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | List | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功!",
"code": 200,
"result": null,
"timestamp": 1718431861571,
"traceId": "C20240615141101571003"
}
5. Распространить резервную копию
Адрес интерфейса:/v1/backup/distribute
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия: v1.17.0
Описание интерфейса:
Распространить резервную копию
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| backupUuids | uuid резервной копии | body | true | list | Одна или несколько записей данных контейнера |
| nodeUuid | uuid узла | body | true | list | Исходный узел распространения |
| nodeUuids | Список uuid узлов | body | true | list | Целевой узел |
| callbackUrl | Адрес callback уведомления | body | false | string | POST-запрос |
Пример запроса:
POST "/openapi/v1/backup/distribute"
body:
{
"backupUuids": ["348504568b904b7eb64264e488a2f79d","ae674f4546c74bf48c00c211334f214a"],
"nodeUuid": "348504568b904b7eb64264e488a2f792",
"nodeUuids":["348504568b904b7eb64264e488a2f791","ae674f4546c74bf48c00c211334f2141"]
}
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | |
| message | Возвращаемое сообщение обработки | string | |
| success | Признак успешности | boolean | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| code | Код статуса отправки задачи | integer | СоответствуетТаблица кодов статуса ответа |
| message | Описание отправки задачи | string | |
| uuid | uuid резервной копии | string | |
| nodeUuid | UUID узла | string | |
| timestamp | Временная метка | integer(int64) | |
| traceId | ID обработки запроса | string |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "fb3e172cbbc847e6ba18bdd991b79e72",
"code": 200,
"message": "success",
"uuid": "348504568b904b7eb64264e488a2f79d",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
},
{
"jobId": "1e3388fddf3e4c1496fa109986c05383",
"code": 200,
"message": "success",
"uuid": "ae674f4546c74bf48c00c211334f214a",
"nodeUuid": "7a3eacab1939fefec0c1998e37d87ae2"
}
],
"timestamp": 1691369821823,
"traceId": "E75320230807085701790"
}
6 Импортировать резервную копию экземпляра
Адрес интерфейса:/v1/backup/load
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v2.11.0
Описание интерфейса:
Скачать файл резервной копии из внешнего URL и импортировать на edge-узел
Пример запроса:
curl -X POST "http://192.168.50.26:1800/openapi/v1/backup/load" -H "accept: */*" -H "Content-Type: application/json" -H "Authorization: bearer dc4748f5-929a-433f-aced-74ef65c7d436" -d '{"nodeUuid":"161d73a7470b797fec133df3b5bbf20b","projectId":"default","backups":[{"instanceUuid":"i-7b0d8170ad5855f280e3a0079f67465a","downloadUrl":"http://192.168.50.40/backup/xxx.tar"}]}'
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | UUID узла | body | true | string | |
| projectId | ID проекта | body | false | string | если не передано, используется проект пользователя по умолчанию |
| backups | Список резервных копий | body | true | array | |
| nodeUuid | UUID узла | body | false | string | |
| projectId | ID проекта | body | false | string | если не передано, используется проект пользователя по умолчанию |
| instanceUuid | UUID экземпляра | false | string | ||
| instanceName | Имя экземпляра | false | string | ||
| downloadUrl | URL скачивания | true | string | Адрес загрузки файла резервной копии | |
| uuid | UUID резервной копии | false | string | если не передано, генерируется автоматически | |
| imageId | ID образа | false | string |
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | integer(int32) |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| uuid | UUID резервной копии | string | |
| code | Код статуса отправки задачи | integer | 200 означает успех |
| message | Описание отправки задачи | string | |
| nodeUuid | UUID узла | string | |
| projectId | ID проекта | string | |
| traceId | ID обработки запроса | string | |
| timestamp | Временная метка | integer(int64) | integer(int64) |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "f07e77c4dcd04359b56730dbd7d1162e",
"uuid": "b59b5f35f7d743d3ad740b8df05277bf",
"code": 200,
"message": "success",
"nodeUuid": "161d73a7470b797fec133df3b5bbf20b",
"projectId": "default"
}
],
"timestamp": 1691369668713,
"traceId": "E75020230807085428674"
}
7 Экспортировать резервную копию экземпляра
Адрес интерфейса:/v1/backup/upload
Метод запроса:POST
Тип данных запроса:application/json
Тип данных ответа:*/*,application/json
Поддерживаемая версия:v2.11.0
Описание интерфейса:
Экспортировать резервную копию edge-узла во внешнее хранилище
Пример запроса:
curl -X POST "http://192.168.50.26:1800/openapi/v1/backup/upload" -H "accept: */*" -H "Content-Type: application/json" -H "Authorization: bearer dc4748f5-929a-433f-aced-74ef65c7d436" -d '{"nodeUuid":"161d73a7470b797fec133df3b5bbf20b","projectId":"default","backups":[{"instanceUuid":"i-7b0d8170ad5855f280e3a0079f67465a","uuid":"b59b5f35f7d743d3ad740b8df05277bf"}]}'
Параметры запроса:
| Имя параметра | Описание параметра | Местоположение | Обязательно ли | Тип данных | Описание |
|---|---|---|---|---|---|
| nodeUuid | UUID узла | body | true | string | |
| projectId | ID проекта | body | false | string | если не передано, используется проект пользователя по умолчанию |
| backups | Список резервных копий | body | true | array | |
| storageUrl | Адрес сервера хранения | true | string | Адрес OSS-сервера | |
| storageName | Имя бакета хранения | true | string | ||
| storagePath | Путь хранения | true | string | ||
| access | Access для аутентификации | true | string | OSS authentication access | |
| secret | Secret для аутентификации | true | string | OSS authentication secret | |
| pathStyle | Стиль пути | true | boolean | По умолчанию true | |
| uuid | UUID резервной копии | true | string |
Параметры ответа:
| Имя параметра | Описание параметра | Тип | Описание |
|---|---|---|---|
| code | Код возврата | integer(int32) | integer(int32) |
| message | Возвращаемое сообщение обработки | string | |
| result | Возвращаемый объект данных | List | |
| jobId | ID задачи | string | |
| uuid | UUID резервной копии | string | |
| code | Код статуса отправки задачи | integer | 200 означает успех |
| message | Описание отправки задачи | string | |
| nodeUuid | UUID узла | string | |
| projectId | ID проекта | string | |
| traceId | ID обработки запроса | string | |
| timestamp | Временная метка | integer(int64) | integer(int64) |
Пример ответа:
{
"message": "操作成功",
"code": 200,
"result": [
{
"jobId": "f07e77c4dcd04359b56730dbd7d1162e",
"uuid": "b59b5f35f7d743d3ad740b8df05277bf",
"code": 200,
"message": "success",
"nodeUuid": "161d73a7470b797fec133df3b5bbf20b",
"projectId": "default"
}
],
"timestamp": 1691369668713,
"traceId": "E75020230807085428674"
}