@@ -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.
4142var 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.
4451type 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