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 aus Client erstellen. app_id ist die ID einer deiner Apps: client.account.me() listet sie auf.
Snapshots auflisten
Einen Snapshot erstellen
create() wartet auf den Snapshot (mindestens 120 s, bevor ein Timeout eintritt). Ein großer Snapshot wird möglicherweise nicht rechtzeitig fertig: Die API antwortet dann mit 202 und das SDK gibt {'pending': True} zurück. Der Snapshot wird weiter erstellt und erscheint von selbst in list(), meist innerhalb von 2 Minuten. Andernfalls gibt die Methode {'pending': False, 'url': ..., 'key': ...} zurück.
Snapshot wiederherstellen
restore(id, name, version_id) nimmt den name und die version_id eines aufgelisteten Snapshots.
Einen Snapshot herunterladen
client.download_snapshot(url, dest) streamt eine Snapshot-Datei von ihrer signierten url (aus list() oder create()) auf die Festplatte und gibt den geschriebenen Pfad zurück. Die Methode ruft die API nicht auf: Der API-Schlüssel wird nie an den Speicher-Host gesendet. Nichts wird im Speicher gepuffert.
destist ein Dateipfad oder ein Verzeichnis, um den entfernten Dateinamen beizubehalten. Ein Pfad, der auf/endet, wird als Verzeichnis angelegt.- Die Daten werden in eine
.part-Datei geschrieben, die nach Abschluss umbenannt wird, sodass ein fehlgeschlagener Download nie eine frühere Datei überschreibt. - Es gibt kein Timeout für den gesamten Download:
timeoutbegrenzt jeden Lesevorgang.
AsyncSquareCloud lautet es await client.download_snapshot(url, dest).
Eine abgelaufene oder ungültige URL wirft einen SquareCloudAPIError mit dem HTTP-Status des Speicher-Hosts und UNKNOWN_ERROR. Ein Ziel, das sich nicht schreiben lässt, wirft einen OSError.
Konto-Snapshots
client.account.snapshots(scope=None) listet jeden Snapshot des Kontos auf, optional nur "applications" oder "databases" (reines Keyword-Argument). Dafür ist ein aktiver Plan nötig, und die Methode teilt sich das Rate Limit der Netzwerk-Endpoints (429 RATE_LIMITED).
Limits
create()ist auf einen Aufruf pro 180 Sekunden und auf ein tägliches, planabhängiges Kontingent begrenzt: Eine Überschreitung des Kontingents ergibt 429DAILY_SNAPSHOTS_LIMIT_REACHED.- Während eine Wiederherstellung läuft, ergibt das Löschen der App oder das Starten der Datenbank 403
RESTORE_IN_PROGRESS.
Nächste Schritte
Datenbanken
Datenbanken erstellen und verwalten.
API-Referenz für Snapshots
Die REST-Endpunkte hinter diesen Methoden.
Snapshots über die CLI
Dieselben Aktionen im Terminal.

