-
Notifications
You must be signed in to change notification settings - Fork 623
/
customizations.go
40 lines (37 loc) · 1.03 KB
/
customizations.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package s3control
import (
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/s3err"
"github.com/aws/aws-sdk-go-v2/private/protocol"
)
type accountIDGetter interface {
getAccountId() string
}
func init() {
initClient = defaultInitClientFn
}
func defaultInitClientFn(c *Client) {
c.Handlers.UnmarshalError.PushBackNamed(s3err.RequestFailureWrapperHandler())
}
func buildPrefixHostHandler(fieldName, value string) aws.NamedHandler {
return aws.NamedHandler{
Name: "awssdk.s3control.prefixhost",
Fn: func(r *aws.Request) {
paramErrs := aws.ErrInvalidParams{Context: r.Operation.Name}
if !protocol.ValidHostLabel(value) {
paramErrs.Add(aws.NewErrParamFormat(fieldName, "[a-zA-Z0-9-]{1,63}", value))
r.Error = paramErrs
return
}
r.HTTPRequest.URL.Host = value + "." + r.HTTPRequest.URL.Host
},
}
}
func buildRemoveHeaderHandler(key string) aws.NamedHandler {
return aws.NamedHandler{
Name: "awssdk.s3control.removeHeader",
Fn: func(r *aws.Request) {
r.HTTPRequest.Header.Del(key)
},
}
}