Skip to content

Commit 45fe328

Browse files
committed
增加重试ut,打开备份域名开关时,30x切换并重试
1 parent 9199957 commit 45fe328

File tree

3 files changed

+544
-1
lines changed

3 files changed

+544
-1
lines changed

cos.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626

2727
const (
2828
// Version current go sdk version
29-
Version = "0.7.65"
29+
Version = "0.7.66"
3030
UserAgent = "cos-go-sdk-v5/" + Version
3131
contentTypeXML = "application/xml"
3232
defaultServiceBaseURL = "http://service.cos.myqcloud.com"
@@ -478,6 +478,16 @@ func (c *Client) CheckRetrieable(u *url.URL, resp *Response, err error, secondLa
478478
if err != nil && err != invalidBucketErr {
479479
// 不重试
480480
if resp != nil && resp.StatusCode < 500 {
481+
if c.Conf.RetryOpt.AutoSwitchHost {
482+
if resp.StatusCode == 301 || resp.StatusCode == 302 || resp.StatusCode == 307 {
483+
if resp.Header.Get("X-Cos-Request-Id") == "" {
484+
res = toSwitchHost(u)
485+
if res != u {
486+
return res, true
487+
}
488+
}
489+
}
490+
}
481491
return res, false
482492
}
483493
if c.Conf.RetryOpt.AutoSwitchHost && secondLast {

object.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,7 @@ func (s *ObjectService) Put(ctx context.Context, name string, r io.Reader, uopt
505505
method: http.MethodPut,
506506
body: reader,
507507
optHeader: opt,
508+
isRetry: nr > 0,
508509
}
509510

510511
// 把上一次错误记录下来

0 commit comments

Comments
 (0)