Skip to content

Commit 1f25f4d

Browse files
committed
feat: cos - add cos sdk, enable maz setting
1 parent c193ebf commit 1f25f4d

File tree

109 files changed

+16284
-229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+16284
-229
lines changed

go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ require (
99
github.com/client9/misspell v0.3.4
1010
github.com/fatih/color v1.9.0
1111
github.com/golangci/golangci-lint v1.27.0
12+
github.com/google/go-querystring v1.1.0 // indirect
1213
github.com/hashicorp/hcl/v2 v2.6.0
1314
github.com/hashicorp/terraform-plugin-sdk v1.14.0
1415
github.com/katbyte/terrafmt v0.2.0
1516
github.com/mattn/go-colorable v0.1.6 // indirect
1617
github.com/mitchellh/go-homedir v1.1.0
18+
github.com/mozillazg/go-httpheader v0.3.0 // indirect
1719
github.com/pkg/errors v0.9.1
1820
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.199
1921
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.199
@@ -49,6 +51,7 @@ require (
4951
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.0.199
5052
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.199
5153
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
54+
github.com/tencentyun/cos-go-sdk-v5 v0.7.29
5255
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1
5356
github.com/zclconf/go-cty v1.4.2 // indirect
5457
golang.org/x/sys v0.0.0-20200523222454-059865788121 // indirect

go.sum

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ github.com/Djarvur/go-err113 v0.0.0-20200410182137-af658d038157/go.mod h1:4UJr5H
1515
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
1616
github.com/OpenPeeDeeP/depguard v1.0.1 h1:VlW4R6jmBIv3/u1JNlawEvJMM4J+dPORPaZasQee8Us=
1717
github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM=
18+
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
1819
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
1920
github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
2021
github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
@@ -174,6 +175,11 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a
174175
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
175176
github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
176177
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
178+
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
179+
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
180+
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
181+
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
182+
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
177183
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
178184
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
179185
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
@@ -339,6 +345,9 @@ github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx
339345
github.com/mitchellh/reflectwalk v1.0.1 h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE=
340346
github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
341347
github.com/mozilla/tls-observatory v0.0.0-20200317151703-4fa42e1c2dee/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk=
348+
github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60=
349+
github.com/mozillazg/go-httpheader v0.3.0 h1:3brX5z8HTH+0RrNA1362Rc3HsaxyWEKtGY45YrhuINM=
350+
github.com/mozillazg/go-httpheader v0.3.0/go.mod h1:PuT8h0pw6efvp8ZeUec1Rs7dwjK08bt6gKSReGMqtdA=
342351
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
343352
github.com/nakabonne/nestif v0.3.0 h1:+yOViDGhg8ygGrmII72nV9B/zGxY188TYpfolntsaPw=
344353
github.com/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c=
@@ -458,6 +467,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.199 h1:G69HwV7
458467
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.199/go.mod h1:zgARzAnsLzpLhdpAHrHTUilOXytH9aEJy5ssCdizVV0=
459468
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199 h1:o41qFAFJGPDTLNWXs7nLw4fsDxFUCe5gkO2YXI9Ye6Q=
460469
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.199/go.mod h1:b7dNjabPys0/iLwRFd8MVE5EkJTNAh4qtaHQOOLchx4=
470+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
461471
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.199 h1:TeLKOemumLTjWpkRKNVNhpb7VMDlOPaVEuukrWmab30=
462472
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.199/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
463473
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.234 h1:yAtw4jVBsQZ/KcM2nMHRzcpIfSXRw0Alt7wVTR9OodM=
@@ -474,6 +484,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.199 h1:qMFzKYXp
474484
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/es v1.0.199/go.mod h1:UegCt4vv9jAlzpgDu31ZJTuRP5T2BTV8w+jZBTsZIzg=
475485
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.199 h1:tmjUPp0VBKuzjTqt0IQ5PT6iYt0yLmvM2DUzMFF7SGk=
476486
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.0.199/go.mod h1:tuPVv7O2B2fIpoDsrV/kvC62FO4CE4FihUxZY0JX2ek=
487+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
477488
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.199 h1:rSDQeqvV4khOJUyg6xmMYF26CRd+WtSYvfwP6N72NP0=
478489
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.199/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
479490
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/mongodb v1.0.199 h1:2jsGprrewRIP3smcTsY5GpEuOuJ+qyV/BN3Py0Ivf1o=
@@ -510,6 +521,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.199 h1:UDZ59pv
510521
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc v1.0.199/go.mod h1:SKgeSsIfPEM6BeoIFiGHsWG9UsEXzkK0SkWx51H/OS8=
511522
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4=
512523
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY=
524+
github.com/tencentyun/cos-go-sdk-v5 v0.7.29 h1:uwRBzc70Wgtc5iQQCowqecfRT0OpCXUOZzodZHOOEDs=
525+
github.com/tencentyun/cos-go-sdk-v5 v0.7.29/go.mod h1:4E4+bQ2gBVJcgEC9Cufwylio4mXOct2iu05WjgEBx1o=
513526
github.com/tetafro/godot v0.3.7 h1:+mecr7RKrUKB5UQ1gwqEMn13sDKTyDR8KNIquB9mm+8=
514527
github.com/tetafro/godot v0.3.7/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0=
515528
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e h1:RumXZ56IrCj4CL+g1b9OL/oH0QnsF976bC8xQFYUD5Q=

tencentcloud/connectivity/client.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package connectivity
22

33
import (
44
"fmt"
5+
"github.com/tencentyun/cos-go-sdk-v5"
6+
"net/http"
57

68
"github.com/aws/aws-sdk-go/aws"
79
"github.com/aws/aws-sdk-go/aws/credentials"
@@ -53,6 +55,7 @@ type TencentCloudClient struct {
5355
Domain string
5456

5557
cosConn *s3.S3
58+
tencentCosConn *cos.Client
5659
mysqlConn *cdb.Client
5760
redisConn *redis.Client
5861
asConn *as.Client
@@ -132,6 +135,22 @@ func (me *TencentCloudClient) UseCosClient() *s3.S3 {
132135
return s3.New(sess)
133136
}
134137

138+
// UseTencentCosClient tencent cloud own client for service instead of aws
139+
func (me *TencentCloudClient) UseTencentCosClient() *cos.Client {
140+
if me.tencentCosConn != nil {
141+
return me.tencentCosConn
142+
}
143+
me.tencentCosConn = cos.NewClient("", &http.Client{
144+
Timeout: 60,
145+
Transport: &cos.AuthorizationTransport{
146+
SecretID: me.Credential.SecretId,
147+
SecretKey: me.Credential.SecretKey,
148+
},
149+
})
150+
151+
return me.tencentCosConn
152+
}
153+
135154
// UseMysqlClient returns mysql(cdb) client for service
136155
func (me *TencentCloudClient) UseMysqlClient() *cdb.Client {
137156
if me.mysqlConn != nil {

tencentcloud/resource_tc_cos_bucket.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,12 @@ func resourceTencentCloudCosBucket() *schema.Resource {
332332
Computed: true,
333333
Description: "The URL of this cos bucket.",
334334
},
335+
"az_config": {
336+
Type: schema.TypeString,
337+
Optional: true,
338+
ForceNew: true,
339+
Description: "The configuration of bucket available zone, set `MAZ` to enable multi available zone.",
340+
},
335341
},
336342
}
337343
}
@@ -384,8 +390,8 @@ func resourceTencentCloudCosBucketRead(d *schema.ResourceData, meta interface{})
384390
}
385391
}
386392

387-
cosBuckeUrl := fmt.Sprintf("%s.cos.%s.myqcloud.com", d.Id(), meta.(*TencentCloudClient).apiV3Conn.Region)
388-
_ = d.Set("cos_bucket_url", cosBuckeUrl)
393+
cosBucketUrl := fmt.Sprintf("%s.cos.%s.myqcloud.com", d.Id(), meta.(*TencentCloudClient).apiV3Conn.Region)
394+
_ = d.Set("cos_bucket_url", cosBucketUrl)
389395
// set bucket in the import case
390396
if _, ok := d.GetOk("bucket"); !ok {
391397
_ = d.Set("bucket", d.Id())

tencentcloud/service_tencentcloud_cos.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package tencentcloud
33
import (
44
"context"
55
"fmt"
6+
"github.com/aws/aws-sdk-go/aws/request"
7+
"github.com/tencentyun/cos-go-sdk-v5"
68
"log"
79

810
"github.com/aws/aws-sdk-go/aws"
@@ -119,6 +121,23 @@ func (me *CosService) PutBucket(ctx context.Context, bucket, acl string) (errRet
119121
return nil
120122
}
121123

124+
func (me *CosService) CosPutBucket(ctx context.Context, bucket, acl string) (errRet error) {
125+
logId := getLogId(ctx)
126+
127+
opt := &cos.BucketPutOptions{
128+
129+
}
130+
131+
me.client.UseTencentCosClient().Bucket.Put(ctx, opt)
132+
133+
defer func() {
134+
if errRet != nil {
135+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
136+
logId, "put bucket", opt.String(), errRet.Error())
137+
}
138+
}()
139+
}
140+
122141
func (me *CosService) HeadBucket(ctx context.Context, bucket string) (errRet error) {
123142
logId := getLogId(ctx)
124143

0 commit comments

Comments
 (0)