Skip to content

Commit 3dda2a2

Browse files
committed
add
1 parent 2128bf8 commit 3dda2a2

File tree

6 files changed

+478
-148
lines changed

6 files changed

+478
-148
lines changed

tencentcloud/connectivity/client.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,14 @@ func (me *TencentCloudClient) NewClientIntlProfile(timeout int) *intlProfile.Cli
253253
return cpf
254254
}
255255

256+
func (me *TencentCloudClient) UseCosClientNew(cdcId ...string) *s3.S3 {
257+
if cdcId[0] == "" {
258+
return me.UseCosClient()
259+
} else {
260+
return me.UseCosCdcClient(cdcId[0])
261+
}
262+
}
263+
256264
// UseCosClient returns cos client for service
257265
func (me *TencentCloudClient) UseCosClient() *s3.S3 {
258266
if me.cosConn != nil {
@@ -279,6 +287,37 @@ func (me *TencentCloudClient) UseCosClient() *s3.S3 {
279287
return s3.New(sess)
280288
}
281289

290+
// UseCosClient returns cos client for service with CDC
291+
func (me *TencentCloudClient) UseCosCdcClient(cdcId string) *s3.S3 {
292+
resolver := func(service, region string, optFns ...func(*endpoints.Options)) (endpoints.ResolvedEndpoint, error) {
293+
if service == endpoints.S3ServiceID {
294+
endpointUrl := fmt.Sprintf("https://%s.cos-cdc.%s.myqcloud.com", cdcId, region)
295+
return endpoints.ResolvedEndpoint{
296+
URL: endpointUrl,
297+
SigningRegion: region,
298+
}, nil
299+
}
300+
return endpoints.DefaultResolver().EndpointFor(service, region, optFns...)
301+
}
302+
303+
creds := credentials.NewStaticCredentials(me.Credential.SecretId, me.Credential.SecretKey, me.Credential.Token)
304+
sess := session.Must(session.NewSession(&aws.Config{
305+
Credentials: creds,
306+
Region: aws.String(me.Region),
307+
EndpointResolver: endpoints.ResolverFunc(resolver),
308+
}))
309+
310+
return s3.New(sess)
311+
}
312+
313+
func (me *TencentCloudClient) UseTencentCosClientNew(bucket string, cdcId ...string) *cos.Client {
314+
if cdcId[0] == "" {
315+
return me.UseTencentCosClient(bucket)
316+
} else {
317+
return me.UseTencentCosCdcClient(bucket, cdcId[0])
318+
}
319+
}
320+
282321
// UseTencentCosClient tencent cloud own client for service instead of aws
283322
func (me *TencentCloudClient) UseTencentCosClient(bucket string) *cos.Client {
284323
u, _ := url.Parse(fmt.Sprintf("https://%s.cos.%s.myqcloud.com", bucket, me.Region))
@@ -303,6 +342,31 @@ func (me *TencentCloudClient) UseTencentCosClient(bucket string) *cos.Client {
303342
return me.tencentCosConn
304343
}
305344

345+
// UseTencentCosClient tencent cloud own client for service instead of aws with CDC
346+
func (me *TencentCloudClient) UseTencentCosCdcClient(bucket string, cdcId string) *cos.Client {
347+
var u *url.URL
348+
u, _ = url.Parse(fmt.Sprintf("https://%s.%s.cos-cdc.%s.myqcloud.com", bucket, cdcId, me.Region))
349+
350+
if me.tencentCosConn != nil && me.tencentCosConn.BaseURL.BucketURL == u {
351+
return me.tencentCosConn
352+
}
353+
354+
baseUrl := &cos.BaseURL{
355+
BucketURL: u,
356+
}
357+
358+
me.tencentCosConn = cos.NewClient(baseUrl, &http.Client{
359+
Timeout: 100 * time.Second,
360+
Transport: &cos.AuthorizationTransport{
361+
SecretID: me.Credential.SecretId,
362+
SecretKey: me.Credential.SecretKey,
363+
SessionToken: me.Credential.Token,
364+
},
365+
})
366+
367+
return me.tencentCosConn
368+
}
369+
306370
// UseMysqlClient returns mysql(cdb) client for service
307371
func (me *TencentCloudClient) UseMysqlClient(iacExtInfo ...IacExtInfo) *cdb.Client {
308372
var logRoundTripper LogRoundTripper

tencentcloud/services/cos/data_source_tc_cos_buckets.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ func dataSourceTencentCloudCosBucketsRead(d *schema.ResourceData, meta interface
362362
continue
363363
}
364364

365-
respTags, err := cosService.GetBucketTags(ctx, *v.Name)
365+
respTags, err := cosService.GetBucketTags(ctx, *v.Name, "")
366366
if err != nil {
367367
return err
368368
}
@@ -382,7 +382,7 @@ func dataSourceTencentCloudCosBucketsRead(d *schema.ResourceData, meta interface
382382

383383
bucket["bucket"] = *v.Name
384384

385-
corsRules, err := cosService.GetBucketCors(ctx, *v.Name)
385+
corsRules, err := cosService.GetBucketCors(ctx, *v.Name, "")
386386
if err != nil {
387387
return err
388388
}
@@ -394,7 +394,7 @@ func dataSourceTencentCloudCosBucketsRead(d *schema.ResourceData, meta interface
394394
}
395395
bucket["lifecycle_rules"] = lifecycleRules
396396

397-
website, err := cosService.GetBucketWebsite(ctx, *v.Name)
397+
website, err := cosService.GetBucketWebsite(ctx, *v.Name, "")
398398
if err != nil {
399399
return err
400400
}
@@ -411,7 +411,7 @@ func dataSourceTencentCloudCosBucketsRead(d *schema.ResourceData, meta interface
411411
bucket["origin_domain_rules"] = domainRules
412412
}
413413

414-
aclBody, err := cosService.GetBucketACL(ctx, *v.Name)
414+
aclBody, err := cosService.GetBucketACL(ctx, *v.Name, "")
415415

416416
if err != nil {
417417
return err

0 commit comments

Comments
 (0)