Fix referencing for S3 providers.

S3 providers would overwrite each other depending on the order they're
initialized.
This commit is contained in:
Gabriel Simmer 2021-05-29 19:53:03 +01:00
parent 8fff6da76b
commit 4aae9887e1

View file

@ -12,10 +12,11 @@ import (
"github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3" "github.com/aws/aws-sdk-go/service/s3"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
) )
var svc s3.S3 var svc s3.S3
var sess *session.Session var sess session.Session
type S3Provider struct { type S3Provider struct {
FileProvider FileProvider
@ -38,11 +39,12 @@ func (s *S3Provider) Setup(args map[string]string) bool {
if s.Endpoint != "" { if s.Endpoint != "" {
config.Endpoint = &s.Endpoint config.Endpoint = &s.Endpoint
} }
sess, err := session.NewSession(config) ss, err := session.NewSession(config)
sess = *ss
if err != nil { if err != nil {
return false return false
} }
svc = *s3.New(sess) svc = *s3.New(&sess)
return true return true
} }
@ -95,7 +97,17 @@ func (s *S3Provider) SendFile(path string) (stream io.Reader, contenttype string
} }
func (s *S3Provider) SaveFile(file io.Reader, filename string, path string) bool { func (s *S3Provider) SaveFile(file io.Reader, filename string, path string) bool {
return false uploader := s3manager.NewUploader(&sess)
_, err := uploader.Upload(&s3manager.UploadInput{
Bucket: &s.Bucket,
Key: &filename,
Body: file,
})
if err != nil {
return false
}
return true
} }
func (s *S3Provider) ObjectInfo(path string) (bool, bool, string) { func (s *S3Provider) ObjectInfo(path string) (bool, bool, string) {