Список усіх знімків
Отримати список усіх знімків на ваших серверах.
Параметри запиту
Параметр
Тип
Обов'язково
Опис
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
Найкращі вправи
Перед оновленнями: Створити знімок перед основними оновленнями системи
Перевірка: Використовувати знімки під час зміни конфігурації
Комбінована стратегія: Використовувати обидва знімки (короткострокові) і резервні копії (довгострокові)
Очистити: Вилучати старі знімки після успішного оновлення
Стан сервера: Спробуйте зупинити сервер перед створенням критичних знімків