更新日报相关功能
This commit is contained in:
1 parent
51fd90fc51
commit
68cdaf38fa
23 files changed
+2313
-1056
No files matched your search
@@ -44,14 +44,20 @@ func ResolveSoftwareDownloadURLs(scheme, host string, downloadURLs *string) map[
|
||||
return result
|
||||
}
|
||||
|
||||
// ResolvePublicURL 把相对路径拼成公开 URL;http(s) 地址原样返回。
|
||||
// legacyStorageHosts 历史七牛 CDN 域名:这两个域名只支持 HTTP,HTTPS 页面直接引用会被
|
||||
// 浏览器以 Mixed Content 拦截,需在返回给前端前改写为当前存储配置的访问入口。
|
||||
var legacyStorageHosts = []string{"7colud.yunzer.cn", "7cloud.yunzer.cn"}
|
||||
|
||||
// ResolvePublicURL 把相对路径拼成公开 URL;http(s) 地址原样返回,
|
||||
// 但历史七牛域名会改写为当前存储配置的访问基址(如 https://yunzer.com.cn/qiniu)。
|
||||
func ResolvePublicURL(scheme, host, src string) string {
|
||||
src = strings.TrimSpace(src)
|
||||
if src == "" {
|
||||
return ""
|
||||
}
|
||||
if strings.HasPrefix(strings.ToLower(src), "http://") || strings.HasPrefix(strings.ToLower(src), "https://") {
|
||||
return src
|
||||
lowerSrc := strings.ToLower(src)
|
||||
if strings.HasPrefix(lowerSrc, "http://") || strings.HasPrefix(lowerSrc, "https://") {
|
||||
return rewriteLegacyStorageURL(src)
|
||||
}
|
||||
if host == "" {
|
||||
return src
|
||||
@@ -65,6 +71,37 @@ func ResolvePublicURL(scheme, host, src string) string {
|
||||
return scheme + "://" + host + src
|
||||
}
|
||||
|
||||
// rewriteLegacyStorageURL 把历史七牛域名的 scheme+host 换成当前存储配置域名,
|
||||
// 保留对象路径不变;非历史域名或配置缺失时原样返回。
|
||||
func rewriteLegacyStorageURL(src string) string {
|
||||
cfg, err := models.GetStorageConfig()
|
||||
if err != nil {
|
||||
return src
|
||||
}
|
||||
base := strings.TrimRight(strings.TrimSpace(cfg.QiniuDomain), "/")
|
||||
if base == "" {
|
||||
return src
|
||||
}
|
||||
if !strings.HasPrefix(base, "http://") && !strings.HasPrefix(base, "https://") {
|
||||
base = "https://" + base
|
||||
}
|
||||
lowerSrc := strings.ToLower(src)
|
||||
for _, legacyHost := range legacyStorageHosts {
|
||||
for _, scheme := range []string{"http://", "https://"} {
|
||||
prefix := scheme + legacyHost
|
||||
if !strings.HasPrefix(lowerSrc, prefix) {
|
||||
continue
|
||||
}
|
||||
rest := src[len(prefix):]
|
||||
// 防止 7colud.yunzer.cn.example.com 这类前缀误匹配
|
||||
if rest == "" || strings.HasPrefix(rest, "/") {
|
||||
return base + rest
|
||||
}
|
||||
}
|
||||
}
|
||||
return src
|
||||
}
|
||||
|
||||
// ResolveSoftwareDownloadURL 优先使用自定义 download_url;否则根据 file_id 读附件 src 拼完整 URL
|
||||
func ResolveSoftwareDownloadURL(scheme, host string, downloadURL *string, fileID *uint64) string {
|
||||
if downloadURL != nil {
|
||||
|
||||
Reference in new issue
Block a user