package main // nl-pms-api:code-count(view 桌面端)的文件存储服务。 // 客户端凭配置密钥上传图片(POST /api/v1/files),换取可公开访问的 // http URL(GET /files/...),Markdown 内容图 / 头像等远程场景直接引用该 URL。 // // 表结构约定:仅 dev 环境(config.yaml 里 env: dev)启动时 AutoMigrate; // 生产环境启动绝不执行任何 DDL,缺表直接退出(需先手工执行 init.sql)。 import ( "flag" "log" "os" "nl-pms-api/internal/config" "nl-pms-api/internal/database" "nl-pms-api/internal/router" ) func main() { cfgPath := flag.String("config", "config.yaml", "配置文件路径") flag.Parse() cfg, err := config.Load(*cfgPath) if err != nil { log.Fatalf("[nl-pms-api] %v", err) } db, err := database.Open(cfg) if err != nil { log.Fatalf("[nl-pms-api] %v", err) } if err := os.MkdirAll(cfg.StorageDir, 0755); err != nil { log.Fatalf("[nl-pms-api] 创建存储目录失败: %v", err) } r := router.New(cfg, db) log.Printf("[nl-pms-api] env=%s listen=%s storage=%s", cfg.Env, cfg.Listen, cfg.StorageDir) if err := r.Run(cfg.Listen); err != nil { log.Fatalf("[nl-pms-api] %v", err) } }