Saltar al contenido principal
Los snapshots son copias de seguridad de tu aplicación o base de datos en un momento específico. Te permiten restaurar tu aplicación o base de datos a un estado anterior si es necesario. Square Cloud ofrece snapshots ilimitados con copias de seguridad diarias automáticas.

Crear un snapshot de una aplicación

client.snapshot devuelve un objeto 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

Descargar un snapshot

El objeto Snapshot proporciona un método para descargar el snapshot como un archivo 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')

Listar los snapshots de una aplicación

client.all_app_snapshots devuelve una lista de objetos 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}")

Restaurar un snapshot

client.restore_snapshot devuelve un objeto Response. Puedes restaurar snapshots tanto de aplicaciones como de bases de datos.
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}")

Estructuras de datos de los snapshots

Snapshot

El objeto Snapshot representa un snapshot creado:
PropiedadTipoDescripción
urlstrURL de descarga del snapshot
keystrIdentificador único del snapshot

SnapshotInfo

El objeto SnapshotInfo representa los metadatos de un snapshot:
PropiedadTipoDescripción
idstrIdentificador único del snapshot
sizestrTamaño del snapshot
created_atstrMarca de tiempo de creación del snapshot (ISO 8601)

Buenas prácticas

  • Copias de seguridad automáticas: Square Cloud crea automáticamente snapshots diarios de tus aplicaciones y bases de datos.
  • Snapshots ilimitados: Crea tantos snapshots manuales como necesites sin costes adicionales.
  • Periodo de retención: Los snapshots se conservan durante 30 días.
  • Tiempo de restauración: El proceso de restauración tarda aproximadamente 60 segundos para garantizar que todos los datos estén estables.
  • Pruebas: Antes de restaurar un snapshot, considera crear una nueva aplicación o base de datos para probar primero el proceso de restauración.

Límites de los snapshots

  • Snapshots diarios por plan: Cada plan puede generar (RAM / 256) * 2 snapshots por día
    • Ejemplo: plan Hobby con 2048MB = 16 snapshots diarios (480 al mes)
  • Retención: Todos los snapshots se conservan durante los últimos 30 días
  • Coste: Sin coste adicional por los snapshots