feat(deploy): 添加部署文件管理功能

- 新增部署文件自动迁移
- 创建部署文件管理路由
- 实现部署文件删除功能,包括删除数据库记录和实际文件夹
- 更新文件上传路由,添加鉴权中间件
This commit is contained in:
zhangtao 2025-08-01 16:59:47 +08:00
parent 138af37397
commit 7536ae53b0
4 changed files with 24 additions and 3 deletions

View File

@ -2,6 +2,7 @@ package conf
import (
"database/sql"
"ego/internal/model"
"ego/pkg/logger"
"fmt"
"log"
@ -143,7 +144,9 @@ func Migration() error {
}
// 自动迁移模式
models := []any{}
models := []any{
&model.SysDeployFile{},
}
for _, model := range models {
if err := Db.AutoMigrate(model); err != nil {

View File

@ -22,7 +22,7 @@ func init() {
// @Produce json
func SysDeployFileHandlerRouter(group *gin.RouterGroup, h *handler.SysDeployFileHandler) {
// 部署文件管理路由组
g := group.Group("/deploy-files")
g := group.Group("/DeployFiles")
// 鉴权
g.Use(middleware.AuthRequired())

View File

@ -2,6 +2,7 @@ package router
import (
"ego/internal/handler"
"ego/internal/middleware"
"ego/internal/wire"
"github.com/gin-gonic/gin"
)
@ -15,7 +16,7 @@ func init() {
// SysUploadHandlerRouter 文件上传路由
func SysUploadHandlerRouter(r *gin.RouterGroup, h *handler.SysUploadHandler) {
upload := r.Group("/upload")
//upload.Use(middleware.AuthRequired())
upload.Use(middleware.AuthRequired())
{
upload.POST("/zip", h.UploadZip)
}

View File

@ -8,6 +8,8 @@ import (
"ego/pkg/logger"
"fmt"
"io"
"os"
"path/filepath"
"time"
"github.com/gin-gonic/gin"
@ -116,6 +118,21 @@ func (s *SysDeployFileService) DeleteByID(c *gin.Context) serializer.Response {
"update_by": c.GetString("id"),
}
// 删除已经部署的文件夹
deployFile := model.SysDeployFile{}
if err := s.Db.Where("deploy_id = ?", id).First(&deployFile).Error; err != nil {
logger.Error(c, "获取部署文件记录失败!")
return serializer.DBErr("获取部署文件记录失败!", err)
}
// 删除 /home/:projectName
err := os.RemoveAll(filepath.Join("/home", deployFile.ProjectName))
if err != nil {
logger.Error(c, "删除部署文件夹失败!")
return serializer.DBErr("删除部署文件夹失败!", err)
}
// 删除数据库记录
if err := s.Db.Model(&model.SysDeployFile{}).Where("deploy_id = ?", id).Updates(data).Error; err != nil {
logger.Error(c, "删除部署文件记录失败!")
return serializer.DBErr("删除部署文件记录失败!", err)