Skip to content

列出雲端備份 ​

查詢目前客戶端登入帳號及所選儲存提供者的備份。此介面不會讀取本機環境目錄的即時大小,也不會還原環境。

請求 ​

http
GET /api/listCloudBackups
api-key: REPLACE_WITH_LOCAL_API_KEY

須保持客戶端執行,登入有效 VIP(專業版)會員,並具備 local_api 及雲端同步權限。從客戶端 API 頁面複製實際本機服務位址和 api-key;API 連接埠動態配置,不是瀏覽器 CDP 連接埠。參見概述與認證。

Query 參數 ​

參數類型必填說明
providerstring否僅接受 oss 或 webdav;預設使用客戶端全域雲端同步提供者。
pageinteger否從 1 開始的正整數,預設 1;須在 JavaScript 安全整數範圍內。
pageSizeinteger否1~1000,預設 50。

只接受以上三個 Query 參數,未知參數回傳 HTTP 400。分頁值必須是無前導零的十進位正整數字串;空值、0、負數、小數或超出範圍的值都會被拒絕,不會自動修正。兩個分頁參數各自採用預設值,不必成對傳入。

有效備份去除重複後,先依 cloudId 區分大小寫的 ASCII 遞增順序排序,再分頁。不支援使用者指定排序參數。

使用 webdav 前,須先在客戶端儲存伺服器、帳號及基礎目錄設定。介面僅使用這些已儲存的設定;不能透過參數傳入 WebDAV 位址、使用者名稱、認證密碼或 webdav 物件。

cURL ​

執行前將兩處預留值替換為客戶端 API 頁面的實際值。以下使用 Bash 語法,不含可用憑證。

bash
BASE_URL='http://127.0.0.1:REPLACE_WITH_API_PORT'
API_KEY='REPLACE_WITH_LOCAL_API_KEY'
curl --get "${BASE_URL}/api/listCloudBackups" \
  --header "api-key: ${API_KEY}" \
  --data-urlencode 'provider=oss' \
  --data-urlencode 'page=1' \
  --data-urlencode 'pageSize=50'

Python ​

python
import requests

base_url = "http://127.0.0.1:REPLACE_WITH_API_PORT"
response = requests.get(
    f"{base_url}/api/listCloudBackups",
    headers={"api-key": "REPLACE_WITH_LOCAL_API_KEY"},
    params={"provider": "oss", "page": 1, "pageSize": 50},
    timeout=60,
)
response.raise_for_status()
print(response.json())

成功回應 ​

HTTP 200;以下 ID 及名稱均為虛構範例。

json
{
  "success": true,
  "data": [
    {
      "cloudId": "8f2b6a91-3d74-4c65-9e20-5a1c7d8b9034",
      "name": "EXAMPLE_CLOUD_PROFILE",
      "provider": "oss",
      "envSizeBytes": 10485760,
      "envSizeMB": "10.00",
      "localIds": [12, 35]
    }
  ],
  "total": 1,
  "page": 1,
  "pageSize": 50,
  "provider": "oss"
}
欄位類型說明
successboolean列表查詢成功時為 true。
dataobject[]目前頁面的雲端備份,依 cloudId ASCII 遞增順序排列,可為空陣列。
data[].cloudIdstring雲端備份識別碼,不是本機環境 ID。
data[].namestring雲端中繼資料中的名稱,可能為空字串。
data[].providerstring所選提供者 oss 或 webdav。
data[].envSizeBytesinteger雲端中繼資料中的備份位元組數,為非負整數;缺少或無效時為 0。
data[].envSizeMBstringenvSizeBytes / 1024 / 1024,保留兩位小數的字串。
data[].localIdsinteger[]已繫結相同備份及提供者的本機環境正整數 ID;沒有符合項目時為空陣列。
totalinteger有效備份去除重複後、分頁前的總數,不是目前頁面長度。
page、pageSizeinteger實際分頁值;頁碼超出末頁時 data 為空陣列。
providerstring整個回應實際使用的提供者。

名稱及大小來自雲端中繼資料,不是本機磁碟即時資料:OSS 使用雲端列表中繼資料,WebDAV 使用 .meta.json 的名稱及 .dat 物件回報的大小。localIds 同時比對 cloudId 及提供者;WebDAV 還須符合已設定的伺服器、帳號及基礎目錄,其他 WebDAV 設定中的相同雲端 ID 不算符合。

localIds 只表示關聯,不表示自動雲端同步已啟用;還原後關閉自動同步的環境仍可能出現在這裡。

將 cloudId 傳給從雲端備份還原。即使 localIds 非空,還原介面也不會覆寫這些環境。

錯誤回應 ​

新介面本身產生的錯誤使用以下結構:

json
{
  "success": false,
  "code": "INVALID_PARAMETERS",
  "error": "Invalid request parameters"
}
HTTPcode說明
400INVALID_PARAMETERS未知 Query 參數或分頁參數無效。
400INVALID_PROVIDER提供者不是精確的 oss 或 webdav。
400WEBDAV_CONFIG_REQUIRED客戶端儲存的 WebDAV 設定缺少或無效。
401AUTH_REQUIRED / LOGIN_REQUIRED需要登入客戶端。缺少或無效的 api-key 也會由全域中介軟體回傳 401。
403VIP_REQUIRED雲端同步 VIP 權限缺少或過期。缺少 local_api 授權也會由全域中介軟體回傳 403。
409CLOUD_SESSION_CHANGED操作過程中切換了登入帳號;再次請求前確認目前帳號。
502CLOUD_BACKUP_LIST_FAILED / WEBDAV_AUTH_FAILED雲端列表查詢失敗,或已儲存的 WebDAV 憑證認證失敗。
503CLOUD_SYNC_UNAVAILABLE客戶端雲端同步模組無法使用。
504REQUEST_TIMEOUT偵測到的雲端傳輸逾時。

現有全域認證中介軟體可能只回傳 success 和 error,沒有 code。請同時檢查 HTTP 狀態及回應內容,參見錯誤碼與回應相容。