Список усіх знімків
Отримати список усіх знімків на ваших серверах.
Параметри запиту
Параметр
Тип
Обов'язково
Опис
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"
Copy
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())
Copy
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);
Copy
Приклад відповіді
{
"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
Неавторизовано – недійсний або відсутній токен автентифікації
Створити знімок
Create a snapshot of a server's current state. Snapshots are point-in-time copies of the entire server.
Параметри тіла запиту
Параметр
Тип
Обов'язково
Опис
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"
}'
Copy
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())
Copy
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);
Copy
Приклад відповіді
{
"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.
Відновлення зі знімка
Restore a server to the state captured in a snapshot. This will overwrite all current data on the server.
Параметри шляху
Параметр
Тип
Обов'язково
Опис
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"
Copy
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())
Copy
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);
Copy
Приклад відповіді
{
"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"
Copy
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)
Copy
Коди стану відповіді
204
Знімок успішно видалено
401
Неавторизовано – недійсний або відсутній токен автентифікації
404
Не знайдено – знімок не існує
Snapshots vs Backups
Understanding when to use snapshots versus 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
Best Practices
Before Updates: Create a snapshot before major system updates
Testing: Use snapshots when testing configuration changes
Combined Strategy: Use both snapshots (short-term) and backups (long-term)
Clean Up: Delete old snapshots after successful updates
Server State: Consider stopping the server before creating critical snapshots