From b7db915859f52198c8a9b727eba0ea7fc412b68f Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 23 Sep 2024 17:30:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=B7=9F=E8=B8=AA?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1pcap=E6=96=87=E4=BB=B6=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/trace/controller/trace_task.go | 24 ++++++++++++++++++++++ src/modules/trace/trace.go | 4 ++++ 2 files changed, 28 insertions(+) diff --git a/src/modules/trace/controller/trace_task.go b/src/modules/trace/controller/trace_task.go index 7598c567..fc912eab 100644 --- a/src/modules/trace/controller/trace_task.go +++ b/src/modules/trace/controller/trace_task.go @@ -1,6 +1,9 @@ package controller import ( + "fmt" + "path/filepath" + "runtime" "strings" "be.ems/src/framework/i18n" @@ -129,3 +132,24 @@ func (s *TraceTaskController) Remove(c *gin.Context) { msg := i18n.TTemplate(language, "app.common.deleteSuccess", map[string]any{"num": rows}) c.JSON(200, result.OkMsg(msg)) } + +// 跟踪任务文件 +// +// GET /filePull +func (s *TraceTaskController) FilePull(c *gin.Context) { + language := ctx.AcceptLanguage(c) + var querys struct { + TraceId string `form:"traceId" binding:"required"` + } + if err := c.ShouldBindQuery(&querys); err != nil { + c.JSON(400, result.CodeMsg(400, i18n.TKey(language, "app.common.err400"))) + return + } + + fileName := fmt.Sprintf("task_%s.pcap", querys.TraceId) + localFilePath := filepath.Join("/tmp/omc/trace", fileName) + if runtime.GOOS == "windows" { + localFilePath = fmt.Sprintf("C:%s", localFilePath) + } + c.FileAttachment(localFilePath, fileName) +} diff --git a/src/modules/trace/trace.go b/src/modules/trace/trace.go index db3b777c..b7e4b399 100644 --- a/src/modules/trace/trace.go +++ b/src/modules/trace/trace.go @@ -92,6 +92,10 @@ func Setup(router *gin.Engine) { collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.task", collectlogs.BUSINESS_TYPE_DELETE)), controller.NewTraceTask.Remove, ) + taskGroup.GET("/filePull", + middleware.PreAuthorize(nil), + controller.NewTraceTask.FilePull, + ) } // 跟踪数据