VPS.org API

Tài liệu API REST

API ảnh chụp nhanh

Quản lý ảnh chụp nhanh máy chủ để khôi phục nhanh chóng tại một thời điểm cụ thể. Ảnh chụp nhanh ghi lại toàn bộ trạng thái của máy chủ.

Điểm cuối 4 endpoints
Đường cơ sở /api/v1/snapshots
LẤY /api/v1/snapshots/

Liệt kê tất cả ảnh chụp nhanh

Truy xuất danh sách tất cả các ảnh chụp nhanh trên các máy chủ của bạn.

Tham số truy vấn

Tham số Kiểu Yêu cầu Sự miêu tả
server_id integer KHÔNG Lọc ảnh chụp nhanh theo ID máy chủ

Ví dụ về yêu cầu

cURL
Python
JavaScript
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);

Ví dụ về câu trả lời

{
  "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"
    }
  ]
}

Mã trạng thái phản hồi

200 Đã truy xuất thành công danh sách ảnh chụp nhanh
401 Không được phép - Mã xác thực không hợp lệ hoặc bị thiếu.
BƯU KIỆN /api/v1/snapshots/

Tạo ảnh chụp nhanh

Create a snapshot of a server's current state. Snapshots are point-in-time copies of the entire server.

Các tham số thân yêu cầu

Tham số Kiểu Yêu cầu Sự miêu tả
server_id integer Đúng ID của máy chủ cần chụp ảnh
name string Đúng Tên cho ảnh chụp (chữ và số, dấu gạch ngang, dấu gạch dưới)
description string KHÔNG Mô tả tùy chọn cho ảnh chụp nhanh

Ví dụ về yêu cầu

cURL
Python
JavaScript
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);

Ví dụ về câu trả lời

{
  "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."
}

Mã trạng thái phản hồi

201 Quá trình tạo ảnh chụp nhanh đã bắt đầu thành công.
400 Bad Request - Invalid parameters or snapshot limit reached
401 Không được phép - Mã xác thực không hợp lệ hoặc bị thiếu.
404 Not Found - Server does not exist
Ghi chú: 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.
BƯU KIỆN /api/v1/snapshots/{snapshot_id}/restore/

Khôi phục từ ảnh chụp nhanh

Restore a server to the state captured in a snapshot. This will overwrite all current data on the server.

Tham số đường dẫn

Tham số Kiểu Yêu cầu Sự miêu tả
snapshot_id integer Đúng ID ảnh chụp duy nhất

Ví dụ về yêu cầu

cURL
Python
JavaScript
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);

Ví dụ về câu trả lời

{
  "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"
  }
}

Mã trạng thái phản hồi

200 Quá trình khôi phục đã bắt đầu thành công.
400 Bad Request - Server is not in a valid state for restoration
401 Không được phép - Mã xác thực không hợp lệ hoặc bị thiếu.
404 Không tìm thấy - Ảnh chụp màn hình không tồn tại
Cảnh báo: 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.
XÓA BỎ /api/v1/snapshots/{snapshot_id}/

Xóa ảnh chụp nhanh

Xóa vĩnh viễn ảnh chụp màn hình. Thao tác này không thể hoàn tác.

Tham số đường dẫn

Tham số Kiểu Yêu cầu Sự miêu tả
snapshot_id integer Đúng ID ảnh chụp duy nhất

Ví dụ về yêu cầu

cURL
Python
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)

Mã trạng thái phản hồi

204 Ảnh chụp màn hình đã được xóa thành công
401 Không được phép - Mã xác thực không hợp lệ hoặc bị thiếu.
404 Không tìm thấy - Ảnh chụp màn hình không tồn tại

Snapshots vs Backups

Understanding when to use snapshots versus backups:

API ảnh chụp nhanh

  • Mục đích: Quick point-in-time recovery
  • Tốc độ: Faster to create and restore (3-15 min)
  • Trường hợp sử dụng: Before risky operations (updates, config changes)
  • Kho: Stored on same infrastructure
  • Giới hạn: 5 snapshots per server
  • Phù hợp nhất cho: Short-term rollback capability

API sao lưu

  • Mục đích: Long-term data protection
  • Tốc độ: Slower to create and restore (varies)
  • Trường hợp sử dụng: Regular automated data protection
  • Kho: Separate backup storage
  • Giới hạn: 10 manual + automatic backups
  • Phù hợp nhất cho: Disaster recovery and compliance

Best Practices