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 présenté dans Créer le client. app_id est l’identifiant de l’une de vos applications : client.account.me() les liste.
Lister les snapshots
Créer un snapshot
create() attend le snapshot (au moins 120 s avant d’expirer). Un gros snapshot peut ne pas se terminer à temps : l’API répond alors 202 et le SDK renvoie {'pending': True}. Le snapshot continue de se générer et apparaît de lui-même dans list(), généralement en moins de 2 minutes. Sinon, elle renvoie {'pending': False, 'url': ..., 'key': ...}.
Restaurer un snapshot
restore(id, name, version_id) prend le name et le version_id d’un snapshot listé.
Télécharger un snapshot
client.download_snapshot(url, dest) diffuse en flux un fichier de snapshot depuis son url signée (issue de list() ou de create()) vers le disque et renvoie le chemin qu’elle a écrit. Elle n’appelle pas l’API : la clé API n’est jamais envoyée à l’hôte de stockage. Rien n’est mis en mémoire tampon.
destest un chemin de fichier, ou un répertoire pour conserver le nom du fichier distant. Un chemin se terminant par/est créé en tant que répertoire.- Les données sont écrites dans un fichier
.partqui est renommé une fois complet, de sorte qu’un téléchargement échoué n’écrase jamais un fichier existant. - Il n’y a pas de timeout pour l’ensemble du téléchargement :
timeoutborne chaque lecture.
AsyncSquareCloud, c’est await client.download_snapshot(url, dest).
Une URL expirée ou invalide lève une SquareCloudAPIError avec le statut HTTP de l’hôte de stockage et UNKNOWN_ERROR. Une destination impossible à écrire lève une OSError.
Snapshots du compte
client.account.snapshots(scope=None) liste tous les snapshots du compte, éventuellement uniquement "applications" ou "databases" (argument uniquement nommé). Elle nécessite un plan actif et partage la limite de débit des endpoints réseau (429 RATE_LIMITED).
Limites
create()est limitée à un appel toutes les 180 secondes et à un quota quotidien qui dépend du plan : dépasser le quota donne 429DAILY_SNAPSHOTS_LIMIT_REACHED.- Pendant une restauration, supprimer l’application ou démarrer la base de données donne 403
RESTORE_IN_PROGRESS.
Prochaines étapes
Bases de données
Créez et gérez des bases de données.
Référence de l'API des snapshots
Les endpoints REST derrière ces méthodes.
Snapshots depuis la CLI
Les mêmes actions depuis le terminal.

