github.com/aavshr/aws-sdk-go@v1.41.3/awstesting/integration/performance/s3UploadManager/client.go (about)

     1  //go:build integration && perftest
     2  // +build 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  
    30  	return &http.Client{
    31  		Transport: tr,
    32  	}
    33  }