@@ -21,7 +21,6 @@ import (
21
21
"io"
22
22
"io/ioutil"
23
23
"net/http"
24
- "os"
25
24
"time"
26
25
27
26
"github.com/aws/aws-sdk-go-v2/aws"
@@ -38,29 +37,29 @@ const (
38
37
type AWSSigningTransport struct {
39
38
t http.RoundTripper
40
39
creds aws.Credentials
41
- region * string
40
+ region string
42
41
log log.Logger
43
42
}
44
43
45
- func NewAWSSigningTransport (transport http.RoundTripper , region * string , log log.Logger ) * AWSSigningTransport {
46
- cfg , err := config .LoadDefaultConfig (context .Background (), config .WithRegion (* region ))
44
+ func NewAWSSigningTransport (transport http.RoundTripper , region string , log log.Logger ) ( * AWSSigningTransport , error ) {
45
+ cfg , err := config .LoadDefaultConfig (context .Background (), config .WithRegion (region ))
47
46
if err != nil {
48
47
_ = level .Error (log ).Log ("msg" , "fail to load aws default config" , "err" , err )
49
- os . Exit ( 1 )
48
+ return nil , err
50
49
}
51
50
52
51
creds , err := cfg .Credentials .Retrieve (context .Background ())
53
52
if err != nil {
54
53
_ = level .Error (log ).Log ("msg" , "fail to retrive aws credentials" , "err" , err )
55
- os . Exit ( 1 )
54
+ return nil , err
56
55
}
57
56
58
57
return & AWSSigningTransport {
59
58
t : transport ,
60
59
region : region ,
61
60
creds : creds ,
62
61
log : log ,
63
- }
62
+ }, err
64
63
}
65
64
66
65
func (a * AWSSigningTransport ) RoundTrip (req * http.Request ) (* http.Response , error ) {
@@ -71,7 +70,7 @@ func (a *AWSSigningTransport) RoundTrip(req *http.Request) (*http.Response, erro
71
70
return nil , err
72
71
}
73
72
req .Body = newReader
74
- err = signer .SignHTTP (context .Background (), a .creds , req , payloadHash , service , * a .region , time .Now ())
73
+ err = signer .SignHTTP (context .Background (), a .creds , req , payloadHash , service , a .region , time .Now ())
75
74
if err != nil {
76
75
_ = level .Error (a .log ).Log ("msg" , "fail to sign request body" , "err" , err )
77
76
return nil , err
@@ -84,6 +83,7 @@ func hashPayload(r io.ReadCloser) (payloadHash string, newReader io.ReadCloser,
84
83
if r == nil {
85
84
payload = []byte ("" )
86
85
} else {
86
+ defer r .Close ()
87
87
payload , err = ioutil .ReadAll (r )
88
88
if err != nil {
89
89
return
0 commit comments