VPS.org API

ឯកសារ REST API

API រូបភាព​សង្ខេប

គ្រប់គ្រងរូបភាពម៉ាស៊ីនមេសម្រាប់ការស្តារឡើងវិញនៅចំណុចណាមួយបានយ៉ាងរហ័ស។ រូបភាពចាប់យកស្ថានភាពពេញលេញនៃម៉ាស៊ីនមេរបស់អ្នក។

ចំណុចបញ្ចប់ 4 endpoints
ផ្លូវមូលដ្ឋាន /api/v1/snapshots
ទទួលបាន /api/v1/snapshots/

រាយបញ្ជីរូបថតអេក្រង់ទាំងអស់

ទាញយកបញ្ជីនៃរូបថតអេក្រង់ទាំងអស់នៅទូទាំងម៉ាស៊ីនមេរបស់អ្នក។

ប៉ារ៉ាម៉ែត្រសំណួរ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
server_id integer គ្មាន ត្រងរូបថតអេក្រង់តាមលេខសម្គាល់ម៉ាស៊ីនមេ

សំណើឧទាហរណ៍

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);

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "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 គ្មានការអនុញ្ញាត - សញ្ញាសម្ងាត់ផ្ទៀងផ្ទាត់មិនត្រឹមត្រូវ ឬបាត់
ផ្ញើ​សារ /api/v1/snapshots/

បង្កើត​រូបភាព​សង្ខេប

បង្កើត​រូបថត​របស់​ស្ថានភាព​បច្ចុប្បន្ន​របស់​ម៉ាស៊ីន​បម្រើ & # 160; ។ រូបថត​គឺ​ជា​ច្បាប់​ចម្លង​ចំណុច​ក្នុង​ពេល​វេលា​របស់​ម៉ាស៊ីន​បម្រើ​ទាំងមូល & # 160; ។

ស្នើសុំប៉ារ៉ាម៉ែត្រតួ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
server_id integer បាទ/ចាស៎ លេខសម្គាល់របស់ម៉ាស៊ីនមេដើម្បីថតរូបភាព
name string បាទ/ចាស៎ ឈ្មោះសម្រាប់រូបថតអេក្រង់ (អក្សរក្រមលេខ សហសញ្ញា សញ្ញាគូសក្រោម)
description string គ្មាន ការពិពណ៌នាជាជម្រើសសម្រាប់រូបថតអេក្រង់

សំណើឧទាហរណ៍

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);

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "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 ការបង្កើត Snapshot បានចាប់ផ្ដើមដោយជោគជ័យ
400 Bad Request - Invalid parameters or snapshot limit reached
401 គ្មានការអនុញ្ញាត - សញ្ញាសម្ងាត់ផ្ទៀងផ្ទាត់មិនត្រឹមត្រូវ ឬបាត់
404 Not Found - Server does not exist
ចំណាំ & # 160; ៖ 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.
ផ្ញើ​សារ /api/v1/snapshots/{snapshot_id}/restore/

ស្ដារឡើងវិញពី Snapshot

ស្ដារ​ម៉ាស៊ីន​បម្រើ​ទៅ​ស្ថានភាព​ដែល​បាន​ចាប់​យក​ក្នុង​រូបថត​ស្គ្រីប & # 160; ។ វា​នឹង​សរសេរ​ជាន់​លើ​ទិន្នន័យ​បច្ចុប្បន្ន​ទាំងអស់​លើ​ម៉ាស៊ីន​បម្រើ & # 160; ។

ប៉ារ៉ាម៉ែត្រផ្លូវ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
snapshot_id integer បាទ/ចាស៎ លេខសម្គាល់រូបថតអេក្រង់តែមួយគត់

សំណើឧទាហរណ៍

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);

ឧទាហរណ៍នៃការឆ្លើយតប

{
  "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 រកមិនឃើញ - មិនមាន Snapshot ទេ
ការព្រមាន៖ 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.
លុប /api/v1/snapshots/{snapshot_id}/

លុប​រូបភាព​អេក្រង់

លុបរូបថតអេក្រង់ជាអចិន្ត្រៃយ៍។ សកម្មភាពនេះមិនអាចត្រឡប់វិញបានទេ។

ប៉ារ៉ាម៉ែត្រផ្លូវ

ប៉ារ៉ាម៉ែត្រ ប្រភេទ តម្រូវឲ្យមាន សេចក្ដី​ពិពណ៌នា
snapshot_id integer បាទ/ចាស៎ លេខសម្គាល់រូបថតអេក្រង់តែមួយគត់

សំណើឧទាហរណ៍

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)

លេខកូដស្ថានភាពឆ្លើយតប

204 បានលុបរូបថតអេក្រង់ដោយជោគជ័យ
401 គ្មានការអនុញ្ញាត - សញ្ញាសម្ងាត់ផ្ទៀងផ្ទាត់មិនត្រឹមត្រូវ ឬបាត់
404 រកមិនឃើញ - មិនមាន Snapshot ទេ

Snapshots vs Backups

យល់​ពេល​ប្រើ​រូបថត​ស្គ្រីប​ប្រឆាំង​នឹង​ការ​បម្រុង​ទុក & # 160; ៖

API រូបភាព​សង្ខេប

  • គោលបំណង៖ Quick point-in-time recovery
  • ល្បឿន៖ Faster to create and restore (3-15 min)
  • ករណីប្រើប្រាស់៖ Before risky operations (updates, config changes)
  • ការផ្ទុក៖ Stored on same infrastructure
  • ដែន​កំណត់ & # 160; ៖ 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
  • ដែន​កំណត់ & # 160; ៖ 10 manual + automatic backups
  • ល្អបំផុតសម្រាប់៖ Disaster recovery and compliance

វិធីសាស្ត្រ​ល្អ