From f5371f94a4121be2d69dcc833f02699374da2839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E9=98=B3?= <1656488874@qq.com> Date: Fri, 27 Sep 2019 11:30:38 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=B8=8A=E4=BC=A0=E7=88=AC=E8=99=AB?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/model/file.go | 16 ++++++++++++++++ backend/model/spider.go | 4 ++++ backend/routes/spider.go | 6 +++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/backend/model/file.go b/backend/model/file.go index f0968086..ca2c8ead 100644 --- a/backend/model/file.go +++ b/backend/model/file.go @@ -6,6 +6,7 @@ import ( "github.com/apex/log" "github.com/globalsign/mgo/bson" "os" + "runtime/debug" "time" ) @@ -25,6 +26,19 @@ type File struct { Size int64 `json:"size"` } +func GetAllGridFs() []*GridFs { + s, gf := database.GetGridFs("files") + defer s.Close() + + var files []*GridFs + if err := gf.Find(nil).All(&files); err != nil { + log.Errorf("get all files error: {}", err.Error()) + debug.PrintStack() + return nil + } + return files +} + func GetGridFs(id bson.ObjectId) *GridFs { s, gf := database.GetGridFs("files") defer s.Close() @@ -33,6 +47,7 @@ func GetGridFs(id bson.ObjectId) *GridFs { err := gf.Find(bson.M{"_id": id}).One(&gfFile) if err != nil { log.Errorf("get gf file error: %s, file_id: %s", err.Error(), id.Hex()) + debug.PrintStack() return nil } return &gfFile @@ -41,6 +56,7 @@ func GetGridFs(id bson.ObjectId) *GridFs { func RemoveFile(path string) error { if !utils.Exists(path) { log.Info("file not found: " + path) + debug.PrintStack() return nil } if err := os.Remove(path); err != nil { diff --git a/backend/model/spider.go b/backend/model/spider.go index 5d8fa482..c4e94349 100644 --- a/backend/model/spider.go +++ b/backend/model/spider.go @@ -124,6 +124,10 @@ func GetSpiderList(filter interface{}, skip int, limit int) ([]Spider, int, erro return spiders, count, nil } +func GetSpiderByFileId(fileId bson.ObjectId) { + +} + func GetSpiderByName(name string) *Spider { s, c := database.GetCol("spiders") defer s.Close() diff --git a/backend/routes/spider.go b/backend/routes/spider.go index 0e68bc54..9357ca5e 100644 --- a/backend/routes/spider.go +++ b/backend/routes/spider.go @@ -161,8 +161,12 @@ func PutSpider(c *gin.Context) { debug.PrintStack() return } + + idx := strings.LastIndex(uploadFile.Filename, "/") + targetFilename := uploadFile.Filename[idx+1:] + // 判断爬虫是否存在 - spiderName := strings.Replace(uploadFile.Filename, ".zip", "", -1) + spiderName := strings.Replace(targetFilename, ".zip", "", 1) spider := model.GetSpiderByName(spiderName) if spider == nil { // 保存爬虫信息