From 79762c1e8ca1400a19d44eb297b05d30fd406d08 Mon Sep 17 00:00:00 2001 From: saltbo Date: Thu, 8 Jul 2021 21:25:01 +0800 Subject: [PATCH] fix: update the expire for the sign --- internal/pkg/provider/provider.go | 6 ++++++ internal/pkg/provider/provider_s3.go | 5 ++--- internal/pkg/provider/provider_uss.go | 7 +++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/internal/pkg/provider/provider.go b/internal/pkg/provider/provider.go index 2903422..dc367ed 100644 --- a/internal/pkg/provider/provider.go +++ b/internal/pkg/provider/provider.go @@ -5,12 +5,18 @@ import ( "net/http" "net/url" "strings" + "time" ) var urlEncode = url.QueryEscape var corsAllowHeaders = []string{"content-type", "content-disposition", "x-amz-acl"} +const ( + defaultUploadExp = time.Hour + defaultDownloadExp = time.Hour * 24 +) + // Object is the basic operation unit type Object struct { Key string // remote file path diff --git a/internal/pkg/provider/provider_s3.go b/internal/pkg/provider/provider_s3.go index 62556a8..a65737f 100644 --- a/internal/pkg/provider/provider_s3.go +++ b/internal/pkg/provider/provider_s3.go @@ -5,7 +5,6 @@ import ( "net/http" "net/url" "strings" - "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials" @@ -139,7 +138,7 @@ func (p *S3Provider) SignedPutURL(key, filetype string, filesize int64, public b ContentType: aws.String(filetype), } req, _ := p.client.PutObjectRequest(input) - us, headers, err := req.PresignRequest(time.Minute * 5) + us, headers, err := req.PresignRequest(defaultUploadExp) return us, headerRebuild(headers), err } @@ -151,7 +150,7 @@ func (p *S3Provider) SignedGetURL(key, filename string) (string, error) { ResponseContentDisposition: aws.String(disposition), } req, _ := p.client.GetObjectRequest(input) - return req.Presign(time.Minute) + return req.Presign(defaultDownloadExp) } func (p *S3Provider) PublicURL(key string) string { diff --git a/internal/pkg/provider/provider_uss.go b/internal/pkg/provider/provider_uss.go index 7f38c53..4fd55a7 100644 --- a/internal/pkg/provider/provider_uss.go +++ b/internal/pkg/provider/provider_uss.go @@ -44,9 +44,12 @@ func (p *USSProvider) Move(object, newObject string) error { } func (p *USSProvider) SignedPutURL(key, filetype string, filesize int64, public bool) (url string, headers http.Header, err error) { - //expireAt := time.Now().Add(time.Minute * 15).Unix() + // todo 新版签名存在跨域问题暂时不能用,客服反馈正在调试,后续通知。 + //expireAt := time.Now().Add(defaultUploadExp).Unix() //headers.Set("X-Upyun-Expire", fmt.Sprint(expireAt)) //headers.Set("X-Upyun-Uri-Prefix", uriPrefix) + + //老版签名不能设置有效期,固定为30min headers = make(http.Header) uri := fmt.Sprintf("/%s/%s", p.client.Bucket, key) date := time.Now().UTC().Format(http.TimeFormat) @@ -56,7 +59,7 @@ func (p *USSProvider) SignedPutURL(key, filetype string, filesize int64, public } func (p *USSProvider) SignedGetURL(key, filename string) (url string, err error) { - expireAt := time.Now().Add(time.Minute * 15).Unix() + expireAt := time.Now().Add(defaultDownloadExp).Unix() upt := p.buildUpt(expireAt, fmt.Sprintf("/%s", key)) return fmt.Sprintf("%s?_upt=%s", p.PublicURL(key), upt), err }