diff options
author | Jesse Haka <haka.jesse@gmail.com> | 2018-09-10 20:35:01 +0300 |
---|---|---|
committer | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2018-09-10 19:35:01 +0200 |
commit | 4e33aeb5813fe50f6adad1b1dc35f5533cfd52af (patch) | |
tree | 2938704d7f32252bf6bd0ea976f1e6e56c34fca9 /utils | |
parent | a8d116b381ec9c28c5da5c8ee39a3699f568130d (diff) | |
download | chat-4e33aeb5813fe50f6adad1b1dc35f5533cfd52af.tar.gz chat-4e33aeb5813fe50f6adad1b1dc35f5533cfd52af.tar.bz2 chat-4e33aeb5813fe50f6adad1b1dc35f5533cfd52af.zip |
fix s3 memory usage (#9373)
Diffstat (limited to 'utils')
-rw-r--r-- | utils/file_backend_s3.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/utils/file_backend_s3.go b/utils/file_backend_s3.go index 2868dd342..f5f96f878 100644 --- a/utils/file_backend_s3.go +++ b/utils/file_backend_s3.go @@ -4,6 +4,7 @@ package utils import ( + "bytes" "io" "io/ioutil" "net/http" @@ -182,7 +183,12 @@ func (b *S3FileBackend) WriteFile(fr io.Reader, path string) (int64, *model.AppE } options := s3PutOptions(b.encrypt, contentType) - written, err := s3Clnt.PutObject(b.bucket, path, fr, -1, options) + var buf bytes.Buffer + _, err = buf.ReadFrom(fr) + if err != nil { + return 0, model.NewAppError("WriteFile", "api.file.write_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) + } + written, err := s3Clnt.PutObject(b.bucket, path, &buf, int64(buf.Len()), options) if err != nil { return written, model.NewAppError("WriteFile", "api.file.write_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) } |