代码初始化
This commit is contained in:
73
main.go
Normal file
73
main.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
controllerAudio "media/controller/audio"
|
||||
controllerVideo "media/controller/video"
|
||||
serviceSetup "media/service/setup"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
_ "gitea.com/red-future/common/consul"
|
||||
"gitea.com/red-future/common/http"
|
||||
"gitea.com/red-future/common/jaeger"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx := context.Background()
|
||||
defer jaeger.ShutDown(ctx)
|
||||
|
||||
loc, err := time.LoadLocation("Asia/Shanghai")
|
||||
if err == nil {
|
||||
time.Local = loc
|
||||
}
|
||||
os.Setenv("TZ", "Asia/Shanghai")
|
||||
|
||||
serviceSetup.EnsureDependencies(ctx)
|
||||
|
||||
// 清理旧 temp 文件(防止异常中断残留)
|
||||
cleanupTempDir(ctx)
|
||||
|
||||
// 文件上传路由(在 RouteRegister 启动服务器之前注册)
|
||||
http.Httpserver.BindHandler("/audio/transcribe", controllerAudio.AudioExtract.TranscribeHandler)
|
||||
http.Httpserver.BindHandler("/video/concat", controllerVideo.Concat.ConcatVideosHandler)
|
||||
|
||||
// 启动服务器(无需 g.Meta 自动注册)
|
||||
http.RouteRegister(nil)
|
||||
|
||||
port := g.Cfg().MustGet(ctx, "server.address", ":3001").String()
|
||||
g.Log().Info(ctx, "============================================")
|
||||
g.Log().Infof(ctx, "服务启动: http://localhost%s", port)
|
||||
g.Log().Infof(ctx, " POST %s/audio/transcribe - 语音转文字+分镜分析(文件上传,参数名 files)", port)
|
||||
g.Log().Infof(ctx, " POST %s/video/concat - 视频拼接(文件上传,参数名 files,至少2个视频)", port)
|
||||
g.Log().Info(ctx, "============================================")
|
||||
|
||||
select {}
|
||||
}
|
||||
|
||||
// cleanupTempDir 清理临时文件目录,防止旧运行残留
|
||||
func cleanupTempDir(ctx context.Context) {
|
||||
tempDir := g.Cfg().MustGet(ctx, "ffmpeg.temp_dir", "resource/temp").String()
|
||||
if tempDir == "" {
|
||||
tempDir = "resource/temp"
|
||||
}
|
||||
if !filepath.IsAbs(tempDir) {
|
||||
absDir, err := filepath.Abs(tempDir)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
tempDir = absDir
|
||||
}
|
||||
|
||||
entries, err := os.ReadDir(tempDir)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for _, entry := range entries {
|
||||
fullPath := filepath.Join(tempDir, entry.Name())
|
||||
os.RemoveAll(fullPath)
|
||||
}
|
||||
g.Log().Infof(ctx, "临时目录已清理: %s", tempDir)
|
||||
}
|
||||
Reference in New Issue
Block a user