Skip to main content
Snapshot は、アプリやデータベースのストレージのバックアップです。アプリとデータベースは同じ 3 つのメソッドを共有しています:
  • api.apps.snapshots: list(appId)、create(appId)、restore(appId, name, versionId)
  • api.databases.snapshots: list(databaseId)、create(databaseId)、restore(databaseId, name, versionId)
1 日に作成できる snapshot の数はプランによって異なります (制限を参照)。 サンプルでは、クライアントの作成で作成した api クライアントを使います。appId はあなたのアプリの ID で、api.account.me() で一覧できます。

Snapshot の一覧

Snapshot の作成

create() は snapshot の完了を待ちます (タイムアウトまで最低 120 秒)。大きな snapshot は時間内に終わらないことがあり、その場合 API は 202 を返し、SDK は { pending: true } を返します。snapshot の生成は続行され、通常 2 分以内に自動的に list() に表示されます。
保留中の snapshot を確認するために create() を再度呼び出さないでください。新しい snapshot が開始され、プランの 1 日あたりの snapshot 割り当てを消費します。代わりに list() をポーリングしてください。

Snapshot の復元

restore(id, name, versionId) は、一覧で取得した snapshot の name と version_id を受け取ります。

Snapshot のダウンロード

api.downloadSnapshot(url, { signal }) は、署名付き url (list() または create() から取得) から snapshot ファイルをストリーミングします。API は呼び出さないため、API キーがストレージホストに送信されることはありません。メモリに何もバッファリングせずに ReadableStream<Uint8Array> を返し、タイムアウトはありません (signal を渡してください)。
期限切れまたは無効な URL は、ストレージホストの HTTP ステータスと UNKNOWN_ERROR を持つ SquareCloudAPIError をスローします。

アカウントの snapshot

api.account.snapshots({ scope }) はアカウントのすべての snapshot を一覧します。オプションで "applications" または "databases" のみに絞り込めます。アクティブなプランが必要で、ネットワーク系 endpoint のレート制限を共有します (429 RATE_LIMITED)。

制限

  • create() は 180 秒に 1 回までに制限されており、さらにプランに応じた 1 日あたりの割り当てがあります。割り当てを超えると 429 DAILY_SNAPSHOTS_LIMIT_REACHED になります。
  • 復元の実行中は、アプリの削除やデータベースの起動は 403 RESTORE_IN_PROGRESS になります。

次のステップ

データベース

データベースを作成して管理します。

Snapshot API リファレンス

これらのメソッドが呼び出す REST endpoint。

CLI で snapshot を操作

同じ操作をターミナルから行います。