| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package config
- import (
- "fmt"
- "os"
- "time"
-
- "gopkg.in/yaml.v3"
- )
- type Config struct {
- Server struct {
- Port string `yaml:"port"`
- WebLog bool `yaml:"web_log"`
- } `yaml:"server"`
-
- JWT struct {
- SecretKey string `yaml:"secret_key"`
- AccessTokenExp time.Duration `yaml:"access_token_exp"` // 纳秒为单位
- RefreshTokenExp time.Duration `yaml:"refresh_token_exp"` // 纳秒为单位
- } `yaml:"jwt"`
-
- Redis struct {
- Addr string `yaml:"addr"`
- Password string `yaml:"password"`
- DB int `yaml:"db"`
- } `yaml:"redis"`
-
- Database struct {
- Host string `yaml:"host"`
- Port int `yaml:"port"`
- User string `yaml:"user"`
- Password string `yaml:"password"`
- Name string `yaml:"name"`
- Log bool `yaml:"log"`
- } `yaml:"database"`
-
- Minio struct {
- Addr string `yaml:"addr"`
- User string `yaml:"user"`
- Password string `yaml:"password"`
- UseSSL bool `yaml:"usessl"`
- } `yaml:"minio"`
- }
- // Load 从配置文件和环境变量加载配置
- func Load(configPath string) (*Config, error) {
- cfg := &Config{}
- // 如果提供了配置文件路径,则从文件读取
- if configPath != "" {
- data, err := os.ReadFile(configPath)
- if err != nil {
- return nil, fmt.Errorf("读取配置文件失败: %w", err)
- }
-
- if err := yaml.Unmarshal(data, cfg); err != nil {
- return nil, fmt.Errorf("解析配置文件失败: %w", err)
- }
- }
-
- return cfg, nil
- }
|