Files
img-proxy-url-generator/aws/client.go
Ron Rise 85938a2def
Some checks failed
Go Tests / build (1.22.x) (push) Failing after 1m27s
Code re-organization
2025-01-26 18:20:45 -05:00

39 lines
1.0 KiB
Go

package aws
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/credentials/stscreds"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/siteworxpro/img-proxy-url-generator/config"
)
type Service struct {
s3 *s3.S3
bucket string
}
func NewClient(config *config.Config) *Service {
var accessCredentials *credentials.Credentials
staticCredentials := credentials.NewStaticCredentials(config.Aws.AwsKey, config.Aws.AwsSecret, config.Aws.AwsToken)
awsSession := session.Must(session.NewSession(&aws.Config{
Credentials: staticCredentials,
Region: aws.String("us-east-1"),
}))
if config.Aws.AwsRole != "" {
assumeRoleCredentials := stscreds.NewCredentials(awsSession, config.Aws.AwsRole)
accessCredentials = assumeRoleCredentials
} else {
accessCredentials = staticCredentials
}
return &Service{
s3: s3.New(awsSession, &aws.Config{Credentials: accessCredentials}),
bucket: config.Aws.AwsBucket,
}
}