From 1132b96243d26d46467b94beb0f9b217cd24923a Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期一, 23 十一月 2020 11:41:42 +0800 Subject: [PATCH] 修复上传后weedfs可能报错的情况,没有fileUrl返回而是只有err --- WeedFSClient.go | 24 ++++++++++++++++++++---- 1 files changed, 20 insertions(+), 4 deletions(-) diff --git a/WeedFSClient.go b/WeedFSClient.go index 4a4e4d1..c33b73b 100644 --- a/WeedFSClient.go +++ b/WeedFSClient.go @@ -9,6 +9,7 @@ "mime/multipart" "net/http" "github.com/kirinlabs/HttpRequest" + "strings" "time" ) @@ -58,19 +59,33 @@ _, err := body.ReadFrom(resp.Body) if err != nil { fmt.Println("UploadFile body.ReadForm(resp.Body) err:", err) + return "", err } m := make(map[string]interface{}) if err := json.Unmarshal([]byte(body.String()), &m); err != nil { return "", err } - filePath := m["fileUrl"].(string) - return filePath,nil + if furl,ok := m["fileUrl"]; ok { + filePath := furl.(string) + return appendCollection2Uri(uri, filePath),nil + } else { + return "", errors.New("file server err") + } } } -// 鑾峰緱涓�涓猣id +func appendCollection2Uri(weedfsUri, fileUri string) string { + //鍒ゆ柇weedfsUri涓槸鍚﹀寘鍚玞ollection鍙傛暟 + idx := strings.Index(weedfsUri, "?") + if idx > -1 { + return fileUri + weedfsUri[idx:] + } else { + return fileUri + } +} +// 鑾峰緱涓�涓猣id url eg:http://192.168.5.23:6333/assign/dir?collection=11111-persistent func GetFid(url string)(weedPath string ,err error) { res,err := HttpRequest.NewRequest().Post(url) if err != nil { @@ -85,7 +100,8 @@ u,ok1 := m["url"] f,ok2 := m["fid"] if ok1 && ok2 { - return "http://"+u.(string)+"/"+f.(string),err + filePath := "http://"+u.(string)+"/"+f.(string) + return appendCollection2Uri(url, filePath),err } else { return "", errors.New("鏈幏鍙栧埌url鍜宖id") } -- Gitblit v1.8.0