summaryrefslogtreecommitdiffstats
path: root/api4/apitestlib.go
diff options
context:
space:
mode:
Diffstat (limited to 'api4/apitestlib.go')
-rw-r--r--api4/apitestlib.go20
1 files changed, 15 insertions, 5 deletions
diff --git a/api4/apitestlib.go b/api4/apitestlib.go
index d70b9e5f6..7f69b3690 100644
--- a/api4/apitestlib.go
+++ b/api4/apitestlib.go
@@ -23,8 +23,9 @@ import (
"github.com/mattermost/platform/utils"
"github.com/mattermost/platform/wsapi"
- s3 "github.com/minio/minio-go"
"github.com/mattermost/platform/jobs"
+ s3 "github.com/minio/minio-go"
+ "github.com/minio/minio-go/pkg/credentials"
)
type TestHelper struct {
@@ -641,11 +642,19 @@ func readTestFile(name string) ([]byte, error) {
}
}
-func s3New(endpoint, accessKey, secretKey string, secure bool, signV2 bool) (*s3.Client, error) {
+// Similar to s3.New() but allows initialization of signature v2 or signature v4 client.
+// If signV2 input is false, function always returns signature v4.
+//
+// Additionally this function also takes a user defined region, if set
+// disables automatic region lookup.
+func s3New(endpoint, accessKey, secretKey string, secure bool, signV2 bool, region string) (*s3.Client, error) {
+ var creds *credentials.Credentials
if signV2 {
- return s3.NewV2(endpoint, accessKey, secretKey, secure)
+ creds = credentials.NewStatic(accessKey, secretKey, "", credentials.SignatureV2)
+ } else {
+ creds = credentials.NewStatic(accessKey, secretKey, "", credentials.SignatureV4)
}
- return s3.NewV4(endpoint, accessKey, secretKey, secure)
+ return s3.NewWithCredentials(endpoint, creds, secure, region)
}
func cleanupTestFile(info *model.FileInfo) error {
@@ -655,7 +664,8 @@ func cleanupTestFile(info *model.FileInfo) error {
secretKey := utils.Cfg.FileSettings.AmazonS3SecretAccessKey
secure := *utils.Cfg.FileSettings.AmazonS3SSL
signV2 := *utils.Cfg.FileSettings.AmazonS3SignV2
- s3Clnt, err := s3New(endpoint, accessKey, secretKey, secure, signV2)
+ region := utils.Cfg.FileSettings.AmazonS3Region
+ s3Clnt, err := s3New(endpoint, accessKey, secretKey, secure, signV2, region)
if err != nil {
return err
}