diff options
author | Christopher Speller <crspeller@gmail.com> | 2018-02-26 06:45:35 -0800 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2018-02-26 09:45:35 -0500 |
commit | ae1acbda49e7039cb96289031e4ae057933d5e64 (patch) | |
tree | 1cb6986e90240d3e096af15f813290f7f1b281f9 /utils/file_backend_s3.go | |
parent | f0f4f68defef1e9360394ba740c57cff7124dc9c (diff) | |
download | chat-ae1acbda49e7039cb96289031e4ae057933d5e64.tar.gz chat-ae1acbda49e7039cb96289031e4ae057933d5e64.tar.bz2 chat-ae1acbda49e7039cb96289031e4ae057933d5e64.zip |
MM-9698 Fixing Minio with server side encryption. (#8367)
* Fixig Minio with server side encryption.
* Add png file backend test
Diffstat (limited to 'utils/file_backend_s3.go')
-rw-r--r-- | utils/file_backend_s3.go | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/utils/file_backend_s3.go b/utils/file_backend_s3.go index 7ef150851..8e72272a1 100644 --- a/utils/file_backend_s3.go +++ b/utils/file_backend_s3.go @@ -138,17 +138,15 @@ func (b *S3FileBackend) WriteFile(f []byte, path string) *model.AppError { return model.NewAppError("WriteFile", "api.file.write_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) } - options := s3.PutObjectOptions{} - if b.encrypt { - options.UserMetadata["x-amz-server-side-encryption"] = "AES256" - } - + var contentType string if ext := filepath.Ext(path); model.IsFileExtImage(ext) { - options.ContentType = model.GetImageMimeType(ext) + contentType = model.GetImageMimeType(ext) } else { - options.ContentType = "binary/octet-stream" + contentType = "binary/octet-stream" } + options := s3PutOptions(b.encrypt, contentType) + if _, err = s3Clnt.PutObject(b.bucket, path, bytes.NewReader(f), -1, options); err != nil { return model.NewAppError("WriteFile", "api.file.write_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) } @@ -230,6 +228,17 @@ func (b *S3FileBackend) RemoveDirectory(path string) *model.AppError { return nil } +func s3PutOptions(encrypt bool, contentType string) s3.PutObjectOptions { + options := s3.PutObjectOptions{} + if encrypt { + options.UserMetadata = make(map[string]string) + options.UserMetadata["x-amz-server-side-encryption"] = "AES256" + } + options.ContentType = contentType + + return options +} + func s3CopyMetadata(encrypt bool) map[string]string { metaData := make(map[string]string) metaData["x-amz-server-side-encryption"] = "AES256" |