Vai al contenuto principale
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Elencare i file di una directory

api.GetApplicationFiles(appID, path) restituisce le voci di una directory come []squarecloud.FileInfo. Un percorso vuoto elenca la root dell’applicazione.
entries, err := api.GetApplicationFiles("abc123def456abc123def456", "")
if err != nil {
	panic(err)
}

for _, entry := range entries {
	fmt.Println(entry.Type, entry.Name, entry.Size, entry.LastModified)
}
CampoTipoDescrizione
Typestring"file" oppure "directory"
NamestringNome della voce
SizeintDimensione in byte — sempre 0 per le directory
LastModifiedint64Ultima modifica in millisecondi Unix

Leggere un file

api.ReadApplicationFile(appID, path) restituisce un squarecloud.FileContent con i byte del file.
content, err := api.ReadApplicationFile("abc123def456abc123def456", "main.go")
if err != nil {
	panic(err)
}

fmt.Println(string(content.Data))
L’API restituisce il contenuto come oggetto Buffer in stile Node.js ({"type": "Buffer", "data": [...]}). L’SDK lo decodifica per te — content.Data è un semplice []byte (il tipo ByteArray), pronto all’uso.

Creare o sovrascrivere un file

api.PutApplicationFile(appID, path, content) scrive content in path, creando il file se non esiste o sovrascrivendolo se esiste. Restituisce un squarecloud.FileWritten.
written, err := api.PutApplicationFile(
	"abc123def456abc123def456",
	"config/settings.json",
	[]byte(`{"debug": false}`),
)
if err != nil {
	panic(err)
}

fmt.Println(written.Written) // true
Il contenuto viene inviato all’API come stringa UTF-8 — l’upload di file binari non è ancora supportato. Per inviare file binari, usa invece un commit.

Spostare o rinominare un file

api.MoveApplicationFile(appID, path, to) sposta o rinomina un file.
err := api.MoveApplicationFile("abc123def456abc123def456", "main.go", "src/main.go")
if err != nil {
	panic(err)
}

Eliminare un file o una directory

L’eliminazione di una directory rimuove tutto ciò che contiene. Non c’è modo di recuperare i file eliminati, a meno che tu non abbia uno snapshot.
err := api.DeleteApplicationFile("abc123def456abc123def456", "src/old.go")
if err != nil {
	panic(err)
}