c.Apps.Snapshots:List(ctx, appID)、Create(ctx, appID)、Restore(ctx, appID, name, versionID)c.Databases.Snapshots:List(ctx, databaseID)、Create(ctx, databaseID)、Restore(ctx, databaseID, name, versionID)
main 中,然后运行 goimports(参见运行示例)。
列出 snapshot
创建 snapshot
Create 会等待 snapshot 完成(在 ctx 没有截止时间的情况下,至少 2 分钟后才会超时)。较大的 snapshot 可能无法及时完成:此时 API 返回 202,SDK 返回 Pending 为 true 的 SnapshotCreated,错误为 nil。snapshot 会继续生成,并自行出现在 List 中,通常在 2 分钟以内。
恢复 snapshot
Restore(ctx, id, name, versionID) 接受已列出的 snapshot 的 Name 和 VersionID。
下载 snapshot
c.DownloadSnapshot(ctx, url, w) 从 snapshot 已签名的 url(来自 List 或 Create)以流的方式将 snapshot 文件写入任意 io.Writer。它不会调用 API:API 密钥绝不会被发送到存储主机,且该 URL 绝不会出现在返回的错误中。它不在内存中缓冲任何内容,也没有默认截止时间(请通过 ctx 限制或取消)。在收到响应之前发生的网络错误会像任何 GET 一样被重试。
*APIError,带有存储主机的 HTTP 状态和 UNKNOWN_ERROR。无法解析的 URL 以及你的 io.Writer 返回的错误会作为普通错误返回。
账户 snapshot
c.Account.Snapshots(ctx, scope) 列出账户的所有 snapshot。传入 "" 表示全部,或传入 squarecloud.SnapshotScopeApplications 或 squarecloud.SnapshotScopeDatabases。它需要有效的套餐,并与网络 endpoint 共享速率限制(429 RATE_LIMITED)。
限制
Create限制为每 180 秒调用一次,并受取决于套餐的每日配额限制:超出配额会返回 429DAILY_SNAPSHOTS_LIMIT_REACHED。- 恢复进行期间,删除应用或启动数据库会返回 403
RESTORE_IN_PROGRESS。
后续步骤
数据库
创建和管理数据库。
Snapshot API 参考
这些方法背后的 REST 端点。
用 CLI 管理 snapshot
在终端中完成同样的操作。

