แสดงภาพสแนปช็อตทั้งหมด
เรียกดูรายการสแนปช็อตทั้งหมดจากเซิร์ฟเวอร์ของคุณ
พารามิเตอร์การค้นหา
พารามิเตอร์
พิมพ์
ที่จำเป็น
คำอธิบาย
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