本節詳細介紹了 Blocklet Server 中用於資料管理和操作任務的 mutation,主要側重於建立和管理備份,以及遷移資料結構。這些操作對於資料完整性、更新和災難復原至關重要。
有關備份和日誌的查詢,請參閱 資料與操作查詢 文件。
backupBlocklet
為指定的 blocklet 啟動備份程序。備份可以儲存到本地磁碟或已設定的 DID Space。這是一個非同步操作,會在背景啟動一個備份工作。
參數
- input
RequestBackupBlockletInput(required) — backupBlocklet mutation 的輸入物件。- appDid
string(required) — 要備份的 blocklet 的 DID。 - to
BackupTo(required) — 備份的目的地。必須是spaces或disk其中之一。
- appDid
返回值
返回一個 GeneralResponse 物件,表示請求的狀態。
- backupBlocklet
GeneralResponse— mutation 的回應物件。- code
StatusCode— 如果備份工作成功啟動,則返回ok。
- code
範例
將 Blocklet 備份至磁碟
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function createBackup() {
try {
const response = await client.backupBlocklet({
input: {
appDid: 'z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G',
to: 'disk',
},
});
console.log('Backup initiated:', response.code);
} catch (error) {
console.error('Error initiating backup:', error);
}
}
createBackup();範例回應
{
"backupBlocklet": {
"code": "ok"
}
}此範例展示了如何為特定 blocklet 啟動備份程序,並將備份儲存到本地磁碟。
abortBlockletBackup
中止特定 blocklet 正在進行的備份操作。這對於取消長時間執行的備份很有用。
參數
- input
RequestAbortBlockletBackupInput(required) — abortBlockletBackup mutation 的輸入物件。- appPid
string(required) — 應中止備份的 blocklet 的進程 ID(即 blocklet DID)。
- appPid
返回值
返回一個 GeneralResponse 物件,表示請求的狀態。
- abortBlockletBackup
GeneralResponse— mutation 的回應物件。- code
StatusCode— 如果成功請求中止備份,則返回ok。
- code
範例
中止備份
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function cancelBackup(blockletDid) {
try {
const response = await client.abortBlockletBackup({
input: {
appPid: blockletDid,
},
});
console.log('Backup cancellation requested:', response.code);
} catch (error) {
console.error('Error aborting backup:', error);
}
}
cancelBackup('z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G');範例回應
{
"abortBlockletBackup": {
"code": "ok"
}
}此範例展示了如何取消指定 blocklet 的正在執行的備份。
restoreBlocklet
從備份中還原 blocklet。備份來源可以是本地磁碟或 DID Space。如果現有的 blocklet 資料存在,此操作將會覆寫它。
參數
- input
RequestRestoreBlockletInput(required) — restoreBlocklet mutation 的輸入物件。- appDid
string(required) — 要還原的 blocklet 的 DID。 - appPid
string(required) — 正在還原的 blocklet 的進程 ID (DID)。 - from
BackupTo(required) — 備份的來源。必須是spaces或disk其中之一。 - endpoint
string— 備份端點 URL。從spaces還原時為必填項。 - delegation
string— 可選。用於存取備份的委託資訊。 - password
Bytes— 可選。如果備份已加密,則用於解密的密碼。 - wallet
any— 可選。如果需要,用於身份驗證的錢包物件。
- appDid
返回值
返回一個 GeneralResponse 物件,表示請求的狀態。
- restoreBlocklet
GeneralResponse— mutation 的回應物件。- code
StatusCode— 如果還原工作成功啟動,則返回ok。
- code
範例
從磁碟還原
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function restoreFromBackup() {
try {
const response = await client.restoreBlocklet({
input: {
appDid: 'z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G',
appPid: 'z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G',
from: 'disk',
},
});
console.log('Restore initiated:', response.code);
} catch (error) {
console.error('Error initiating restore:', error);
}
}
restoreFromBackup();範例回應
{
"restoreBlocklet": {
"code": "ok"
}
}此範例展示了如何從本地磁碟備份啟動 blocklet 的還原程序。
migrateApplicationToStructV2
將應用程式從舊的資料結構遷移到 V2 結構。這是一次性操作,通常是為了讓舊的 blocklet 支援新功能,如元件化和增強的備份/還原功能。
參數
- input
RequestMigrateApplicationToStructV2Input(required) — 遷移 mutation 的輸入物件。- did
string(required) — 要遷移的應用程式的 DID。 - appSk
string(required) — 應用程式的私鑰。
- did
返回值
返回一個 GeneralResponse 物件,表示請求的狀態。
- migrateApplicationToStructV2
GeneralResponse— mutation 的回應物件。- code
StatusCode— 如果遷移成功,則返回ok。
- code
範例
遷移應用程式
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function migrateApp(appDid, appSecretKey) {
try {
const response = await client.migrateApplicationToStructV2({
input: {
did: appDid,
appSk: appSecretKey,
},
});
console.log('Migration successful:', response.code);
} catch (error) {
console.error('Error migrating application:', error);
}
}
migrateApp('z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G', 'your_app_secret_key');範例回應
{
"migrateApplicationToStructV2": {
"code": "ok"
}
}此範例展示了如何為舊版應用程式觸發資料結構遷移。