Skip to main content
Jedes Snippet unten läuft für sich allein in diesem Programm: Füge jeweils eines in main ein und führe goimports aus (siehe Beispiele ausführen).

Akzeptierte Eingaben

Apps.Create und Apps.Commit nehmen einen beliebigen io.Reader und streamen ihn als multipart/form-data, ohne ihn je in den Speicher zu laden: Uploads sind auf 100 MB begrenzt. Eine größere Datei schlägt lokal mit FILE_TOO_LARGE (Status 0) fehl: bevor etwas gesendet wird, wenn die Größe bekannt ist, andernfalls sobald der Stream 100 MB überschreitet. Uploads haben keine Standard-Deadline: Brich sie über ctx ab.

Eine Anwendung erstellen

Apps.Create(ctx, zip) deployt eine .zip, die im Stammverzeichnis eine Konfigurationsdatei squarecloud.app enthält.

Commit in eine Anwendung

Apps.Commit(ctx, appID, r, path, filename) lädt eine Datei in eine bestehende App hoch:
  • Eine .zip wird unter path entpackt ("" für das Stammverzeichnis der App).
  • Jede andere Datei landet unter path/<filename>.
Der Dateiname ist filename, sonst der eigene Name des Readers (der Basisname einer *os.File), sonst commit.zip. Übergib "", um den Standard zu verwenden.
Ein Commit startet die App nicht neu. Rufe Apps.Restart auf, um ihn anzuwenden.

Einen Upload abbrechen

Ein abgebrochener Upload gibt einen *APIError zurück (NETWORK_ERROR, wenn ctx abgebrochen wurde, TIMEOUT, wenn seine Deadline abgelaufen ist), der sich zu context.Canceled oder context.DeadlineExceeded entpacken lässt.

Fehler

Das Öffnen der Datei ist Sache deines Codes, ein Fehler von os.Open erreicht das SDK also nie. Ein nil-Reader gibt einen einfachen Fehler zurück, keinen *APIError. Die vollständige Liste findest du unter Fehler.

Nächste Schritte

Dateien verwalten

Dateien einer App auflisten, lesen, schreiben, verschieben und löschen.

API-Referenz für Uploads

Die REST-Endpunkte hinter diesen Methoden.

Upload über die CLI

Dieselben Aktionen im Terminal.