40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
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)
|
||
}
|
||
}
|