OSDN Git Service

Create ossClient.go (#574)
[bytom/vapor.git] / vendor / github.com / aliyun / aliyun-oss-go-sdk / oss / transport_1_7.go
diff --git a/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_7.go b/vendor/github.com/aliyun/aliyun-oss-go-sdk/oss/transport_1_7.go
new file mode 100644 (file)
index 0000000..757543b
--- /dev/null
@@ -0,0 +1,36 @@
+// +build go1.7
+
+package oss
+
+import (
+       "net"
+       "net/http"
+       "time"
+)
+
+func newTransport(conn *Conn, config *Config) *http.Transport {
+       httpTimeOut := conn.config.HTTPTimeout
+       httpMaxConns := conn.config.HTTPMaxConns
+       // New Transport
+       transport := &http.Transport{
+               Dial: func(netw, addr string) (net.Conn, error) {
+                       d := net.Dialer{
+                               Timeout:   httpTimeOut.ConnectTimeout,
+                               KeepAlive: 30 * time.Second,
+                       }
+                       if config.LocalAddr != nil {
+                               d.LocalAddr = config.LocalAddr
+                       }
+                       conn, err := d.Dial(netw, addr)
+                       if err != nil {
+                               return nil, err
+                       }
+                       return newTimeoutConn(conn, httpTimeOut.ReadWriteTimeout, httpTimeOut.LongTimeout), nil
+               },
+               MaxIdleConns:          httpMaxConns.MaxIdleConns,
+               MaxIdleConnsPerHost:   httpMaxConns.MaxIdleConnsPerHost,
+               IdleConnTimeout:       httpTimeOut.IdleConnTimeout,
+               ResponseHeaderTimeout: httpTimeOut.HeaderTimeout,
+       }
+       return transport
+}