From 2a4041f16c6588921c87df93927e9076c2cc309d Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期一, 08 六月 2020 18:21:19 +0800 Subject: [PATCH] add sdk download impl --- extend/util/util.go | 56 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 42 insertions(+), 14 deletions(-) diff --git a/extend/util/util.go b/extend/util/util.go index 555bc37..49e7bbb 100644 --- a/extend/util/util.go +++ b/extend/util/util.go @@ -2,13 +2,15 @@ import ( "archive/zip" + "basic.com/valib/logger.git" "bytes" "crypto/md5" + "crypto/tls" "encoding/hex" "encoding/json" - "image" "io" "io/ioutil" + "net" "net/http" "os" "path/filepath" @@ -17,12 +19,10 @@ "webserver/extend/code" "basic.com/pubsub/protomsg.git" - "github.com/gin-gonic/gin" - "github.com/pierrec/lz4" - "gocv.io/x/gocv" - "crypto/rand" "fmt" + "github.com/gin-gonic/gin" + "github.com/pierrec/lz4" "reflect" "strings" ) @@ -93,15 +93,6 @@ return nil, err } return pix, nil -} - -// 鎸夊昂瀵稿幓鍒囧浘 -func SubImg(i protomsg.Image, x0, y0, x1, y1 int) []byte { - img, _ := gocv.NewMatFromBytes(int(i.Height), int(i.Width), gocv.MatTypeCV8UC3, i.Data) - rect := image.Rect(EnlargeSize(x0, y0, x1, y1, i)) - region := img.Region(rect) - bytes, _ := gocv.IMEncode(".jpg", region) - return bytes } // 闀垮鍙樹负涓�姣斾竴锛屾瘡杈瑰悇鎵╃櫨鍒嗕箣20 @@ -325,4 +316,41 @@ } return hex.EncodeToString(_md5.Sum(nil)),nil +} + +func DownLoad(url string)([]byte,error){ + connectTimeout := 5 * time.Second + readWriteTimeout := 10000 * time.Millisecond + c := &http.Client{ + Transport: &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + Dial: TimeoutDialer(connectTimeout, readWriteTimeout), + }, + } + req, err := http.NewRequest("GET",url,nil) + if err != nil { + return nil,err + } + resp,err := c.Do(req) + + body, err1 := ioutil.ReadAll(resp.Body) + if err1 != nil { + resp.Body.Close() + return nil,err + }else { + logger.Debug("Download success") + } + resp.Body.Close() + return body,nil +} + +func TimeoutDialer(cTimeout time.Duration, rwTimeout time.Duration) func(net, addr string) (c net.Conn, err error) { + return func(netw, addr string) (net.Conn, error) { + conn, err := net.DialTimeout(netw, addr, cTimeout) + if err != nil { + return nil, err + } + conn.SetDeadline(time.Now().Add(rwTimeout)) + return conn, nil + } } \ No newline at end of file -- Gitblit v1.8.0