Passer au contenu principal
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Lister les fichiers d’un répertoire

api.GetApplicationFiles(appID, path) renvoie les entrées d’un répertoire sous forme de []squarecloud.FileInfo. Un chemin vide liste la racine de l’application.
entries, err := api.GetApplicationFiles("abc123def456abc123def456", "")
if err != nil {
	panic(err)
}

for _, entry := range entries {
	fmt.Println(entry.Type, entry.Name, entry.Size, entry.LastModified)
}
ChampTypeDescription
Typestring"file" ou "directory"
NamestringNom de l’entrée
SizeintTaille en octets — toujours 0 pour les répertoires
LastModifiedint64Dernière modification en millisecondes Unix

Lire un fichier

api.ReadApplicationFile(appID, path) renvoie un squarecloud.FileContent avec les octets du fichier.
content, err := api.ReadApplicationFile("abc123def456abc123def456", "main.go")
if err != nil {
	panic(err)
}

fmt.Println(string(content.Data))
L’API renvoie le contenu sous forme d’objet Buffer à la Node.js ({"type": "Buffer", "data": [...]}). Le SDK le décode pour vous — content.Data est un simple []byte (le type ByteArray), prêt à l’emploi.

Créer ou écraser un fichier

api.PutApplicationFile(appID, path, content) écrit content à l’emplacement path, en créant le fichier s’il n’existe pas ou en l’écrasant s’il existe. Elle renvoie un squarecloud.FileWritten.
written, err := api.PutApplicationFile(
	"abc123def456abc123def456",
	"config/settings.json",
	[]byte(`{"debug": false}`),
)
if err != nil {
	panic(err)
}

fmt.Println(written.Written) // true
Le contenu est envoyé à l’API sous forme de chaîne UTF-8 — l’envoi de fichiers binaires n’est pas encore pris en charge. Pour livrer des fichiers binaires, utilisez plutôt un commit.

Déplacer ou renommer un fichier

api.MoveApplicationFile(appID, path, to) déplace ou renomme un fichier.
err := api.MoveApplicationFile("abc123def456abc123def456", "main.go", "src/main.go")
if err != nil {
	panic(err)
}

Supprimer un fichier ou un répertoire

Supprimer un répertoire supprime tout ce qu’il contient. Il n’existe aucun moyen de récupérer les fichiers supprimés à moins d’avoir un snapshot.
err := api.DeleteApplicationFile("abc123def456abc123def456", "src/old.go")
if err != nil {
	panic(err)
}