feat: load oss media config from sys config
This commit is contained in:
@@ -131,6 +131,10 @@ func (oh *ossHandler) loadSysConfig() error {
|
||||
"oss_access_key_id",
|
||||
"oss_access_key_secret",
|
||||
"oss_presign_ttl",
|
||||
"oss_serve_url",
|
||||
"oss_cache_control",
|
||||
"oss_cors_origins",
|
||||
"oss_verify_bucket",
|
||||
)
|
||||
if err != nil {
|
||||
return errors.New("failed to load OSS config from sys config: " + err.Error())
|
||||
@@ -146,6 +150,14 @@ func (oh *ossHandler) loadSysConfig() error {
|
||||
applyString(&oh.conf.RegionID, values["oss_region_id"])
|
||||
applyString(&oh.conf.AccessKeyID, values["oss_access_key_id"])
|
||||
applyString(&oh.conf.AccessKeySecret, values["oss_access_key_secret"])
|
||||
applyString(&oh.conf.ServeURL, values["oss_serve_url"])
|
||||
applyString(&oh.conf.CacheControl, values["oss_cache_control"])
|
||||
if origins := parseStringList(values["oss_cors_origins"]); len(origins) > 0 {
|
||||
oh.conf.CorsOrigins = origins
|
||||
}
|
||||
if verify := strings.TrimSpace(values["oss_verify_bucket"]); verify != "" {
|
||||
oh.conf.VerifyBucket = truthy(verify)
|
||||
}
|
||||
if ttl := strings.TrimSpace(values["oss_presign_ttl"]); ttl != "" {
|
||||
parsed, err := strconv.Atoi(ttl)
|
||||
if err != nil {
|
||||
@@ -156,6 +168,30 @@ func (oh *ossHandler) loadSysConfig() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func parseStringList(value string) []string {
|
||||
value = strings.TrimSpace(value)
|
||||
if value == "" {
|
||||
return nil
|
||||
}
|
||||
var items []string
|
||||
if strings.HasPrefix(value, "[") {
|
||||
if err := json.Unmarshal([]byte(value), &items); err == nil {
|
||||
return compactStrings(items)
|
||||
}
|
||||
}
|
||||
return compactStrings(strings.Split(value, ","))
|
||||
}
|
||||
|
||||
func compactStrings(values []string) []string {
|
||||
items := make([]string, 0, len(values))
|
||||
for _, value := range values {
|
||||
if value = strings.TrimSpace(value); value != "" {
|
||||
items = append(items, value)
|
||||
}
|
||||
}
|
||||
return items
|
||||
}
|
||||
|
||||
func applyString(target *string, value string) {
|
||||
if value = strings.TrimSpace(value); value != "" {
|
||||
*target = value
|
||||
|
||||
Reference in New Issue
Block a user