github.com/qiniu/go-sdk/v7@v7.27.0/internal/clientv2/interceptor_default_header.go (about) 1 package clientv2 2 3 import ( 4 "net/http" 5 "time" 6 7 clientV1 "github.com/qiniu/go-sdk/v7/client" 8 "github.com/qiniu/go-sdk/v7/conf" 9 ) 10 11 type defaultHeaderInterceptor struct{} 12 13 func newDefaultHeaderInterceptor() Interceptor { 14 return &defaultHeaderInterceptor{} 15 } 16 17 func (interceptor *defaultHeaderInterceptor) Priority() InterceptorPriority { 18 return InterceptorPrioritySetHeader 19 } 20 21 func (interceptor *defaultHeaderInterceptor) Intercept(req *http.Request, handler Handler) (resp *http.Response, err error) { 22 if interceptor == nil || req == nil { 23 return handler(req) 24 } 25 26 if req.Header == nil { 27 req.Header = http.Header{} 28 } 29 30 if e := addUseragent(req.Header); e != nil { 31 return nil, e 32 } 33 34 if e := addXQiniuDate(req.Header); e != nil { 35 return nil, e 36 } 37 38 return handler(req) 39 } 40 41 func addUseragent(headers http.Header) error { 42 headers.Set("User-Agent", clientV1.UserAgent) 43 return nil 44 } 45 46 func addXQiniuDate(headers http.Header) error { 47 if conf.IsDisableQiniuTimestampSignature() { 48 return nil 49 } 50 51 timeString := time.Now().UTC().Format("20060102T150405Z") 52 headers.Set("X-Qiniu-Date", timeString) 53 return nil 54 }