github.com/aavshr/aws-sdk-go@v1.41.3/awstesting/integration/performance/s3DownloadManager/client.go (about) 1 //go:build go1.13 && integration && perftest 2 // +build go1.13,integration,perftest 3 4 package main 5 6 import ( 7 "net" 8 "net/http" 9 "time" 10 ) 11 12 func NewClient(cfg ClientConfig) *http.Client { 13 tr := &http.Transport{ 14 Proxy: http.ProxyFromEnvironment, 15 DialContext: (&net.Dialer{ 16 Timeout: cfg.Timeouts.Connect, 17 KeepAlive: 30 * time.Second, 18 DualStack: true, 19 }).DialContext, 20 MaxIdleConns: cfg.MaxIdleConns, 21 MaxIdleConnsPerHost: cfg.MaxIdleConnsPerHost, 22 IdleConnTimeout: 90 * time.Second, 23 24 DisableKeepAlives: !cfg.KeepAlive, 25 TLSHandshakeTimeout: cfg.Timeouts.TLSHandshake, 26 ExpectContinueTimeout: cfg.Timeouts.ExpectContinue, 27 ResponseHeaderTimeout: cfg.Timeouts.ResponseHeader, 28 29 ReadBufferSize: cfg.ReadBufferSize, 30 WriteBufferSize: cfg.WriteBufferSize, 31 } 32 33 return &http.Client{ 34 Transport: tr, 35 } 36 }