Skip to main content
Snapshot 是应用或数据库存储的备份。应用和数据库共享相同的三个方法:
  • api.apps.snapshots:list(appId)、create(appId)、restore(appId, name, versionId)
  • api.databases.snapshots:list(databaseId)、create(databaseId)、restore(databaseId, name, versionId)
每天可以创建多少个 snapshot 取决于你的套餐(参见限制)。 示例使用创建客户端中的 api 客户端。appId 是你的某个应用的 ID:api.account.me() 会列出它们。

列出 snapshot

创建 snapshot

create() 会等待 snapshot 完成(至少 120 秒后才会超时)。较大的 snapshot 可能无法及时完成:此时 API 返回 202,SDK 返回 { pending: true }。snapshot 会继续生成,并自行出现在 list() 中,通常在 2 分钟以内。
切勿通过再次调用 create() 来检查待处理的 snapshot:这会启动一个新的 snapshot,并计入套餐的每日 snapshot 配额。请改为轮询 list()。

恢复 snapshot

restore(id, name, versionId) 接受已列出的 snapshot 的 name 和 version_id。

下载 snapshot

api.downloadSnapshot(url, { signal }) 从 snapshot 已签名的 url(来自 list() 或 create())以流的方式获取 snapshot 文件。它不会调用 API:API 密钥绝不会被发送到存储主机。它返回一个 ReadableStream<Uint8Array>,不在内存中缓冲任何内容,且没有超时(请传入 signal)。
过期或无效的 URL 会抛出 SquareCloudAPIError,带有存储主机的 HTTP 状态和 UNKNOWN_ERROR。

账户 snapshot

api.account.snapshots({ scope }) 列出账户的所有 snapshot,也可以只列出 "applications" 或 "databases"。它需要有效的套餐,并与网络 endpoint 共享速率限制(429 RATE_LIMITED)。

限制

  • create() 限制为每 180 秒调用一次,并受取决于套餐的每日配额限制:超出配额会返回 429 DAILY_SNAPSHOTS_LIMIT_REACHED。
  • 恢复进行期间,删除应用或启动数据库会返回 403 RESTORE_IN_PROGRESS。

后续步骤

数据库

创建和管理数据库。

Snapshot API 参考

这些方法背后的 REST 端点。

用 CLI 管理 snapshot

在终端中完成同样的操作。