From 88270f1b7034c0a5f6d52b60c60a9e1362170d13 Mon Sep 17 00:00:00 2001 From: ZZF <31278216+byxiaozhi@users.noreply.github.com> Date: Fri, 29 May 2020 19:35:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0CDN=E6=94=AF=E6=8C=81?= =?UTF-8?q?=EF=BC=8C=E5=85=AC=E6=9C=89=E7=9B=AE=E5=BD=95=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/filesystem/driver/s3/handler.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/pkg/filesystem/driver/s3/handler.go b/pkg/filesystem/driver/s3/handler.go index 74e201cf..fa26cc18 100644 --- a/pkg/filesystem/driver/s3/handler.go +++ b/pkg/filesystem/driver/s3/handler.go @@ -316,9 +316,29 @@ func (handler Driver) Source( ttl = 3600 } - url, _ := req.Presign(time.Duration(ttl) * time.Second) + signedURL, _ := req.Presign(time.Duration(ttl) * time.Second) - return url, nil + // 将最终生成的签名URL域名换成用户自定义的加速域名(如果有) + finalURL, err := url.Parse(signedURL) + if err != nil { + return "", err + } + + // 公有空间替换掉Key及不支持的头 + if !handler.Policy.IsPrivate { + finalURL.RawQuery = "" + } + + if handler.Policy.BaseURL != "" { + cdnURL, err := url.Parse(handler.Policy.BaseURL) + if err != nil { + return "", err + } + finalURL.Host = cdnURL.Host + finalURL.Scheme = cdnURL.Scheme + } + + return finalURL.String(), nil } // Token 获取上传策略和认证Token