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 --- service/CamraUpdatesnashot.go | 99 +++++++------------------------------------------ 1 files changed, 15 insertions(+), 84 deletions(-) diff --git a/service/CamraUpdatesnashot.go b/service/CamraUpdatesnashot.go index ad5ab9f..97846a8 100644 --- a/service/CamraUpdatesnashot.go +++ b/service/CamraUpdatesnashot.go @@ -1,87 +1,15 @@ package service import ( - "errors" - "path/filepath" - "strconv" - "webserver/extend/config" - "webserver/extend/esutil" - "basic.com/dbapi.git" + "basic.com/fileServer/WeedFSClient.git" "basic.com/valib/capture.git" + "basic.com/valib/logger.git" + "errors" + "strconv" + "webserver/cache" ) /*浠ヤ笅灞炰簬鏃х増鏈湴鎽勫儚鏈鸿幏鍙栨埅鍥撅紙鍥芥爣鎽勫儚鏈哄簳鍥炬棤娉曞埛鏂帮級 -func PostFormBufferData(uri string, filepath string, fileName string) (maps map[string]interface{}, err0 error) { - // 瑕佹寚瀹氳浆byte鐨勬牸寮� - picMat := gocv.IMRead(filepath, gocv.IMReadColor) - defer picMat.Close() - if picMat.Empty() { - return nil, errors.New("file not exist") - } - - pheight := picMat.Rows() - pwidth := picMat.Cols() - pdata := picMat.ToBytes() - - imgs := gocv.NewMat() - imgs, _ = gocv.NewMatFromBytes(pheight, pwidth, gocv.MatTypeCV8UC3, pdata) - fdata, _ := gocv.IMEncode(".jpg", imgs) - body := &bytes.Buffer{} - writer := multipart.NewWriter(body) - _, err := writer.CreateFormFile("file", fileName) - if err != nil { - return nil, err - } - boundary := writer.Boundary() - //close_string := fmt.Sprintf("\r\n--%s--\r\n", boundary) - close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary)) - file := bytes.NewBuffer(fdata) - request_reader := io.MultiReader(body, file, close_buf) - //_, err = io.Copy(part, file) - //writer.WriteField(key, val) - request, err := http.NewRequest("POST", uri, request_reader) - request.Header.Add("Content-Type", writer.FormDataContentType()) - timeout := time.Duration(5 * time.Second) //瓒呮椂鏃堕棿50ms - client := &http.Client{Timeout: timeout} - resp, err := client.Do(request) - if err != nil { - log.Fatal(err) - return nil, err - } - defer func() { - if r := recover(); r != nil { - fmt.Printf("panic鐨勫唴瀹�%v\n", r) - msg := "涓婁紶鍥剧墖鏈嶅姟鍣ㄥ紓甯�" - if _, ok := r.(error); ok { - msg = r.(error).Error() - fmt.Println("panic--recover()寰楀埌鐨勬槸error绫诲瀷") - } - if _, ok := r.(string); ok { - msg = r.(string) - fmt.Println("panic--recover()寰楀埌鐨勬槸string绫诲瀷") - } - err0 = errors.New(msg) - } - }() - defer resp.Body.Close() - { - body := &bytes.Buffer{} - _, err := body.ReadFrom(resp.Body) - if err != nil { - log.Fatal(err) - } - fmt.Println(resp.StatusCode) - //fmt.Println(resp.Header) - fmt.Println(body) - //decoder := json.NewDecoder(strings.NewReader(body.String())) - decoder := make(map[string]interface{}) - if err := json.Unmarshal([]byte(body.String()), &decoder); err != nil { - return nil, err - } - return decoder, nil - } -} - func processphoto(cid string) (local string, err error) { var camApi dbapi.CameraApi caminfo, err := camApi.GetCameraById(cid) @@ -145,20 +73,23 @@ if camera.Type == 1{//鍥芥爣鎽勫儚鏈� m = capture.GB28181 } - b,err := capture.Capture("./runtime/libcffmpeg.so",m,camera.Rtsp,capture.JPEGFileExt,1280,720,10) + b,err := capture.Capture("libcffmpeg.so",m,camera.Rtsp,capture.JPEGFileExt,1280,720,10) if err == nil{ - var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" - resp, err := esutil.PostFormBufferData(weedfsUri, camera.Name+".jpg", "file", b) + localConf, err2 := cache.GetServerInfo() + if err2 !=nil || localConf.WebPicIp == "" { + logger.Debug("localConfig is wrong!!!") + return "",err2 + } + var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit?collection=persistent" + weedFilePath, err := WeedFSClient.UploadFile(weedfsUri, camera.Name+".jpg", b) if err != nil { return "",err } else { - fileurl := resp["fileUrl"].(string) // 鏂囦欢璺緞 - filename := filepath.Base(fileurl) - ok := cameraApi.UpdateSnapshotUrl(cid, filename) + ok := cameraApi.UpdateSnapshotUrl(cid, weedFilePath) if !ok { return "", errors.New("update camera's snapshot fail") } - return filename, nil + return weedFilePath, nil } }else{ return "",err -- Gitblit v1.8.0