diff options
| author | Heinrich 'Henrik' Langos <gumbo2000@noreply@mills.io> | 2023-02-13 22:06:07 +0000 |
|---|---|---|
| committer | James Mills <james@mills.io> | 2023-02-13 22:06:07 +0000 |
| commit | e14f19abd3307556d25b3bce16fb784956ffe8a4 (patch) | |
| tree | 731398fc558f48e9236fa4e225666e0296693308 /app/app.go | |
| parent | 7e6e2a0c1c2c20ca2b5bd1434e1c335a32b13330 (diff) | |
Fix upload error for large files (#71)
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: https://git.mills.io/prologic/tube/pulls/71
Co-authored-by: Heinrich 'Henrik' Langos <gumbo2000@noreply@mills.io>
Co-committed-by: Heinrich 'Henrik' Langos <gumbo2000@noreply@mills.io>
Diffstat (limited to 'app/app.go')
| -rw-r--r-- | app/app.go | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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 { |
