Fix upload error for large files (#71)
continuous-integration/drone/push Build is passing Details

This should avoid allocation of max_upload_size bytes of RAM.
Instead we only allocate 1MB of RAM for the upload form decoder.

- Closes #67

Reviewed-on: #71
Co-authored-by: Heinrich 'Henrik' Langos <gumbo2000@noreply@mills.io>
Co-committed-by: Heinrich 'Henrik' Langos <gumbo2000@noreply@mills.io>
pull/72/head
Heinrich 'Henrik' Langos 1 month ago committed by James Mills
parent 7e6e2a0c1c
commit e14f19abd3

@ -42,6 +42,9 @@ type App struct {
Router *mux.Router
}
// 1MB buffer in RAM seems enough
const uploadParserBuffer = 1_048_576
// NewApp returns a new instance of App from Config.
func NewApp(cfg *Config) (*App, error) {
if cfg == nil {
@ -234,7 +237,7 @@ func (a *App) uploadHandler(w http.ResponseWriter, r *http.Request) {
}
a.render("upload", w, ctx)
} else if r.Method == "POST" {
r.ParseMultipartForm(a.Config.Server.MaxUploadSize)
r.ParseMultipartForm(uploadParserBuffer)
file, handler, err := r.FormFile("video_file")
if err != nil {

Loading…
Cancel
Save