feat(deploy): 添加部署文件管理功能
- 新增部署文件自动迁移 - 创建部署文件管理路由 - 实现部署文件删除功能,包括删除数据库记录和实际文件夹 - 更新文件上传路由,添加鉴权中间件
This commit is contained in:
parent
138af37397
commit
7536ae53b0
|
@ -2,6 +2,7 @@ package conf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"ego/internal/model"
|
||||||
"ego/pkg/logger"
|
"ego/pkg/logger"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
@ -143,7 +144,9 @@ func Migration() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 自动迁移模式
|
// 自动迁移模式
|
||||||
models := []any{}
|
models := []any{
|
||||||
|
&model.SysDeployFile{},
|
||||||
|
}
|
||||||
|
|
||||||
for _, model := range models {
|
for _, model := range models {
|
||||||
if err := Db.AutoMigrate(model); err != nil {
|
if err := Db.AutoMigrate(model); err != nil {
|
||||||
|
|
|
@ -22,7 +22,7 @@ func init() {
|
||||||
// @Produce json
|
// @Produce json
|
||||||
func SysDeployFileHandlerRouter(group *gin.RouterGroup, h *handler.SysDeployFileHandler) {
|
func SysDeployFileHandlerRouter(group *gin.RouterGroup, h *handler.SysDeployFileHandler) {
|
||||||
// 部署文件管理路由组
|
// 部署文件管理路由组
|
||||||
g := group.Group("/deploy-files")
|
g := group.Group("/DeployFiles")
|
||||||
// 鉴权
|
// 鉴权
|
||||||
g.Use(middleware.AuthRequired())
|
g.Use(middleware.AuthRequired())
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package router
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"ego/internal/handler"
|
"ego/internal/handler"
|
||||||
|
"ego/internal/middleware"
|
||||||
"ego/internal/wire"
|
"ego/internal/wire"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
@ -15,7 +16,7 @@ func init() {
|
||||||
// SysUploadHandlerRouter 文件上传路由
|
// SysUploadHandlerRouter 文件上传路由
|
||||||
func SysUploadHandlerRouter(r *gin.RouterGroup, h *handler.SysUploadHandler) {
|
func SysUploadHandlerRouter(r *gin.RouterGroup, h *handler.SysUploadHandler) {
|
||||||
upload := r.Group("/upload")
|
upload := r.Group("/upload")
|
||||||
//upload.Use(middleware.AuthRequired())
|
upload.Use(middleware.AuthRequired())
|
||||||
{
|
{
|
||||||
upload.POST("/zip", h.UploadZip)
|
upload.POST("/zip", h.UploadZip)
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@ import (
|
||||||
"ego/pkg/logger"
|
"ego/pkg/logger"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
|
@ -116,6 +118,21 @@ func (s *SysDeployFileService) DeleteByID(c *gin.Context) serializer.Response {
|
||||||
"update_by": c.GetString("id"),
|
"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 {
|
if err := s.Db.Model(&model.SysDeployFile{}).Where("deploy_id = ?", id).Updates(data).Error; err != nil {
|
||||||
logger.Error(c, "删除部署文件记录失败!")
|
logger.Error(c, "删除部署文件记录失败!")
|
||||||
return serializer.DBErr("删除部署文件记录失败!", err)
|
return serializer.DBErr("删除部署文件记录失败!", err)
|
||||||
|
|
Loading…
Reference in New Issue