Skip to main content
Ogni snippet qui sotto funziona da solo all’interno di questo programma: incollane uno alla volta in main ed esegui goimports (vedi Eseguire gli esempi).

Input accettati

Apps.Create e Apps.Commit accettano qualsiasi io.Reader e lo trasmettono in streaming come multipart/form-data, senza mai caricarlo in memoria: Gli upload sono limitati a 100 MB. Un file più grande fallisce localmente con FILE_TOO_LARGE (status 0): prima che venga inviato qualsiasi cosa quando la dimensione è nota, altrimenti non appena il flusso supera i 100 MB. Gli upload non hanno una scadenza predefinita: annullali con ctx.

Creare un’applicazione

Apps.Create(ctx, zip) effettua il deploy di un .zip che contiene un file di configurazione squarecloud.app nella sua radice.

Fare il commit su un’applicazione

Apps.Commit(ctx, appID, r, path, filename) carica un file in un’app esistente:
  • Un .zip viene estratto in path ("" per la radice dell’app).
  • Qualsiasi altro file finisce in path/<filename>.
Il nome del file è filename, altrimenti il nome proprio del reader (il nome base di un *os.File), altrimenti commit.zip. Passa "" per usare il valore predefinito.
Un commit non riavvia l’app. Chiama Apps.Restart per applicarlo.

Annullare un upload

Un upload annullato restituisce un *APIError (NETWORK_ERROR quando ctx è stato annullato, TIMEOUT quando la sua scadenza è passata) che fa l’unwrap a context.Canceled o context.DeadlineExceeded.

Errori

L’apertura del file spetta al tuo codice, quindi un errore di os.Open non raggiunge mai l’SDK. Un reader nil restituisce un errore semplice, non un *APIError. Vedi Errori per l’elenco completo.

Prossimi passi

Gestire i file

Elenca, leggi, scrivi, sposta ed elimina i file di un’app.

Riferimento API dell'upload

Gli endpoint REST dietro questi metodi.

Upload dalla CLI

Le stesse azioni dal terminale.