Skip to content

Commit e4433ac

Browse files
committed
add
1 parent c8b0352 commit e4433ac

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

tencentcloud/connectivity/client.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,13 @@ func (me *TencentCloudClient) UseCosClient() *s3.S3 {
278278
}
279279

280280
// UseTencentCosClient tencent cloud own client for service instead of aws
281-
func (me *TencentCloudClient) UseTencentCosClient(bucket string) *cos.Client {
282-
u, _ := url.Parse(fmt.Sprintf("https://%s.cos.%s.myqcloud.com", bucket, me.Region))
281+
func (me *TencentCloudClient) UseTencentCosClient(bucket string, cdcId string) *cos.Client {
282+
var u *url.URL
283+
if cdcId == "" {
284+
u, _ = url.Parse(fmt.Sprintf("https://%s.cos.%s.myqcloud.com", bucket, me.Region))
285+
} else {
286+
u, _ = url.Parse(fmt.Sprintf("https://%s.%s.cos-cdc.%s.myqcloud.com", bucket, cdcId, me.Region))
287+
}
283288

284289
if me.tencentCosConn != nil && me.tencentCosConn.BaseURL.BucketURL == u {
285290
return me.tencentCosConn

tencentcloud/services/cos/resource_tc_cos_bucket.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,11 @@ func ResourceTencentCloudCosBucket() *schema.Resource {
525525
Computed: true,
526526
Description: "Specify the access limit for converting standard layer data into low-frequency layer data in the configuration. The default value is once, which can be used in combination with the number of days to achieve the conversion effect. For example, if the parameter is set to 1 and the number of access days is 30, it means that objects with less than one visit in 30 consecutive days will be reduced from the standard layer to the low frequency layer.",
527527
},
528+
"cdc_id": {
529+
Type: schema.TypeString,
530+
Optional: true,
531+
Description: "CDC cluster ID.",
532+
},
528533
//computed
529534
"cos_bucket_url": {
530535
Type: schema.TypeString,
@@ -548,6 +553,7 @@ func resourceTencentCloudCosBucketCreate(d *schema.ResourceData, meta interface{
548553
role, roleOk := d.GetOk("replica_role")
549554
rule, ruleOk := d.GetOk("replica_rules")
550555
versioning := d.Get("versioning_enable").(bool)
556+
cdcId := d.Get("cdc_id").(string)
551557

552558
if !versioning {
553559
if roleOk || role.(string) != "" {
@@ -562,9 +568,9 @@ func resourceTencentCloudCosBucketCreate(d *schema.ResourceData, meta interface{
562568
useCosService, createOptions := getBucketPutOptions(d)
563569

564570
if useCosService {
565-
err = cosService.TencentCosPutBucket(ctx, bucket, createOptions)
571+
err = cosService.TencentCosPutBucket(ctx, bucket, createOptions, cdcId)
566572
} else {
567-
err = cosService.PutBucket(ctx, bucket, acl)
573+
err = cosService.PutBucket(ctx, bucket, acl, cdcId)
568574
}
569575
if err != nil {
570576
return err

tencentcloud/services/cos/service_tencentcloud_cos.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ func (me *CosService) PutObjectAcl(ctx context.Context, bucket, key, acl string)
123123
}
124124

125125
// PutBucket - base on aws s3
126-
func (me *CosService) PutBucket(ctx context.Context, bucket, acl string) (errRet error) {
126+
func (me *CosService) PutBucket(ctx context.Context, bucket, acl, cdcId string) (errRet error) {
127127
logId := tccommon.GetLogId(ctx)
128128

129129
request := s3.CreateBucketInput{
@@ -150,7 +150,7 @@ func (me *CosService) PutBucket(ctx context.Context, bucket, acl string) (errRet
150150
}
151151

152152
// TencentCosPutBucket - To support MAZ config, We use tencentcloud cos sdk instead of aws s3
153-
func (me *CosService) TencentCosPutBucket(ctx context.Context, bucket string, opt *cos.BucketPutOptions) (errRet error) {
153+
func (me *CosService) TencentCosPutBucket(ctx context.Context, bucket string, opt *cos.BucketPutOptions, cdcId string) (errRet error) {
154154
logId := tccommon.GetLogId(ctx)
155155

156156
req, _ := json.Marshal(opt)
@@ -163,7 +163,8 @@ func (me *CosService) TencentCosPutBucket(ctx context.Context, bucket string, op
163163
}()
164164

165165
ratelimit.Check("TencentcloudCosPutBucket")
166-
response, err := me.client.UseTencentCosClient(bucket).Bucket.Put(ctx, opt)
166+
167+
response, err := me.client.UseTencentCosClient(bucket, cdcId).Bucket.Put(ctx, opt)
167168

168169
if err != nil {
169170
errRet = fmt.Errorf("cos put bucket error: %s, bucket: %s", err.Error(), bucket)
@@ -173,7 +174,7 @@ func (me *CosService) TencentCosPutBucket(ctx context.Context, bucket string, op
173174
resp, _ := json.Marshal(response.Response.Body)
174175

175176
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s], baseUrl %s\n",
176-
logId, "put bucket", req, resp, me.client.UseTencentCosClient(bucket).BaseURL.BucketURL)
177+
logId, "put bucket", req, resp, me.client.UseTencentCosClient(bucket, cdcId).BaseURL.BucketURL)
177178

178179
return nil
179180
}
@@ -279,7 +280,7 @@ func (me *CosService) HeadBucket(ctx context.Context, bucket string) (errRet err
279280
func (me *CosService) TencentcloudHeadBucket(ctx context.Context, bucket string) (code int, header http.Header, errRet error) {
280281
logId := tccommon.GetLogId(ctx)
281282

282-
response, err := me.client.UseTencentCosClient(bucket).Bucket.Head(ctx)
283+
response, err := me.client.UseTencentCosClient(bucket, "").Bucket.Head(ctx)
283284

284285
if response != nil {
285286
code = response.StatusCode
@@ -1123,7 +1124,7 @@ func (me *CosService) GetBucketACL(ctx context.Context, bucket string) (result *
11231124
}()
11241125

11251126
ratelimit.Check("TencentcloudCosPutBucketACL")
1126-
acl, _, err := me.client.UseTencentCosClient(bucket).Bucket.GetACL(ctx)
1127+
acl, _, err := me.client.UseTencentCosClient(bucket, "").Bucket.GetACL(ctx)
11271128

11281129
if err != nil {
11291130
errRet = fmt.Errorf("cos [GetBucketACL] error: %s, bucket: %s", err.Error(), bucket)

0 commit comments

Comments
 (0)