Skip to main content
Cada trecho abaixo roda sozinho dentro deste programa: cole um de cada vez em main e execute o goimports (veja Executando os exemplos).

Entradas aceitas

Apps.Create e Apps.Commit aceitam qualquer io.Reader e o transmitem como multipart/form-data, sem nunca carregá-lo na memória: Os uploads são limitados a 100 MB. Um arquivo maior falha localmente com FILE_TOO_LARGE (status 0): antes que qualquer coisa seja enviada quando o tamanho é conhecido, ou assim que o stream passa de 100 MB, caso contrário. Os uploads não têm prazo padrão: cancele-os com o ctx.

Criando uma aplicação

Apps.Create(ctx, zip) faz o deploy de um .zip que contém um arquivo de configuração squarecloud.app na raiz.

Fazendo commit em uma aplicação

Apps.Commit(ctx, appID, r, path, filename) envia um arquivo para uma aplicação existente:
  • Um .zip é descompactado em path ("" para a raiz da aplicação).
  • Qualquer outro arquivo vai para path/<filename>.
O nome do arquivo é filename, senão o próprio nome do reader (o nome base de um *os.File), senão commit.zip. Passe "" para usar o padrão.
Um commit não reinicia a aplicação. Chame Apps.Restart para aplicá-lo.

Cancelando um upload

Um upload cancelado retorna um *APIError (NETWORK_ERROR quando o ctx foi cancelado, TIMEOUT quando seu prazo expirou) que faz unwrap para context.Canceled ou context.DeadlineExceeded.

Erros

Abrir o arquivo fica a cargo do seu código, então um erro de os.Open nunca chega ao SDK. Um reader nil retorna um erro simples, não um *APIError. Veja Erros para a lista completa.

Próximos passos

Gerenciando arquivos

Liste, leia, escreva, mova e exclua arquivos da aplicação.

Referência da API de upload

Os endpoints REST por trás destes métodos.

Upload pela CLI

As mesmas ações pelo terminal.