Passer au contenu principal
Les snapshots sont des sauvegardes de votre application ou base de données à un instant précis. Ils vous permettent de restaurer votre application ou base de données à un état antérieur si nécessaire. Square Cloud fournit des snapshots illimités avec des sauvegardes quotidiennes automatiques.

Créer un snapshot d’application

client.snapshot renvoie un objet Snapshot.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    snapshot = await client.snapshot(app_id='application_id')
    
    print(snapshot.url)  # Download URL for the snapshot
    print(snapshot.key)  # Snapshot key identifier

Télécharger un snapshot

L’objet Snapshot fournit une méthode pour télécharger le snapshot sous forme de fichier zip.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    snapshot = await client.snapshot(app_id='application_id')
    
    # Download snapshot to current directory
    zip_file = await snapshot.download()
    
    # Download snapshot to specific directory
    zip_file = await snapshot.download(path='./backups')

Lister les snapshots d’une application

client.all_app_snapshots renvoie une liste d’objets SnapshotInfo.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    snapshots = await client.all_app_snapshots(app_id='application_id')
    
    for snapshot in snapshots:
        print(f"Snapshot ID: {snapshot.id}")
        print(f"  Size: {snapshot.size}")
        print(f"  Created at: {snapshot.created_at}")

Restaurer un snapshot

client.restore_snapshot renvoie un objet Response. Vous pouvez restaurer des snapshots aussi bien pour les applications que pour les bases de données.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    # Restore an application snapshot
    response = await client.restore_snapshot(
        application_type='app',
        app_id='application_id',
        snapshot_id='snapshot_id',
        version_id='version_id'
    )
    
    print(f"Snapshot restored: {response.status}")
    
    # Restore a database snapshot
    response = await client.restore_snapshot(
        application_type='database',
        app_id='database_id',
        snapshot_id='snapshot_id',
        version_id='version_id'
    )
    
    print(f"Database snapshot restored: {response.status}")

Structures de données des snapshots

Snapshot

L’objet Snapshot représente un snapshot créé :
PropriétéTypeDescription
urlstrURL de téléchargement du snapshot
keystrIdentifiant unique du snapshot

SnapshotInfo

L’objet SnapshotInfo représente les métadonnées d’un snapshot :
PropriétéTypeDescription
idstrIdentifiant unique du snapshot
sizestrTaille du snapshot
created_atstrHorodatage de création du snapshot (ISO 8601)

Bonnes pratiques

  • Sauvegardes automatiques : Square Cloud crée automatiquement des snapshots quotidiens pour vos applications et bases de données.
  • Snapshots illimités : créez autant de snapshots manuels que nécessaire, sans coût supplémentaire.
  • Période de rétention : les snapshots sont conservés pendant 30 jours.
  • Temps de restauration : le processus de restauration prend environ 60 secondes afin de garantir la stabilité de toutes les données.
  • Tests : avant de restaurer un snapshot, envisagez de créer une nouvelle application ou base de données pour tester d’abord le processus de restauration.

Limites des snapshots

  • Snapshots quotidiens par plan : chaque plan peut générer (RAM / 256) * 2 snapshots par jour
    • Exemple : plan Hobby avec 2048 Mo = 16 snapshots quotidiens (480 par mois)
  • Rétention : tous les snapshots sont conservés pendant les 30 derniers jours
  • Coût : aucun coût supplémentaire pour les snapshots