update
This commit is contained in:
@ -119,6 +119,10 @@ type IngestConfig struct {
|
||||
Secret string `yaml:"secret"`
|
||||
// TTLSeconds 时间戳容忍窗口(秒),默认 300(±5 分钟)。
|
||||
TTLSeconds int `yaml:"ttl_seconds"`
|
||||
// DownloadProxy 本机下载代理(仅本地开发用):worker 下载图片经此代理访问源站,
|
||||
// 支持 http:// 或 socks5://(如 socks5://127.0.0.1:51831、http://127.0.0.1:58591)。
|
||||
// 仅作用于图片下载客户端,不影响 S4 上传与数据库连接;留空直连。env: INGEST_DOWNLOAD_PROXY
|
||||
DownloadProxy string `yaml:"download_proxy"`
|
||||
}
|
||||
|
||||
// S4Config 缤纷云 S4 对象存储配置(S3 兼容,爬虫入库图片上传目标)。
|
||||
@ -212,8 +216,9 @@ func defaultConfig() *Config {
|
||||
TTLSeconds: 30,
|
||||
},
|
||||
Ingest: IngestConfig{
|
||||
Secret: "",
|
||||
TTLSeconds: 300,
|
||||
Secret: "",
|
||||
TTLSeconds: 300,
|
||||
DownloadProxy: "",
|
||||
},
|
||||
S4: S4Config{
|
||||
Enabled: false,
|
||||
@ -268,11 +273,33 @@ func Load(explicit string) (*Config, error) {
|
||||
}
|
||||
cfg.loadedFrom = loadedFrom
|
||||
|
||||
// 本机私有覆盖(config.local.yml,已被 .gitignore 忽略):叠加在 config.yml 之上,
|
||||
// 用于放本机相关、不应进版本库的设置(如本地代理 download_proxy)。环境变量仍拥有最高优先级。
|
||||
overlayLocalConfig(cfg)
|
||||
|
||||
cfg.applyEnv()
|
||||
cfg.normalize()
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
// overlayLocalConfig 把本机私有覆盖文件 config.local.yml(若存在)叠加到配置上。
|
||||
// 仅用于本机相关、不应进版本库的设置(如本地代理 download_proxy);文件不存在则静默跳过。
|
||||
// 与 config.yml 同样走 goccy/go-yaml 反序列化,仅覆盖文件中出现的键;环境变量仍在 applyEnv 中拥有最高优先级。
|
||||
func overlayLocalConfig(cfg *Config) {
|
||||
for _, p := range []string{
|
||||
"configs/config.local.yml",
|
||||
"config.local.yml",
|
||||
filepath.Join("..", "..", "configs", "config.local.yml"),
|
||||
} {
|
||||
data, err := os.ReadFile(p)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
_ = yaml.Unmarshal(data, cfg) // 解析失败静默跳过:本地覆盖属尽力而为,不应阻断启动
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// LoadedFrom 返回实际加载的配置文件路径;为空表示未找到配置文件、全部使用默认值与环境变量。
|
||||
func (c *Config) LoadedFrom() string { return c.loadedFrom }
|
||||
|
||||
@ -310,6 +337,7 @@ func (c *Config) applyEnv() {
|
||||
|
||||
envStr("INGEST_SECRET", &c.Ingest.Secret)
|
||||
envInt("INGEST_TTL", &c.Ingest.TTLSeconds)
|
||||
envStr("INGEST_DOWNLOAD_PROXY", &c.Ingest.DownloadProxy)
|
||||
|
||||
// 缤纷云 S4(兼容 S3):环境变量 S4_* 注入;旧 QINIU_* 仅作兼容回退,便于平滑切换
|
||||
// (S4_* 优先,仅在 S4_* 为空时回退 QINIU_*)。
|
||||
|
||||
Reference in New Issue
Block a user