From 9398cdaac1c1a55f4a9ec4f7d169e7d957f74e81 Mon Sep 17 00:00:00 2001 From: wangwuxuan2011 <101337393+wangwuxuan2011@users.noreply.github.com> Date: Sun, 8 Jan 2023 21:47:45 +0800 Subject: [PATCH] fix(s3): allow http/https headers to be attached from CustomHost (#2959) * add(s3):Allow http/https headers to be attached to CustomHost * optimize Co-authored-by: wangwuxuan Co-authored-by: Noah Hsu --- drivers/s3/util.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/s3/util.go b/drivers/s3/util.go index d3f5d0a1..04c6e130 100644 --- a/drivers/s3/util.go +++ b/drivers/s3/util.go @@ -9,6 +9,7 @@ import ( "github.com/alist-org/alist/v3/internal/model" "github.com/alist-org/alist/v3/internal/op" + "github.com/alist-org/alist/v3/pkg/utils" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/request" @@ -38,7 +39,14 @@ func (d *S3) getClient(link bool) *s3.S3 { if r.HTTPRequest.Method != http.MethodGet { return } - r.HTTPRequest.URL.Host = d.CustomHost + //判断CustomHost是否以http://或https://开头 + split := strings.SplitN(d.CustomHost, "://", 2) + if utils.SliceContains([]string{"http", "https"}, split[0]) { + r.HTTPRequest.URL.Scheme = split[0] + r.HTTPRequest.URL.Host = split[1] + } else { + r.HTTPRequest.URL.Host = d.CustomHost + } }) } return client