package storage import ( "crypto/rand" "encoding/hex" "strings" ) func randomHex(n int) string { b := make([]byte, n) _, _ = rand.Read(b) return hex.EncodeToString(b) } // NormalizePublicBase 去掉末尾斜杠 func NormalizePublicBase(base string) string { return strings.TrimRight(strings.TrimSpace(base), "/") } // IsAllowedObjectURL 判断 url 是否属于当前存储公网前缀 func IsAllowedObjectURL(publicBase, url string) bool { base := NormalizePublicBase(publicBase) if base == "" || url == "" { return false } return strings.HasPrefix(url, base+"/") || url == base }