client.apps.snapshots:list(app_id)、create(app_id)、restore(app_id, name, version_id)client.databases.snapshots:list(database_id)、create(database_id)、restore(database_id, name, version_id)
client を使います。app_id はあなたのアプリの ID で、client.account.me() で一覧できます。
Snapshot の一覧
Snapshot の作成
create() は snapshot の完了を待ちます (タイムアウトまで最低 120 秒)。大きな snapshot は時間内に終わらないことがあり、その場合 API は 202 を返し、SDK は {'pending': True} を返します。snapshot の生成は続行され、通常 2 分以内に自動的に list() に表示されます。それ以外の場合は {'pending': False, 'url': ..., 'key': ...} を返します。
Snapshot の復元
restore(id, name, version_id) は、一覧で取得した snapshot の name と version_id を受け取ります。
Snapshot のダウンロード
client.download_snapshot(url, dest) は、署名付き url (list() または create() から取得) から snapshot ファイルをディスクにストリーミングし、書き込んだパスを返します。API は呼び出さないため、API キーがストレージホストに送信されることはありません。メモリには何もバッファリングされません。
destはファイルパス、またはリモートのファイル名を維持する場合はディレクトリです。/で終わるパスはディレクトリとして作成されます。- データは
.partファイルに書き込まれ、完了時にリネームされるため、ダウンロードに失敗しても既存のファイルが上書きされることはありません。 - ダウンロード全体のタイムアウトはありません。
timeoutは各読み取りの上限です。
AsyncSquareCloud では await client.download_snapshot(url, dest) です。
期限切れまたは無効な URL は、ストレージホストの HTTP ステータスと UNKNOWN_ERROR を持つ SquareCloudAPIError を送出します。書き込めない保存先は OSError を送出します。
アカウントの snapshot
client.account.snapshots(scope=None) はアカウントのすべての snapshot を一覧します。オプションで "applications" または "databases" のみに絞り込めます (キーワード専用)。アクティブなプランが必要で、ネットワーク系 endpoint のレート制限を共有します (429 RATE_LIMITED)。
制限
create()は 180 秒に 1 回までに制限されており、さらにプランに応じた 1 日あたりの割り当てがあります。割り当てを超えると 429DAILY_SNAPSHOTS_LIMIT_REACHEDになります。- 復元の実行中は、アプリの削除やデータベースの起動は 403
RESTORE_IN_PROGRESSになります。
次のステップ
データベース
データベースを作成して管理します。
Snapshot API リファレンス
これらのメソッドが呼び出す REST endpoint。
CLI で snapshot を操作
同じ操作をターミナルから行います。

