From 961c04cae992eadb42d286d2f85f8a675bdc68c8 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 29 Jan 2018 14:17:40 -0800 Subject: Upgrading server dependancies (#8154) --- utils/file_backend_s3.go | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'utils/file_backend_s3.go') diff --git a/utils/file_backend_s3.go b/utils/file_backend_s3.go index 5512b64dc..7ef150851 100644 --- a/utils/file_backend_s3.go +++ b/utils/file_backend_s3.go @@ -83,7 +83,7 @@ func (b *S3FileBackend) ReadFile(path string) ([]byte, *model.AppError) { if err != nil { return nil, model.NewAppError("ReadFile", "api.file.read_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) } - minioObject, err := s3Clnt.GetObject(b.bucket, path) + minioObject, err := s3Clnt.GetObject(b.bucket, path, s3.GetObjectOptions{}) if err != nil { return nil, model.NewAppError("ReadFile", "api.file.read_file.s3.app_error", nil, err.Error(), http.StatusInternalServerError) } @@ -138,13 +138,18 @@ 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) } - ext := filepath.Ext(path) - metaData := s3Metadata(b.encrypt, "binary/octet-stream") - if model.IsFileExtImage(ext) { - metaData = s3Metadata(b.encrypt, model.GetImageMimeType(ext)) + options := s3.PutObjectOptions{} + if b.encrypt { + options.UserMetadata["x-amz-server-side-encryption"] = "AES256" } - if _, err = s3Clnt.PutObjectWithMetadata(b.bucket, path, bytes.NewReader(f), metaData, nil); err != nil { + if ext := filepath.Ext(path); model.IsFileExtImage(ext) { + options.ContentType = model.GetImageMimeType(ext) + } else { + options.ContentType = "binary/octet-stream" + } + + 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) } @@ -225,17 +230,6 @@ func (b *S3FileBackend) RemoveDirectory(path string) *model.AppError { return nil } -func s3Metadata(encrypt bool, contentType string) map[string][]string { - metaData := make(map[string][]string) - if contentType != "" { - metaData["Content-Type"] = []string{"contentType"} - } - if encrypt { - metaData["x-amz-server-side-encryption"] = []string{"AES256"} - } - return metaData -} - func s3CopyMetadata(encrypt bool) map[string]string { metaData := make(map[string]string) metaData["x-amz-server-side-encryption"] = "AES256" -- cgit v1.2.3-1-g7c22