Skip to content

Commit 6831234

Browse files
author
YangSen-qn
committed
support set uc hosts
1 parent d0cbedc commit 6831234

File tree

6 files changed

+57
-34
lines changed

6 files changed

+57
-34
lines changed

storage/bucket.go

+14-8
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ func (m *BucketManager) UpdateObjectStatus(bucketName string, key string, enable
384384

385385
// CreateBucket 创建一个七牛存储空间
386386
func (m *BucketManager) CreateBucket(bucketName string, regionID RegionID) error {
387-
reqURL := fmt.Sprintf("%s/mkbucketv3/%s/region/%s", getUcHost(m.Cfg.UseHTTPS), bucketName, string(regionID))
387+
reqURL := fmt.Sprintf("%s/mkbucketv3/%s/region/%s", m.getUCAddress(), bucketName, string(regionID))
388388
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
389389
Context: context.Background(),
390390
Method: clientv2.RequestMethodPost,
@@ -396,7 +396,7 @@ func (m *BucketManager) CreateBucket(bucketName string, regionID RegionID) error
396396

397397
// Buckets 用来获取空间列表,如果指定了 shared 参数为 true,那么一同列表被授权访问的空间
398398
func (m *BucketManager) Buckets(shared bool) (buckets []string, err error) {
399-
reqURL := fmt.Sprintf("%s/buckets?shared=%v", getUcHost(m.Cfg.UseHTTPS), shared)
399+
reqURL := fmt.Sprintf("%s/buckets?shared=%v", m.getUCAddress(), shared)
400400
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
401401
Context: context.Background(),
402402
Method: clientv2.RequestMethodPost,
@@ -438,7 +438,7 @@ func (m *BucketManager) BucketsV4(input *BucketV4Input) (output BucketsV4Output,
438438

439439
// DropBucket 删除七牛存储空间
440440
func (m *BucketManager) DropBucket(bucketName string) (err error) {
441-
reqURL := fmt.Sprintf("%s/drop/%s", getUcHost(m.Cfg.UseHTTPS), bucketName)
441+
reqURL := fmt.Sprintf("%s/drop/%s", m.getUCAddress(), bucketName)
442442
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
443443
Context: context.Background(),
444444
Method: clientv2.RequestMethodPost,
@@ -771,7 +771,7 @@ type DomainInfo struct {
771771

772772
// ListBucketDomains 返回绑定在存储空间中的域名信息
773773
func (m *BucketManager) ListBucketDomains(bucket string) (info []DomainInfo, err error) {
774-
reqURL := fmt.Sprintf("%s/v3/domains?tbl=%s", getUcHost(m.Cfg.UseHTTPS), bucket)
774+
reqURL := fmt.Sprintf("%s/v3/domains?tbl=%s", m.getUCAddress(), bucket)
775775
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
776776
Context: context.Background(),
777777
Method: clientv2.RequestMethodGet,
@@ -796,7 +796,7 @@ func (m *BucketManager) Prefetch(bucket, key string) (err error) {
796796

797797
// SetImage 用来设置空间镜像源
798798
func (m *BucketManager) SetImage(siteURL, bucket string) (err error) {
799-
reqURL := fmt.Sprintf("%s%s", getUcHost(m.Cfg.UseHTTPS), uriSetImage(siteURL, bucket))
799+
reqURL := fmt.Sprintf("%s%s", m.getUCAddress(), uriSetImage(siteURL, bucket))
800800
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
801801
Context: context.Background(),
802802
Method: clientv2.RequestMethodPost,
@@ -808,7 +808,7 @@ func (m *BucketManager) SetImage(siteURL, bucket string) (err error) {
808808

809809
// SetImageWithHost 用来设置空间镜像源,额外添加回源Host头部
810810
func (m *BucketManager) SetImageWithHost(siteURL, bucket, host string) (err error) {
811-
reqURL := fmt.Sprintf("%s%s", getUcHost(m.Cfg.UseHTTPS),
811+
reqURL := fmt.Sprintf("%s%s", m.getUCAddress(),
812812
uriSetImageWithHost(siteURL, bucket, host))
813813
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
814814
Context: context.Background(),
@@ -821,7 +821,7 @@ func (m *BucketManager) SetImageWithHost(siteURL, bucket, host string) (err erro
821821

822822
// UnsetImage 用来取消空间镜像源设置
823823
func (m *BucketManager) UnsetImage(bucket string) (err error) {
824-
reqURL := fmt.Sprintf("%s%s", getUcHost(m.Cfg.UseHTTPS), uriUnsetImage(bucket))
824+
reqURL := fmt.Sprintf("%s%s", m.getUCAddress(), uriUnsetImage(bucket))
825825
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
826826
Context: context.Background(),
827827
Method: clientv2.RequestMethodPost,
@@ -925,7 +925,13 @@ func (m *BucketManager) Zone(bucket string) (z *Zone, err error) {
925925
return
926926
}
927927

928-
z, err = GetZone(m.Mac.AccessKey, bucket)
928+
z, err = GetRegionWithOptions(m.Mac.AccessKey, bucket, UCApiOptions{
929+
UseHttps: m.Cfg.UseHTTPS,
930+
RetryMax: 0,
931+
Hosts: m.Cfg.UCHosts,
932+
HostFreezeDuration: 0,
933+
Client: m.Client,
934+
})
929935
return
930936
}
931937

storage/config.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ type Config struct {
99

1010
// 如果设置的Host本身是以http://开头的,又设置了该字段为true,那么优先使用该字段,使用https协议
1111
// 同理如果该字段为false, 但是设置的host以https开头,那么使用http协议通信
12-
UseHTTPS bool //是否使用https域名
13-
UseCdnDomains bool //是否使用cdn加速域名
14-
CentralRsHost string //中心机房的RsHost,用于list bucket
12+
UseHTTPS bool //是否使用https域名
13+
UseCdnDomains bool //是否使用cdn加速域名
14+
CentralRsHost string //中心机房的RsHost,用于list bucket
15+
UCHosts []string // uc 域名
1516

1617
// 兼容保留
1718
RsHost string

storage/region.go

+1
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ func GetRegionsInfoWithOptions(mac *auth.Credentials, options UCApiOptions) ([]R
309309
Regions []RegionInfo `json:"regions"`
310310
}
311311

312+
options.init()
312313
reqUrl := endpoint(options.UseHttps, options.firstHost()) + "/regions"
313314
c := getUCClient(ucClientConfig{
314315
IsUcQueryApi: false,

storage/uc.go

+35-23
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ func (b *BucketInfo) TokenAntiLeechModeOn() bool {
224224

225225
// GetBucketInfo 返回BucketInfo结构
226226
func (m *BucketManager) GetBucketInfo(bucketName string) (bucketInfo BucketInfo, err error) {
227-
reqURL := fmt.Sprintf("%s/v2/bucketInfo?bucket=%s", getUcHost(m.Cfg.UseHTTPS), bucketName)
227+
reqURL := fmt.Sprintf("%s/v2/bucketInfo?bucket=%s", m.getUCAddress(), bucketName)
228228
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
229229
Context: nil,
230230
Method: clientv2.RequestMethodPost,
@@ -237,7 +237,7 @@ func (m *BucketManager) GetBucketInfo(bucketName string) (bucketInfo BucketInfo,
237237

238238
// SetRemark 设置空间备注信息
239239
func (m *BucketManager) SetRemark(bucketName, remark string) (err error) {
240-
reqURL := fmt.Sprintf("%s/buckets/%s?remark", getUcHost(m.Cfg.UseHTTPS), bucketName)
240+
reqURL := fmt.Sprintf("%s/buckets/%s?remark", m.getUCAddress(), bucketName)
241241
body := struct {
242242
Remark string `json:"remark"`
243243
}{Remark: remark}
@@ -253,7 +253,7 @@ func (m *BucketManager) SetRemark(bucketName, remark string) (err error) {
253253

254254
// BucketInfosForRegion 获取指定区域的该用户的所有bucketInfo信息
255255
func (m *BucketManager) BucketInfosInRegion(region RegionID, statistics bool) (bucketInfos []BucketSummary, err error) {
256-
reqURL := fmt.Sprintf("%s/v2/bucketInfos?region=%s&fs=%t", getUcHost(m.Cfg.UseHTTPS), string(region), statistics)
256+
reqURL := fmt.Sprintf("%s/v2/bucketInfos?region=%s&fs=%t", m.getUCAddress(), string(region), statistics)
257257
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
258258
Context: nil,
259259
Method: clientv2.RequestMethodPost,
@@ -266,7 +266,7 @@ func (m *BucketManager) BucketInfosInRegion(region RegionID, statistics bool) (b
266266

267267
// SetReferAntiLeechMode 配置存储空间referer防盗链模式
268268
func (m *BucketManager) SetReferAntiLeechMode(bucketName string, refererAntiLeechConfig *ReferAntiLeechConfig) (err error) {
269-
reqURL := fmt.Sprintf("%s/referAntiLeech?bucket=%s&%s", getUcHost(m.Cfg.UseHTTPS), bucketName, refererAntiLeechConfig.AsQueryString())
269+
reqURL := fmt.Sprintf("%s/referAntiLeech?bucket=%s&%s", m.getUCAddress(), bucketName, refererAntiLeechConfig.AsQueryString())
270270
err = m.Client.CredentialedCall(context.Background(), m.Mac, auth.TokenQiniu, nil, "POST", reqURL, nil)
271271
return
272272
}
@@ -322,7 +322,7 @@ func (m *BucketManager) AddBucketLifeCycleRule(bucketName string, lifeCycleRule
322322
params["to_archive_ir_after_days"] = []string{strconv.Itoa(lifeCycleRule.ToArchiveIRAfterDays)}
323323
params["to_deep_archive_after_days"] = []string{strconv.Itoa(lifeCycleRule.ToDeepArchiveAfterDays)}
324324

325-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/rules/add"
325+
reqURL := m.getUCAddress() + "/rules/add"
326326
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
327327
Context: nil,
328328
Method: clientv2.RequestMethodPost,
@@ -339,7 +339,7 @@ func (m *BucketManager) DelBucketLifeCycleRule(bucketName, ruleName string) (err
339339
params["bucket"] = []string{bucketName}
340340
params["name"] = []string{ruleName}
341341

342-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/rules/delete"
342+
reqURL := m.getUCAddress() + "/rules/delete"
343343
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
344344
Context: nil,
345345
Method: clientv2.RequestMethodPost,
@@ -362,7 +362,7 @@ func (m *BucketManager) UpdateBucketLifeCycleRule(bucketName string, rule *Bucke
362362
params["to_archive_ir_after_days"] = []string{strconv.Itoa(rule.ToArchiveIRAfterDays)}
363363
params["to_deep_archive_after_days"] = []string{strconv.Itoa(rule.ToDeepArchiveAfterDays)}
364364

365-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/rules/update"
365+
reqURL := m.getUCAddress() + "/rules/update"
366366
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
367367
Context: nil,
368368
Method: clientv2.RequestMethodPost,
@@ -374,7 +374,7 @@ func (m *BucketManager) UpdateBucketLifeCycleRule(bucketName string, rule *Bucke
374374

375375
// GetBucketLifeCycleRule 获取指定空间上设置的生命周期规则
376376
func (m *BucketManager) GetBucketLifeCycleRule(bucketName string) (rules []BucketLifeCycleRule, err error) {
377-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/rules/get?bucket=" + bucketName
377+
reqURL := m.getUCAddress() + "/rules/get?bucket=" + bucketName
378378
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
379379
Context: nil,
380380
Method: clientv2.RequestMethodGet,
@@ -439,7 +439,7 @@ func (r *BucketEventRule) Params(bucket string) map[string][]string {
439439
// AddBucketEvent 增加存储空间事件通知规则
440440
func (m *BucketManager) AddBucketEvent(bucket string, rule *BucketEventRule) (err error) {
441441
params := rule.Params(bucket)
442-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/events/add"
442+
reqURL := m.getUCAddress() + "/events/add"
443443
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
444444
Context: nil,
445445
Method: clientv2.RequestMethodPost,
@@ -455,7 +455,7 @@ func (m *BucketManager) DelBucketEvent(bucket, ruleName string) (err error) {
455455
params["bucket"] = []string{bucket}
456456
params["name"] = []string{ruleName}
457457

458-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/events/delete"
458+
reqURL := m.getUCAddress() + "/events/delete"
459459
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
460460
Context: nil,
461461
Method: clientv2.RequestMethodPost,
@@ -468,7 +468,7 @@ func (m *BucketManager) DelBucketEvent(bucket, ruleName string) (err error) {
468468
// UpdateBucketEnvent 更新指定存储空间的事件通知规则
469469
func (m *BucketManager) UpdateBucketEnvent(bucket string, rule *BucketEventRule) (err error) {
470470
params := rule.Params(bucket)
471-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/events/update"
471+
reqURL := m.getUCAddress() + "/events/update"
472472
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
473473
Context: nil,
474474
Method: clientv2.RequestMethodPost,
@@ -480,7 +480,7 @@ func (m *BucketManager) UpdateBucketEnvent(bucket string, rule *BucketEventRule)
480480

481481
// GetBucketEvent 获取指定存储空间的事件通知规则
482482
func (m *BucketManager) GetBucketEvent(bucket string) (rule []BucketEventRule, err error) {
483-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/events/get?bucket=" + bucket
483+
reqURL := m.getUCAddress() + "/events/get?bucket=" + bucket
484484
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
485485
Context: nil,
486486
Method: clientv2.RequestMethodGet,
@@ -522,7 +522,7 @@ type CorsRule struct {
522522

523523
// AddCorsRules 设置指定存储空间的跨域规则
524524
func (m *BucketManager) AddCorsRules(bucket string, corsRules []CorsRule) (err error) {
525-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/corsRules/set/" + bucket
525+
reqURL := m.getUCAddress() + "/corsRules/set/" + bucket
526526
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
527527
Context: nil,
528528
Method: clientv2.RequestMethodPost,
@@ -534,7 +534,7 @@ func (m *BucketManager) AddCorsRules(bucket string, corsRules []CorsRule) (err e
534534

535535
// GetCorsRules 获取指定存储空间的跨域规则
536536
func (m *BucketManager) GetCorsRules(bucket string) (corsRules []CorsRule, err error) {
537-
reqURL := getUcHost(m.Cfg.UseHTTPS) + "/corsRules/get/" + bucket
537+
reqURL := m.getUCAddress() + "/corsRules/get/" + bucket
538538
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
539539
Context: nil,
540540
Method: clientv2.RequestMethodGet,
@@ -561,7 +561,7 @@ type BucketQuota struct {
561561
// SetBucketQuota 设置存储空间的配额限制
562562
// 配额限制主要是两块, 空间存储量的限制和空间文件数限制
563563
func (m *BucketManager) SetBucketQuota(bucket string, size, count int64) (err error) {
564-
reqURL := fmt.Sprintf("%s/setbucketquota/%s/size/%d/count/%d", getUcHost(m.Cfg.UseHTTPS), bucket, size, count)
564+
reqURL := fmt.Sprintf("%s/setbucketquota/%s/size/%d/count/%d", m.getUCAddress(), bucket, size, count)
565565
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
566566
Context: nil,
567567
Method: clientv2.RequestMethodPost,
@@ -573,7 +573,7 @@ func (m *BucketManager) SetBucketQuota(bucket string, size, count int64) (err er
573573

574574
// GetBucketQuota 获取存储空间的配额信息
575575
func (m *BucketManager) GetBucketQuota(bucket string) (quota BucketQuota, err error) {
576-
reqURL := fmt.Sprintf("%s/getbucketquota/%s", getUcHost(m.Cfg.UseHTTPS), bucket)
576+
reqURL := fmt.Sprintf("%s/getbucketquota/%s", m.getUCAddress(), bucket)
577577
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
578578
Context: nil,
579579
Method: clientv2.RequestMethodPost,
@@ -588,7 +588,7 @@ func (m *BucketManager) GetBucketQuota(bucket string) (quota BucketQuota, err er
588588
// mode - 1 ==> 开启原图保护
589589
// mode - 0 ==> 关闭原图保护
590590
func (m *BucketManager) SetBucketAccessStyle(bucket string, mode int) error {
591-
reqURL := fmt.Sprintf("%s/accessMode/%s/mode/%d", getUcHost(m.Cfg.UseHTTPS), bucket, mode)
591+
reqURL := fmt.Sprintf("%s/accessMode/%s/mode/%d", m.getUCAddress(), bucket, mode)
592592
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
593593
Context: nil,
594594
Method: clientv2.RequestMethodPost,
@@ -611,7 +611,7 @@ func (m *BucketManager) TurnOffBucketProtected(bucket string) error {
611611
// SetBucketMaxAge 设置指定存储空间的MaxAge响应头
612612
// maxAge <= 0时,表示使用默认值31536000
613613
func (m *BucketManager) SetBucketMaxAge(bucket string, maxAge int64) error {
614-
reqURL := fmt.Sprintf("%s/maxAge?bucket=%s&maxAge=%d", getUcHost(m.Cfg.UseHTTPS), bucket, maxAge)
614+
reqURL := fmt.Sprintf("%s/maxAge?bucket=%s&maxAge=%d", m.getUCAddress(), bucket, maxAge)
615615
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
616616
Context: nil,
617617
Method: clientv2.RequestMethodPost,
@@ -626,7 +626,7 @@ func (m *BucketManager) SetBucketMaxAge(bucket string, maxAge int64) error {
626626
// mode - 1 表示设置空间为私有空间, 私有空间访问需要鉴权
627627
// mode - 0 表示设置空间为公开空间
628628
func (m *BucketManager) SetBucketAccessMode(bucket string, mode int) error {
629-
reqURL := fmt.Sprintf("%s/private?bucket=%s&private=%d", getUcHost(m.Cfg.UseHTTPS), bucket, mode)
629+
reqURL := fmt.Sprintf("%s/private?bucket=%s&private=%d", m.getUCAddress(), bucket, mode)
630630
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
631631
Context: nil,
632632
Method: clientv2.RequestMethodPost,
@@ -657,7 +657,7 @@ func (m *BucketManager) TurnOffIndexPage(bucket string) error {
657657
}
658658

659659
func (m *BucketManager) setIndexPage(bucket string, noIndexPage int) error {
660-
reqURL := fmt.Sprintf("%s/noIndexPage?bucket=%s&noIndexPage=%d", getUcHost(m.Cfg.UseHTTPS), bucket, noIndexPage)
660+
reqURL := fmt.Sprintf("%s/noIndexPage?bucket=%s&noIndexPage=%d", m.getUCAddress(), bucket, noIndexPage)
661661
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
662662
Context: nil,
663663
Method: clientv2.RequestMethodPost,
@@ -687,7 +687,7 @@ func (m *BucketManager) SetTagging(bucket string, tags map[string]string) error
687687
tagging.Tags = append(tagging.Tags, BucketTag{Key: key, Value: value})
688688
}
689689

690-
reqURL := fmt.Sprintf("%s/bucketTagging?bucket=%s", getUcHost(m.Cfg.UseHTTPS), bucket)
690+
reqURL := fmt.Sprintf("%s/bucketTagging?bucket=%s", m.getUCAddress(), bucket)
691691
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
692692
Context: context.Background(),
693693
Method: clientv2.RequestMethodPut,
@@ -699,7 +699,7 @@ func (m *BucketManager) SetTagging(bucket string, tags map[string]string) error
699699

700700
// ClearTagging 清空 Bucket 标签
701701
func (m *BucketManager) ClearTagging(bucket string) error {
702-
reqURL := fmt.Sprintf("%s/bucketTagging?bucket=%s", getUcHost(m.Cfg.UseHTTPS), bucket)
702+
reqURL := fmt.Sprintf("%s/bucketTagging?bucket=%s", m.getUCAddress(), bucket)
703703
return clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
704704
Context: context.Background(),
705705
Method: clientv2.RequestMethodDelete,
@@ -712,7 +712,7 @@ func (m *BucketManager) ClearTagging(bucket string) error {
712712
// GetTagging 获取 Bucket 标签
713713
func (m *BucketManager) GetTagging(bucket string) (tags map[string]string, err error) {
714714
var tagging BucketTagging
715-
reqURL := fmt.Sprintf("%s/bucketTagging?bucket=%s", getUcHost(m.Cfg.UseHTTPS), bucket)
715+
reqURL := fmt.Sprintf("%s/bucketTagging?bucket=%s", m.getUCAddress(), bucket)
716716
err = clientv2.DoAndDecodeJsonResponse(m.getUCClient(), clientv2.RequestParams{
717717
Context: context.Background(),
718718
Method: clientv2.RequestMethodGet,
@@ -734,7 +734,19 @@ func (m *BucketManager) getUCClient() clientv2.Client {
734734
return getUCClient(ucClientConfig{
735735
IsUcQueryApi: false,
736736
RetryMax: m.options.RetryMax,
737+
Hosts: m.Cfg.UCHosts,
737738
HostFreezeDuration: m.options.HostFreezeDuration,
738739
Client: m.Client,
739740
}, m.Mac)
740741
}
742+
743+
func (m *BucketManager) getUCAddress() string {
744+
hosts := m.Cfg.UCHosts
745+
if len(hosts) == 0 {
746+
hosts = getUcBackupHosts()
747+
}
748+
if len(hosts) == 0 {
749+
return ""
750+
}
751+
return endpoint(m.Cfg.UseHTTPS, hosts[0])
752+
}

storage/upload_manager.go

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const (
2626
type UploadConfig struct {
2727
UseHTTPS bool
2828
UseCdnDomains bool
29+
UCHosts []string
2930
Regions *RegionGroup
3031
}
3132

@@ -442,6 +443,7 @@ func (manager *UploadManager) getRegionGroupWithUploadToken(upToken string, extr
442443
return getRegionGroupWithOptions(ak, bucket, UCApiOptions{
443444
UseHttps: manager.cfg.UseHTTPS,
444445
RetryMax: extra.TryTimes,
446+
Hosts: manager.cfg.UCHosts,
445447
HostFreezeDuration: extra.HostFreezeDuration,
446448
})
447449
}

storage/uploader_base.go

+1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ func getUpHostProvider(config *Config, retryMax int, hostFreezeDuration time.Dur
4747
if region == nil {
4848
if region, err = GetRegionWithOptions(ak, bucket, UCApiOptions{
4949
RetryMax: retryMax,
50+
Hosts: ucHosts,
5051
HostFreezeDuration: hostFreezeDuration,
5152
}); err != nil {
5253
return nil, err

0 commit comments

Comments
 (0)