本节详细介绍 Blocklet Server 中用于数据管理和操作任务的变更操作,主要侧重于创建和管理备份,以及迁移数据结构。这些操作对于数据完整性、更新和灾难恢复至关重要。
有关备份和日志的查询,请参阅 数据与操作查询 文档。
backupBlocklet
为指定的 blocklet 启动备份过程。备份可以保存到本地磁盘或已配置的 DID Space。这是一个异步操作,会在后台启动一个备份作业。
参数
- input
RequestBackupBlockletInput(required) — backupBlocklet 变更操作的输入对象。- appDid
string(required) — 要备份的 blocklet 的 DID。 - to
BackupTo(required) — 备份的目标位置。必须是spaces或disk之一。
- appDid
返回
返回一个 GeneralResponse 对象,指示请求的状态。
- backupBlocklet
GeneralResponse— 变更操作的响应对象。- 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('已启动备份:', response.code);
} catch (error) {
console.error('启动备份时出错:', error);
}
}
createBackup();响应示例
{
"backupBlocklet": {
"code": "ok"
}
}此示例展示了如何为特定 blocklet 启动备份过程,并将备份保存到本地磁盘。
abortBlockletBackup
中止特定 blocklet 正在进行的备份操作。这对于取消长时间运行的备份非常有用。
参数
- input
RequestAbortBlockletBackupInput(required) — abortBlockletBackup 变更操作的输入对象。- appPid
string(required) — 要中止备份的 blocklet 的进程 ID(即 blocklet DID)。
- appPid
返回
返回一个 GeneralResponse 对象,指示请求的状态。
- abortBlockletBackup
GeneralResponse— 变更操作的响应对象。- 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('已请求取消备份:', response.code);
} catch (error) {
console.error('中止备份时出错:', error);
}
}
cancelBackup('z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G');响应示例
{
"abortBlockletBackup": {
"code": "ok"
}
}此示例演示了如何取消给定 blocklet 正在运行的备份。
restoreBlocklet
从备份中恢复一个 blocklet。备份的来源可以是本地磁盘或 DID Space。如果已存在该 blocklet,此操作将覆盖现有数据。
参数
- input
RequestRestoreBlockletInput(required) — restoreBlocklet 变更操作的输入对象。- 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— 变更操作的响应对象。- 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('已启动恢复:', response.code);
} catch (error) {
console.error('启动恢复时出错:', error);
}
}
restoreFromBackup();响应示例
{
"restoreBlocklet": {
"code": "ok"
}
}此示例展示了如何从本地磁盘备份中为 blocklet 启动恢复过程。
migrateApplicationToStructV2
将应用程序从旧的数据结构迁移到 V2 结构。这是一次性操作,通常是旧版 blocklet 为了支持组件化和增强的备份/恢复功能等新特性所必需的。
参数
- input
RequestMigrateApplicationToStructV2Input(required) — 迁移变更操作的输入对象。- did
string(required) — 要迁移的应用程序的 DID。 - appSk
string(required) — 应用程序的密钥。
- did
返回
返回一个 GeneralResponse 对象,指示请求的状态。
- migrateApplicationToStructV2
GeneralResponse— 变更操作的响应对象。- 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('迁移成功:', response.code);
} catch (error) {
console.error('迁移应用程序时出错:', error);
}
}
migrateApp('z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G', 'your_app_secret_key');响应示例
{
"migrateApplicationToStructV2": {
"code": "ok"
}
}此示例展示了如何为旧版应用程序触发数据结构迁移。