Skip to main content
Les snapshots sont des sauvegardes du stockage d’une application ou d’une base de données. Les applications et les bases de données partagent les trois mêmes méthodes :
  • 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)
Le nombre de snapshots que vous pouvez créer par jour dépend de votre plan (voir Limites). Chaque extrait ci-dessous s’exécute seul dans ce programme : collez-en un à la fois dans main et lancez goimports (voir Exécuter les exemples).

Lister les snapshots

Créer un snapshot

Create attend le snapshot (sans échéance sur ctx, au moins 2 minutes avant d’expirer). Un gros snapshot peut ne pas se terminer à temps : l’API répond alors 202 et le SDK renvoie un SnapshotCreated avec Pending à true et une erreur nil. 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.
N’appelez jamais Create à nouveau pour vérifier un snapshot en attente : cela en lance un nouveau et compte dans le quota quotidien de snapshots du plan. Interrogez plutôt List.

Restaurer un snapshot

Restore(ctx, id, name, versionID) prend le Name et le VersionID d’un snapshot listé.

Télécharger un snapshot

c.DownloadSnapshot(ctx, url, w) diffuse en flux un fichier de snapshot depuis son url signée (issue de List ou de Create) vers n’importe quel io.Writer. Elle n’appelle pas l’API : la clé API n’est jamais envoyée à l’hôte de stockage, et l’URL n’apparaît jamais dans l’erreur renvoyée. Rien n’est mis en mémoire tampon, et il n’y a pas d’échéance par défaut (bornez ou annulez l’appel avec ctx). Une erreur réseau survenue avant la réponse est réessayée comme n’importe quel GET.
Une URL expirée ou invalide renvoie une *APIError avec le statut HTTP de l’hôte de stockage et UNKNOWN_ERROR. Une URL qui ne peut pas être analysée, ainsi qu’une erreur de votre io.Writer, sont renvoyées comme des erreurs ordinaires.

Snapshots du compte

c.Account.Snapshots(ctx, scope) liste tous les snapshots du compte. Passez "" pour tous les obtenir, ou squarecloud.SnapshotScopeApplications ou squarecloud.SnapshotScopeDatabases. 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 429 DAILY_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.