feat(deploy): 添加部署文件管理功能
- 新增部署文件自动迁移 - 创建部署文件管理路由 - 实现部署文件删除功能,包括删除数据库记录和实际文件夹 - 更新文件上传路由,添加鉴权中间件
This commit is contained in:
parent
138af37397
commit
7536ae53b0
|
@ -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 {
|
||||
|
|
|
@ -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())
|
||||
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue