diff --git a/pkg/common/db/s3/minio/minio.go b/pkg/common/db/s3/minio/minio.go index 88d6ad8b8..7984df5a0 100644 --- a/pkg/common/db/s3/minio/minio.go +++ b/pkg/common/db/s3/minio/minio.go @@ -261,14 +261,10 @@ func (m *Minio) AuthSign(ctx context.Context, uploadID string, name string, expi return nil, err } result := s3.AuthSignResult{ + URL: m.signEndpoint + "/" + m.bucket + "/" + name, Query: url.Values{"uploadId": {uploadID}}, Parts: make([]s3.SignPart, len(partNumbers)), } - if m.prefix == "" { - result.URL = m.signEndpoint + "/" + m.bucket + "/" + name - } else { - result.URL = m.signEndpoint + m.prefix + "/" + m.bucket + "/" + name - } for i, partNumber := range partNumbers { rawURL := result.URL + "?partNumber=" + strconv.Itoa(partNumber) + "&uploadId=" + uploadID request, err := http.NewRequestWithContext(ctx, http.MethodPut, rawURL, nil) @@ -276,15 +272,16 @@ func (m *Minio) AuthSign(ctx context.Context, uploadID string, name string, expi return nil, err } request.Header.Set("X-Amz-Content-Sha256", unsignedPayload) - //request = signer.SignV4Trailer(*request, creds.AccessKeyID, creds.SecretAccessKey, creds.SessionToken, m.location, nil) - request = signer.PreSignV4(*request, creds.AccessKeyID, creds.SecretAccessKey, creds.SessionToken, m.location, int64(expire/time.Second)) + request = signer.SignV4Trailer(*request, creds.AccessKeyID, creds.SecretAccessKey, creds.SessionToken, m.location, nil) result.Parts[i] = s3.SignPart{ PartNumber: partNumber, - //URL: request.URL.String(), - Query: url.Values{"partNumber": {strconv.Itoa(partNumber)}}, - Header: request.Header, + Query: url.Values{"partNumber": {strconv.Itoa(partNumber)}}, + Header: request.Header, } } + if m.prefix != "" { + result.URL = m.signEndpoint + m.prefix + "/" + m.bucket + "/" + name + } return &result, nil }