github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/oss/transport_1_6.go (about) 1 //go:build !go1.7 2 // +build !go1.7 3 4 package oss 5 6 import ( 7 "crypto/tls" 8 "net" 9 "net/http" 10 "time" 11 ) 12 13 func newTransport(conn *Conn, config *Config) *http.Transport { 14 httpTimeOut := conn.config.HTTPTimeout 15 httpMaxConns := conn.config.HTTPMaxConns 16 // New Transport 17 transport := &http.Transport{ 18 Dial: func(netw, addr string) (net.Conn, error) { 19 d := net.Dialer{ 20 Timeout: httpTimeOut.ConnectTimeout, 21 KeepAlive: 30 * time.Second, 22 } 23 if config.LocalAddr != nil { 24 d.LocalAddr = config.LocalAddr 25 } 26 conn, err := d.Dial(netw, addr) 27 if err != nil { 28 return nil, err 29 } 30 return newTimeoutConn(conn, httpTimeOut.ReadWriteTimeout, httpTimeOut.LongTimeout), nil 31 }, 32 MaxIdleConnsPerHost: httpMaxConns.MaxIdleConnsPerHost, 33 ResponseHeaderTimeout: httpTimeOut.HeaderTimeout, 34 } 35 36 if config.InsecureSkipVerify { 37 transport.TLSClientConfig = &tls.Config{ 38 InsecureSkipVerify: true, 39 } 40 } 41 return transport 42 }