OSDN Git Service

Create ossClient.go (#574)
[bytom/vapor.git] / vendor / github.com / aliyun / aliyun-oss-go-sdk / oss / transport_1_7.go
1 // +build go1.7
2
3 package oss
4
5 import (
6         "net"
7         "net/http"
8         "time"
9 )
10
11 func newTransport(conn *Conn, config *Config) *http.Transport {
12         httpTimeOut := conn.config.HTTPTimeout
13         httpMaxConns := conn.config.HTTPMaxConns
14         // New Transport
15         transport := &http.Transport{
16                 Dial: func(netw, addr string) (net.Conn, error) {
17                         d := net.Dialer{
18                                 Timeout:   httpTimeOut.ConnectTimeout,
19                                 KeepAlive: 30 * time.Second,
20                         }
21                         if config.LocalAddr != nil {
22                                 d.LocalAddr = config.LocalAddr
23                         }
24                         conn, err := d.Dial(netw, addr)
25                         if err != nil {
26                                 return nil, err
27                         }
28                         return newTimeoutConn(conn, httpTimeOut.ReadWriteTimeout, httpTimeOut.LongTimeout), nil
29                 },
30                 MaxIdleConns:          httpMaxConns.MaxIdleConns,
31                 MaxIdleConnsPerHost:   httpMaxConns.MaxIdleConnsPerHost,
32                 IdleConnTimeout:       httpTimeOut.IdleConnTimeout,
33                 ResponseHeaderTimeout: httpTimeOut.HeaderTimeout,
34         }
35         return transport
36 }