From 70e3e0ebba3068a2c98f0d13c806c228115374f6 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 24 六月 2019 15:52:32 +0800 Subject: [PATCH] 添加了上传图片的工具包 --- util/common.go | 2 util/upload.go | 37 ++++++++++-------- insertdata/insertDataToEs.go | 24 +++++++++--- main.go | 3 + 4 files changed, 41 insertions(+), 25 deletions(-) diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index 310f7b4..db93ac7 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -4,16 +4,18 @@ "errors" "fmt" "encoding/json" + "log" "net" "time" "basic.com/pubsub/protomsg.git" "basic.com/dbapi.git" - "github.com/golang/protobuf/proto" "ruleprocess/ruleserver" + "ruleprocess/util" + "github.com/golang/protobuf/proto" "github.com/satori/go.uuid" ) - +var weedfsUrl = "http://192.168.1.182:6333/submit" // 浜鸿劯鐨勬暟鎹粨鏋� type PerVideoPicture struct { Id string `json:"id"` @@ -86,10 +88,10 @@ type AlarmRule struct { GroupId string `json:"groupId"` - AlarmLevel int32 `json:"alarmLevel"` + AlarmLevel int32 `json:"alarmLevel"` RuleText string `json:"ruleText"` } - +// 寰�ES鎻掓暟鎹� func InsertToEs(msg ruleserver.ResultMsg) { fmt.Println("寰�ES鎻掓暟鎹�") @@ -176,12 +178,22 @@ alarmRules = append(alarmRules,AlarmRule{result.RuleGroupId,result.AlarmLevel,result.RuleText}) } isAlarm := "" + resp := make(map[string]interface{}) if len(alarmRules) > 0 { isAlarm = "1" + // 瑙e帇缂╁苟涓婁紶鍥剧墖 + bdata, err := util.UnCompress(msg.Data) + if err != nil { + panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒") + } + i := protomsg.Image{} + err = proto.Unmarshal(bdata, &i) + resp,err = util.PostFormBufferData(weedfsUrl,i.Data,uuid.NewV4().String()) }else { isAlarm = "0" - continue + //continue } + log.Println("鍥剧墖涓婁紶杩斿洖鍊硷細",resp) // 鏌ヨ鏈満淇℃伅 flag,localConfig := dbapi.SysSetApi{}.GetServerInfo() if !flag { @@ -207,7 +219,7 @@ localConfig.ServerName, serverIp, "", - "", + resp["fileUrl"].(string), time.Now().Format("2006-01-02 15:04:05"), "", isAlarm, diff --git a/main.go b/main.go index a5fc975..e6375c9 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ "fmt" "ruleprocess/insertdata" "ruleprocess/ruleserver" + "ruleprocess/util" "basic.com/pubsub/protomsg.git" "basic.com/valib/deliver.git" @@ -69,7 +70,7 @@ } arg.CameraId = m.Cid arg.TaskId = m.Tasklab.Taskid - bdata, err := UnCompress(m.Data) + bdata, err := util.UnCompress(m.Data) if err != nil { panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒") } diff --git a/common.go b/util/common.go similarity index 98% rename from common.go rename to util/common.go index dd7ea6f..294883d 100644 --- a/common.go +++ b/util/common.go @@ -1,4 +1,4 @@ -package main +package util import ( "fmt" diff --git a/util/upload.go b/util/upload.go index 9c7e6a2..1aff1fd 100644 --- a/util/upload.go +++ b/util/upload.go @@ -5,24 +5,24 @@ "encoding/json" "errors" "fmt" - uuid "github.com/satori/go.uuid" "io" "log" "mime/multipart" "net/http" "time" ) -var weedfsUri = "http://192.168.1.182:9500/submit" -func PostFormData(uri string) (maps map[string]interface{}, err0 error) { +// 涓婁紶鍥剧墖锛堜簩杩涘埗娴侊級 +func PostFormBufferData(uri string, fileData []byte, fileName string,) (maps map[string]interface{}, err0 error) { body := &bytes.Buffer{} writer := multipart.NewWriter(body) - _, err := writer.CreateFormFile("file", uuid.NewV4().String()) + _, 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(fileData) request_reader := io.MultiReader(body, file, close_buf) //_, err = io.Copy(part, file) //writer.WriteField(key, val) @@ -51,17 +51,20 @@ } }() defer resp.Body.Close() - body = &bytes.Buffer{} - _, err = body.ReadFrom(resp.Body) - if err != nil { - log.Fatal(err) + { + 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 } - fmt.Println(resp.StatusCode) - //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 -} +} \ No newline at end of file -- Gitblit v1.8.0