Skip to content

Commit 89bbe7d

Browse files
authored
Merge pull request #289 from tencentyun/feature_jojoliang_1402cf3a
兼容URL
2 parents 8f34e29 + 4bf6e48 commit 89bbe7d

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

cos.go

Lines changed: 5 additions & 9 deletions
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.58"
29+
Version = "0.7.59"
3030
UserAgent = "cos-go-sdk-v5/" + Version
3131
contentTypeXML = "application/xml"
3232
defaultServiceBaseURL = "http://service.cos.myqcloud.com"
@@ -48,11 +48,9 @@ var (
4848
regionChecker = regexp.MustCompile(`^[a-z-1]+$`)
4949

5050
// 校验传入的url
51-
domainSuffix = regexp.MustCompile(`^.*\.(myqcloud\.com(:[0-9]+){0,1}|tencentcos\.cn(:[0-9]+){0,1})$`)
52-
bucketDomainChecker = regexp.MustCompile(`^(http://|https://){0,1}([a-z0-9-]+-[0-9]+\.){0,1}((cos|cos-internal|cos-website|ci)\.[a-z-1]+|file)\.(myqcloud\.com|tencentcos\.cn)(:[0-9]+){0,1}$`)
53-
serviceDomainChecker = regexp.MustCompile(`^(http://|https://){0,1}((service.cos.myqcloud.com|service.cos-internal.tencentcos.cn|service.cos.tencentcos.cn)|(cos|cos-internal)\.[a-z-1]+\.(myqcloud\.com|tencentcos\.cn))(:[0-9]+){0,1}$`)
54-
batchDomainChecker = regexp.MustCompile(`^(http://|https://){0,1}([0-9]+\.){1}cos-control\.[a-z-1]+\.(myqcloud\.com|tencentcos\.cn)(:[0-9]+){0,1}$`)
55-
invalidBucketErr = fmt.Errorf("invalid bucket format, please check your cos.BaseURL")
51+
domainSuffix = regexp.MustCompile(`^.*\.(myqcloud\.com(:[0-9]+){0,1}|tencentcos\.cn(:[0-9]+){0,1})$`)
52+
bucketDomainChecker = regexp.MustCompile(`^(http://|https://){0,1}([a-z0-9-]+\.)+(myqcloud\.com|tencentcos\.cn)(:[0-9]+){0,1}$`)
53+
invalidBucketErr = fmt.Errorf("invalid bucket format, please check your cos.BaseURL")
5654

5755
switchHost = regexp.MustCompile(`([a-z0-9-]+-[0-9]+\.)(cos\.[a-z-1]+)\.(myqcloud\.com)(:[0-9]+){0,1}$`)
5856
accelerateDomainSuffix = "accelerate.myqcloud.com"
@@ -93,9 +91,7 @@ func (*BaseURL) innerCheck(u *url.URL, reg *regexp.Regexp) bool {
9391
}
9492

9593
func (u *BaseURL) Check() bool {
96-
return u.innerCheck(u.BucketURL, bucketDomainChecker) &&
97-
(u.innerCheck(u.ServiceURL, serviceDomainChecker) || u.innerCheck(u.ServiceURL, bucketDomainChecker)) &&
98-
(u.innerCheck(u.BatchURL, batchDomainChecker) || u.innerCheck(u.BatchURL, bucketDomainChecker))
94+
return u.innerCheck(u.BucketURL, bucketDomainChecker) && u.innerCheck(u.ServiceURL, bucketDomainChecker) && u.innerCheck(u.BatchURL, bucketDomainChecker)
9995
}
10096

10197
// NewBucketURL 生成 BaseURL 所需的 BucketURL

cos_test.go

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,15 @@ func Test_BaseURL(t *testing.T) {
278278
if !(&BaseURL{BucketURL: u, ServiceURL: u, BatchURL: u}).Check() {
279279
t.Errorf("BaseURL check failed: %v", u)
280280
}
281-
u, _ = url.Parse("https://example-125000000.cos-internal.accelerate.tencentcos.cn:443")
281+
u, _ = url.Parse("https://cluster-1.cos-2.ap-guangzhou.myqcloud.com")
282+
if !(&BaseURL{BucketURL: u, ServiceURL: u, BatchURL: u}).Check() {
283+
t.Errorf("BaseURL check failed: %v", u)
284+
}
285+
u, _ = url.Parse("https://test-1250000.global.tencentcos.cn")
286+
if !(&BaseURL{BucketURL: u, ServiceURL: u, BatchURL: u}).Check() {
287+
t.Errorf("BaseURL check failed: %v", u)
288+
}
289+
u, _ = url.Parse("http://1.cos-c-internal.ap-singapore.tencentcos.cn")
282290
if !(&BaseURL{BucketURL: u, ServiceURL: u, BatchURL: u}).Check() {
283291
t.Errorf("BaseURL check failed: %v", u)
284292
}
@@ -341,17 +349,4 @@ func Test_BaseURL(t *testing.T) {
341349
if !(&BaseURL{BatchURL: u}).Check() {
342350
t.Errorf("BaseURL check failed: %v", u)
343351
}
344-
u, _ = url.Parse("http://cos-control.ap-guangzhou.tencentcos.cn")
345-
if (&BaseURL{BatchURL: u}).Check() {
346-
t.Errorf("BaseURL check failed: %v", u)
347-
}
348-
u, _ = url.Parse("http://cos-control.ap-guangzhou.myqcloud.com")
349-
if (&BaseURL{BatchURL: u}).Check() {
350-
t.Errorf("BaseURL check failed: %v", u)
351-
}
352-
u, _ = url.Parse("http://cos-control.ap-guangzhou.myqcloud.com")
353-
if (&BaseURL{BatchURL: u}).Check() {
354-
t.Errorf("BaseURL check failed: %v", u)
355-
}
356-
357352
}

0 commit comments

Comments
 (0)