diff --git a/go.mod b/go.mod index 0e20b0c78a..e64159e76b 100644 --- a/go.mod +++ b/go.mod @@ -312,4 +312,4 @@ require ( sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect sigs.k8s.io/yaml v1.4.0 // indirect -) +) \ No newline at end of file diff --git a/go.sum b/go.sum index 76c15d4e5d..822cc750b8 100644 --- a/go.sum +++ b/go.sum @@ -2230,4 +2230,4 @@ sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5 sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= software.sslmate.com/src/go-pkcs12 v0.4.0 h1:H2g08FrTvSFKUj+D309j1DPfk5APnIdAQAB8aEykJ5k= -software.sslmate.com/src/go-pkcs12 v0.4.0/go.mod h1:Qiz0EyvDRJjjxGyUQa2cCNZn/wMyzrRJ/qcDXOQazLI= +software.sslmate.com/src/go-pkcs12 v0.4.0/go.mod h1:Qiz0EyvDRJjjxGyUQa2cCNZn/wMyzrRJ/qcDXOQazLI= \ No newline at end of file diff --git a/pkg/server/plugin/bundlepublisher/awss3/awss3.go b/pkg/server/plugin/bundlepublisher/awss3/awss3.go index 59c64a811f..e62b1bf31e 100644 --- a/pkg/server/plugin/bundlepublisher/awss3/awss3.go +++ b/pkg/server/plugin/bundlepublisher/awss3/awss3.go @@ -44,6 +44,7 @@ type Config struct { Bucket string `hcl:"bucket" json:"bucket"` ObjectKey string `hcl:"object_key" json:"object_key"` Format string `hcl:"format" json:"format"` + Endpoint string `hcl:"endpoint" json:"endpoint"` // bundleFormat is used to store the content of Format, parsed // as bundleformat.Format. diff --git a/pkg/server/plugin/bundlepublisher/awss3/client.go b/pkg/server/plugin/bundlepublisher/awss3/client.go index 56e927bf2e..5fb1834e9e 100644 --- a/pkg/server/plugin/bundlepublisher/awss3/client.go +++ b/pkg/server/plugin/bundlepublisher/awss3/client.go @@ -2,7 +2,6 @@ package awss3 import ( "context" - "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/credentials" @@ -17,6 +16,7 @@ func newAWSConfig(ctx context.Context, c *Config) (aws.Config, error) { cfg, err := config.LoadDefaultConfig(ctx, config.WithRegion(c.Region), ) + if err != nil { return aws.Config{}, err } @@ -25,9 +25,20 @@ func newAWSConfig(ctx context.Context, c *Config) (aws.Config, error) { cfg.Credentials = credentials.NewStaticCredentialsProvider(c.AccessKeyID, c.SecretAccessKey, "") } + if c.Endpoint != "" { + cfg.BaseEndpoint = aws.String(c.Endpoint) + } + return cfg, nil } func newS3Client(c aws.Config) (simpleStorageService, error) { - return s3.NewFromConfig(c), nil + options := func(options *s3.Options) {} + if c.BaseEndpoint != nil && *c.BaseEndpoint != "" { + options = func(options *s3.Options) { + options.UsePathStyle = true + options.BaseEndpoint = c.BaseEndpoint + } + } + return s3.NewFromConfig(c, options), nil }