feat: 新增文件上传服务

- 添加 UploadHandler 处理文件上传
- 添加 UploadService 实现文件存储
- 配置上传文件大小限制和存储路径

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 16:54:41 +08:00
parent b715b8e859
commit 4d4a756f4f
7 changed files with 343 additions and 11 deletions

View File

@@ -82,6 +82,10 @@ func main() {
subTableService := service.NewSubTableService(subTableRepo, dbRepo)
neo4jService := service.NewNeo4jService(dbRepo)
modelService := service.NewModelService(modelRepo)
uploadService, err := service.NewUploadService(cfg)
if err != nil {
log.Printf("Warning: Failed to initialize upload service: %v (files will not be available)", err)
}
// 6. 初始化 Handler
dbHandler := handler.NewDatabaseHandler(dbService)
@@ -89,6 +93,10 @@ func main() {
neo4jHandler := handler.NewNeo4jHandler(neo4jService)
modelHandler := handler.NewModelHandler(modelService)
systemHandler := handler.NewSystemHandler()
var uploadHandler *handler.UploadHandler
if uploadService != nil {
uploadHandler = handler.NewUploadHandler(uploadService)
}
// 7. 设置路由
r := gin.New()
@@ -180,6 +188,17 @@ func main() {
// 系统信息模块
r.GET("/system/info", systemHandler.GetSystemInfo)
// 文件上传模块
if uploadHandler != nil {
// 本地文件静态服务
if cfg.UploadMode == "local" {
r.Static("/files", cfg.UploadLocalPath)
}
// 上传路由
r.POST("/upload", uploadHandler.Upload)
r.DELETE("/upload/:filename", uploadHandler.Delete)
}
// 8. 启动服务
log.Printf("Server starting on :%s", cfg.Port)
if err := r.Run(":" + cfg.Port); err != nil {