Skip to content

Commit 70bf410

Browse files
author
Tianyi Wang
committed
Change config loading logic
1 parent 616db36 commit 70bf410

File tree

2 files changed

+28
-23
lines changed

2 files changed

+28
-23
lines changed

config/env_config.go

+26-22
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212

1313
"github.com/aws/aws-sdk-go-v2/aws"
1414
"github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
15+
smithyrequestcompression "github.com/aws/smithy-go/private/requestcompression"
1516
)
1617

1718
// CredentialsSourceName provides a name of the provider when config is
@@ -334,7 +335,7 @@ func NewEnvConfig() (EnvConfig, error) {
334335
if err := setBoolPtrFromEnvVal(&cfg.DisableRequestCompression, []string{awsDisableRequestCompression}); err != nil {
335336
return cfg, err
336337
}
337-
if err := setRequestMinCompressSizeBytes(&cfg.RequestMinCompressSizeBytes); err != nil {
338+
if err := setInt64PtrFromEnvVal(&cfg.RequestMinCompressSizeBytes, []string{awsRequestMinCompressionSizeBytes}, smithyrequestcompression.MaxRequestMinCompressSizeBytes); err != nil {
338339
return cfg, err
339340
}
340341

@@ -402,27 +403,6 @@ func (c EnvConfig) getAppID(context.Context) (string, bool, error) {
402403
return c.AppID, len(c.AppID) > 0, nil
403404
}
404405

405-
func setRequestMinCompressSizeBytes(bytes **int64) error {
406-
b := os.Getenv(awsRequestMinCompressionSizeBytes)
407-
if b == "" {
408-
return nil
409-
}
410-
411-
byte, err := strconv.ParseInt(b, 10, 64)
412-
if err != nil {
413-
return fmt.Errorf("invalid value for env var, %s=%s, need int64",
414-
awsRequestMinCompressionSizeBytes, b)
415-
} else if byte < 0 || byte > 10485760 {
416-
return fmt.Errorf("invalid range for env var min request compression size bytes %q, must be within 0 and 10485760 inclusively", byte)
417-
}
418-
if *bytes == nil {
419-
*bytes = new(int64)
420-
}
421-
**bytes = byte
422-
423-
return nil
424-
}
425-
426406
func (c EnvConfig) getDisableRequestCompression(context.Context) (bool, bool, error) {
427407
if c.DisableRequestCompression == nil {
428408
return false, false, nil
@@ -693,6 +673,30 @@ func setBoolPtrFromEnvVal(dst **bool, keys []string) error {
693673
return nil
694674
}
695675

676+
func setInt64PtrFromEnvVal(dst **int64, keys []string, max int64) error {
677+
for _, k := range keys {
678+
value := os.Getenv(k)
679+
if len(value) == 0 {
680+
continue
681+
}
682+
683+
v, err := strconv.ParseInt(value, 10, 64)
684+
if err != nil {
685+
return fmt.Errorf("invalid value for env var, %s=%s, need int64", k, value)
686+
} else if v < 0 || v > max {
687+
return fmt.Errorf("invalid range for env var min request compression size bytes %q, must be within 0 and 10485760 inclusively", v)
688+
}
689+
if *dst == nil {
690+
*dst = new(int64)
691+
}
692+
693+
**dst = v
694+
break
695+
}
696+
697+
return nil
698+
}
699+
696700
func setEndpointDiscoveryTypeFromEnvVal(dst *aws.EndpointDiscoveryEnableState, keys []string) error {
697701
for _, k := range keys {
698702
value := os.Getenv(k)

config/shared_config.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/aws/aws-sdk-go-v2/internal/ini"
1818
"github.com/aws/aws-sdk-go-v2/internal/shareddefaults"
1919
"github.com/aws/smithy-go/logging"
20+
smithyrequestcompression "github.com/aws/smithy-go/private/requestcompression"
2021
)
2122

2223
const (
@@ -1147,7 +1148,7 @@ func updateRequestMinCompressSizeBytes(bytes **int64, sec ini.Section, key strin
11471148
if !ok {
11481149
return fmt.Errorf("invalid value for min request compression size bytes %s, need int64", sec.String(key))
11491150
}
1150-
if v < 0 || v > 10485760 {
1151+
if v < 0 || v > smithyrequestcompression.MaxRequestMinCompressSizeBytes {
11511152
return fmt.Errorf("invalid range for min request compression size bytes %d, must be within 0 and 10485760 inclusively", v)
11521153
}
11531154
*bytes = new(int64)

0 commit comments

Comments
 (0)