Zum Hauptinhalt springen
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Eine neue Anwendung hochladen

api.PostApplications(reader) lädt eine Zip-Datei aus einem beliebigen io.Reader hoch und erstellt eine brandneue Anwendung; zurück kommt ein *squarecloud.ApplicationUploaded.
file, err := os.Open("app.zip")
if err != nil {
	panic(err)
}
defer file.Close()

uploaded, err := api.PostApplications(file)
if err != nil {
	panic(err)
}

fmt.Println(uploaded.ID)               // newly created application ID
fmt.Println(uploaded.Name)             // display name
fmt.Println(uploaded.RAM)              // allocated RAM in MB
fmt.Println(uploaded.CPU)              // allocated CPU shares
fmt.Println(uploaded.Language.Name)    // e.g. "go"
fmt.Println(uploaded.Language.Version) // e.g. "1.24"
Description und Subdomain sind nur vorhanden, wenn sie in der Konfigurationsdatei gesetzt sind.
Die Zip-Datei muss den Einstiegspunkt deiner Anwendung, ihre Abhängigkeitsdatei und die Konfigurationsdatei squarecloud.app/squarecloud.config enthalten. Siehe den Leitfaden zur Konfigurationsdatei.

Dateien in eine bestehende Anwendung committen

api.PostApplicationCommit(appID, reader) lädt eine Zip-Datei in eine bereits deployte Anwendung hoch und ersetzt die übereinstimmenden Dateien.
file, err := os.Open("dist.zip")
if err != nil {
	panic(err)
}
defer file.Close()

err = api.PostApplicationCommit("abc123def456abc123def456", file)
if err != nil {
	panic(err)
}
Um in ein Unterverzeichnis statt in das Anwendungs-Root zu committen, übergib den Query-Parameter path mit rest.WithQueryParam:
err = api.PostApplicationCommit(
	"abc123def456abc123def456",
	file,
	rest.WithQueryParam("path", "src"),
)
Ein Commit startet die Anwendung nicht neu — sende danach ein Restart-Signal, wenn deine Änderung eines erfordert:
err = api.PostApplicationSignal("abc123def456abc123def456", squarecloud.ApplicationSignalRestart)