Списък на всички снимки
Извлечете списък с всички моментни снимки на вашите сървъри.
Параметри на заявката
Параметр
Тип
Задължително
Описание
server_id
integer
Не.
Филтриране на моментни снимки по идентификатор на сървъра
Примерна заявка
curl -X GET "https://admin.vps.org/api/v1/snapshots/?server_id=12345" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Копиране
import requests
url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
params = {"server_id": 12345}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Копиране
const response = await fetch('https://admin.vps.org/api/v1/snapshots/?server_id=12345', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
});
const snapshots = await response.json();
console.log(snapshots);
Копиране
Примерен отговор
{
"count": 2,
"results": [
{
"id": 801,
"server": {
"id": 12345,
"name": "web-server-01"
},
"name": "pre-migration-snapshot",
"status": "completed",
"size_mb": 5120,
"created_at": "2025-01-15T18:30:00Z",
"description": "Before major migration"
},
{
"id": 798,
"server": {
"id": 12345,
"name": "web-server-01"
},
"name": "weekly-snapshot-2025-01-08",
"status": "completed",
"size_mb": 4856,
"created_at": "2025-01-08T12:00:00Z",
"description": "Weekly snapshot"
}
]
}
Кодове за състояние на отговора
200
Списъкът със снимки е успешно извлечен
401
Неоторизирано - Невалиден или липсващ токен за удостоверяване
Създаване на моментна снимка
Създаване на снимка от текущото състояние на сървъра. Снимките са точни копия на целия сървър.
Заявка за параметри на тялото
Параметр
Тип
Задължително
Описание
server_id
integer
Да
Идентификатор на сървъра за създаване на моментна снимка
name
string
Да
Име за моментната снимка (буквено-цифрово, тирета, долни черти)
description
string
Не.
Незадължително описание за моментната снимка
Примерна заявка
curl -X POST "https://admin.vps.org/api/v1/snapshots/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"server_id": 12345,
"name": "before-update-snapshot",
"description": "Snapshot before system update"
}'
Копиране
import requests
url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"server_id": 12345,
"name": "before-update-snapshot",
"description": "Snapshot before system update"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Копиране
const response = await fetch('https://admin.vps.org/api/v1/snapshots/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
server_id: 12345,
name: 'before-update-snapshot',
description: 'Snapshot before system update'
})
});
const snapshot = await response.json();
console.log(snapshot);
Копиране
Примерен отговор
{
"id": 802,
"server": {
"id": 12345,
"name": "web-server-01"
},
"name": "before-update-snapshot",
"status": "in_progress",
"size_mb": null,
"created_at": "2025-01-16T16:15:00Z",
"description": "Snapshot before system update",
"message": "Snapshot is being created. This may take 3-10 minutes depending on server size."
}
Кодове за състояние на отговора
201
Създаването на моментна снимка започна успешно
400
Bad Request - Invalid parameters or snapshot limit reached
401
Неоторизирано - Невалиден или липсващ токен за удостоверяване
404
Not Found - Server does not exist
Забележка: You can have a maximum of 5 snapshots per server. Creating a snapshot while the server is running may result in filesystem inconsistencies. For best results, stop the server before creating a snapshot.
Възстановяване от моментна снимка
Възстановяване на сървър в състоянието, заснето в снимката. Това ще преписва всички текущи данни на сървъра.
Параметри на пътя
Параметр
Тип
Задължително
Описание
snapshot_id
integer
Да
Уникален идентификатор на моментна снимка
Примерна заявка
curl -X POST "https://admin.vps.org/api/v1/snapshots/801/restore/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Копиране
import requests
snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/restore/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers)
print(response.json())
Копиране
const snapshotId = 801;
const response = await fetch(`https://admin.vps.org/api/v1/snapshots/${snapshotId}/restore/`, {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
});
const result = await response.json();
console.log(result);
Копиране
Примерен отговор
{
"status": "success",
"message": "Server is being restored from snapshot. This may take 5-15 minutes.",
"snapshot": {
"id": 801,
"name": "pre-migration-snapshot",
"created_at": "2025-01-15T18:30:00Z"
},
"server": {
"id": 12345,
"name": "web-server-01",
"status": "restoring"
}
}
Кодове за състояние на отговора
200
Възстановяването е стартирано успешно
400
Bad Request - Server is not in a valid state for restoration
401
Неоторизирано - Невалиден или липсващ токен за удостоверяване
404
Не е намерено - Моментната снимка не съществува
Предупреждение: Restoring from a snapshot will overwrite all current data on the server. This action cannot be undone. The server will be automatically stopped before restoration begins.
Изтриване на моментна снимка
Изтриване на моментна снимка за постоянно. Това действие не може да бъде отменено.
Параметри на пътя
Параметр
Тип
Задължително
Описание
snapshot_id
integer
Да
Уникален идентификатор на моментна снимка
Примерна заявка
curl -X DELETE "https://admin.vps.org/api/v1/snapshots/801/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Копиране
import requests
snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
response = requests.delete(url, headers=headers)
print(response.status_code)
Копиране
Кодове за състояние на отговора
204
Моментната снимка е изтрита успешно
401
Неоторизирано - Невалиден или липсващ токен за удостоверяване
404
Не е намерено - Моментната снимка не съществува
Snapshots vs Backups
Разбиране кога да се използват снимки срещу резервни копия:
API за снимки
Цел: Quick point-in-time recovery
Скорост: Faster to create and restore (3-15 min)
Случай на употреба: Before risky operations (updates, config changes)
Съхранение: Stored on same infrastructure
Граница: 5 snapshots per server
Най-подходящо за: Short-term rollback capability
API за резервни копия
Цел: Long-term data protection
Скорост: Slower to create and restore (varies)
Случай на употреба: Regular automated data protection
Съхранение: Separate backup storage
Граница: 10 manual + automatic backups
Най-подходящо за: Disaster recovery and compliance
Най-добрите практики
Преди актуализации: Създаване на снимка преди големите актуализации на системата
Изпитване: Използване на снимки при изпитване на промени в конфигурацията
Комбинирана стратегия: Използване на снимките (краткосрочни) и резервни копия (дългосрочни)
Почистване: Изтриване на стари снимки след успешни актуализации
Състояние на сървъра: Размисли за спиране на сървъра преди създаването на критични снимки