Vai al contenuto principale
Gli snapshot sostituiscono l’API backup / backups della v3. app.backup e app.backups sono ancora esportati nella v4 ma mostrano un avviso di deprecazione e reindirizzano a app.snapshots. Aggiorna il tuo codice per usare il nuovo nome.
app.snapshots espone lo SnapshotsModule.
const app = await api.applications.fetch("abc123def456abc123def456");
app.snapshots; // SnapshotsModule

Elencare gli snapshot

app.snapshots.list() restituisce un array di istanze Snapshot.
const snapshots = await app.snapshots.list();

for (const snap of snapshots) {
    console.log(snap.url);          // signed download URL (valid for 30 days)
    console.log(snap.size);         // bytes
    console.log(snap.modifiedAt);   // Date
    console.log(snap.key);          // signed query string
}
Ogni snapshot può essere scaricato direttamente:
const buffer = await snapshots[0].download();

Creare un nuovo snapshot

app.snapshots.create() avvia un nuovo snapshot e restituisce l’URL firmato e la key.
const fresh = await app.snapshots.create();
console.log(fresh.url); // valid for 30 days
console.log(fresh.key);

Download in un solo passaggio

app.snapshots.download() crea uno snapshot e lo scarica come Buffer.
import { writeFile } from "node:fs/promises";

const buffer = await app.snapshots.download();
await writeFile("./backup.zip", buffer);

Ripristinare da uno snapshot

app.snapshots.restore({ snapshotId, versionId }) riporta l’applicazione a una versione precedente dello snapshot.
await app.snapshots.restore({
    snapshotId: "00000000-0000-4000-8000-000000000000",
    versionId: "abc123def4567890",
});
CampoTipoDescrizione
snapshotIdstringIdentificatore dello snapshot (UUID v4)
versionIdstringIdentificatore della versione restituito da list()

Elencare gli snapshot a livello di account

api.user.snapshots(scope) restituisce ogni snapshot di tua proprietà su tutte le tue applicazioni o database.
const appSnapshots = await api.user.snapshots("applications");
const dbSnapshots  = await api.user.snapshots("databases");
api.user.snapshots() richiede un abbonamento a pagamento attivo.