Skip to content

Commit 191d36a

Browse files
committed
fix s3 upload for BJS
cr https://cr.amazon.com/r/5586179/
1 parent 58d2608 commit 191d36a

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

agent/plugins/pluginutil/pluginutil.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/aws/amazon-ssm-agent/agent/jsonutil"
2525
"github.com/aws/amazon-ssm-agent/agent/log"
2626
command_state_helper "github.com/aws/amazon-ssm-agent/agent/message/statemanager"
27+
"github.com/aws/amazon-ssm-agent/agent/platform"
2728
"github.com/aws/amazon-ssm-agent/agent/s3util"
2829
"github.com/aws/amazon-ssm-agent/agent/sdkutil"
2930
"github.com/aws/amazon-ssm-agent/agent/task"
@@ -40,6 +41,12 @@ const (
4041
// S3RegionUSStandard is a standard S3 Region used to upload output related documents.
4142
var S3RegionUSStandard = "us-east-1"
4243

44+
var s3Bjs = "cn-north-1"
45+
46+
var s3BjsEndpoint = "s3.cn-north-1.amazonaws.com.cn"
47+
48+
var s3StandardEndpoint = "s3.amazonaws.com"
49+
4350
// CommandExecuter is a function that can execute a set of commands.
4451
type CommandExecuter func(log log.T, workingDir string, stdoutFilePath string, stderrFilePath string, cancelFlag task.CancelFlag, executionTimeout int, commandName string, commandArguments []string) (stdout io.Reader, stderr io.Reader, exitCode int, errs []error)
4552

@@ -148,7 +155,14 @@ func GetS3Config() *s3util.Manager {
148155
//we can then pick the endpoint from meta-data instead.
149156

150157
awsConfig := sdkutil.AwsConfig()
151-
awsConfig.Region = &S3RegionUSStandard
158+
159+
if region, err := platform.Region(); err == nil && region == s3Bjs {
160+
awsConfig.Endpoint = &s3BjsEndpoint
161+
awsConfig.Region = &s3Bjs
162+
} else {
163+
awsConfig.Endpoint = &s3StandardEndpoint
164+
awsConfig.Region = &S3RegionUSStandard
165+
}
152166
s3 := s3.New(session.New(awsConfig))
153167
return s3util.NewManager(s3)
154168
}
@@ -161,8 +175,9 @@ func (p *DefaultPlugin) UploadOutputToS3Bucket(log log.T, pluginID string, orche
161175
uploadToS3 := true
162176
var testUploadError error
163177

164-
//set region to us-east-1
165-
p.Uploader.SetS3ClientRegion(S3RegionUSStandard)
178+
if region, err := platform.Region(); err == nil && region != s3Bjs {
179+
p.Uploader.SetS3ClientRegion(S3RegionUSStandard)
180+
}
166181

167182
log.Infof("uploading a test file to s3 bucket - %v , s3 key - %v with S3Client using region endpoint - %v",
168183
outputS3BucketName,

0 commit comments

Comments
 (0)