列出所有快照
获取服务器上所有快照的列表。
查询参数
参数
类型
必需的
说明说明
server_id
integer
否 无
按服务器 ID 筛选快照
示例请求
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
是的
要拍摄快照的服务器 ID
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
是的
唯一快照 ID
示例请求
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
是的
唯一快照 ID
示例请求
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
最佳做法最佳做法
在更新前 : 在主要系统更新前创建快照
测试 : 测试配置变换时使用快照
合并战略: 使用快照(短期)和备份(长期)
清理 : 成功更新后删除旧快照
服务器状态 : 考虑在创建关键快照前停止服务器