summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorJesse Haka <haka.jesse@gmail.com>2018-09-10 20:35:01 +0300
committerCarlos Tadeu Panato Junior <ctadeu@gmail.com>2018-09-10 19:35:01 +0200
commit4e33aeb5813fe50f6adad1b1dc35f5533cfd52af (patch)
tree2938704d7f32252bf6bd0ea976f1e6e56c34fca9 /utils
parenta8d116b381ec9c28c5da5c8ee39a3699f568130d (diff)
downloadchat-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.go8
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)
}