From 52796bf79d40c9be291d48d093f1c89dbf638470 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Fri, 15 Sep 2023 15:30:06 +0800 Subject: [PATCH] s3 public read --- pkg/common/db/s3/cos/cos.go | 14 +------------- pkg/common/db/s3/oss/internal.go | 6 +++--- pkg/common/db/s3/oss/oss.go | 9 ++++++--- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/pkg/common/db/s3/cos/cos.go b/pkg/common/db/s3/cos/cos.go index bc924f3cd..7add88487 100644 --- a/pkg/common/db/s3/cos/cos.go +++ b/pkg/common/db/s3/cos/cos.go @@ -324,17 +324,5 @@ func (c *Cos) getPresignedURL(ctx context.Context, name string, expire time.Dura if !config.Config.Object.Cos.PublicRead { return c.client.Object.GetPresignedURL(ctx, http.MethodGet, name, c.credential.SecretID, c.credential.SecretKey, expire, opt) } - u := c.client.Object.GetObjectURL(name) - //if opt.Query != nil && len(*opt.Query) > 0 { - // query := u.Query() - // if len(query) == 0 { - // query = *opt.Query - // } else { - // for key := range *opt.Query { - // query[key] = (*opt.Query)[key] - // } - // } - // u.RawQuery = query.Encode() - //} - return u, nil + return c.client.Object.GetObjectURL(name), nil } diff --git a/pkg/common/db/s3/oss/internal.go b/pkg/common/db/s3/oss/internal.go index d7913b902..4ca1acc47 100644 --- a/pkg/common/db/s3/oss/internal.go +++ b/pkg/common/db/s3/oss/internal.go @@ -22,11 +22,11 @@ import ( "github.com/aliyun/aliyun-oss-go-sdk/oss" ) -//go:linkname ossSignHeader github.com/aliyun/aliyun-oss-go-sdk/oss.Conn.signHeader -func ossSignHeader(c *oss.Conn, req *http.Request, canonicalizedResource string) +//go:linkname signHeader github.com/aliyun/aliyun-oss-go-sdk/oss.Conn.signHeader +func signHeader(c oss.Conn, req *http.Request, canonicalizedResource string) //go:linkname getURLParams github.com/aliyun/aliyun-oss-go-sdk/oss.Conn.getURLParams -func getURLParams(c *oss.Conn, params map[string]interface{}) string +func getURLParams(c oss.Conn, params map[string]interface{}) string //go:linkname getURL github.com/aliyun/aliyun-oss-go-sdk/oss.urlMaker.getURL func getURL(um urlMaker, bucket, object, params string) *url.URL diff --git a/pkg/common/db/s3/oss/oss.go b/pkg/common/db/s3/oss/oss.go index 49358e45f..0d59060a4 100644 --- a/pkg/common/db/s3/oss/oss.go +++ b/pkg/common/db/s3/oss/oss.go @@ -166,7 +166,7 @@ func (o *OSS) AuthSign(ctx context.Context, uploadID string, name string, expire request.Header.Set(oss.HTTPHeaderHost, request.Host) request.Header.Set(oss.HTTPHeaderDate, now) request.Header.Set(oss.HttpHeaderOssDate, now) - ossSignHeader(o.bucket.Client.Conn, request, fmt.Sprintf(`/%s/%s?partNumber=%d&uploadId=%s`, o.bucket.BucketName, name, partNumber, uploadID)) + signHeader(*o.bucket.Client.Conn, request, fmt.Sprintf(`/%s/%s?partNumber=%d&uploadId=%s`, o.bucket.BucketName, name, partNumber, uploadID)) delete(request.Header, oss.HTTPHeaderDate) result.Parts[i] = s3.SignPart{ PartNumber: partNumber, @@ -317,9 +317,12 @@ func (o *OSS) AccessURL(ctx context.Context, name string, expire time.Duration, if !config.Config.Object.Oss.PublicRead { return o.bucket.SignURL(name, http.MethodGet, int64(expire/time.Second), opts...) } - params, err := oss.GetRawParams(opts) + rawParams, err := oss.GetRawParams(opts) if err != nil { return "", err } - return getURL(o.um, o.bucket.BucketName, name, getURLParams(o.bucket.Client.Conn, params)).String(), nil + l := len(rawParams) + _ = l + params := getURLParams(*o.bucket.Client.Conn, rawParams) + return getURL(o.um, o.bucket.BucketName, name, params).String(), nil }