Skip to content

Commit 8600b82

Browse files
authored
fix(cos): [124198801] tencentcloud_cos_bucket update origin_pull_rules add new params (#3378)
* add * add * add
1 parent 7f91b75 commit 8600b82

18 files changed

+480
-108
lines changed

.changelog/3378.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_cos_bucket: update `origin_pull_rules` add new params
3+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ require (
100100
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.0.1170
101101
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792
102102
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199
103-
github.com/tencentyun/cos-go-sdk-v5 v0.7.64
103+
github.com/tencentyun/cos-go-sdk-v5 v0.7.66
104104
github.com/yangwenmai/ratelimit v0.0.0-20180104140304-44221c2292e1
105105
gopkg.in/yaml.v2 v2.4.0
106106
)

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,6 +1151,10 @@ github.com/tencentyun/cos-go-sdk-v5 v0.7.64-0.20250324024831-9ab072216e10 h1:0YE
11511151
github.com/tencentyun/cos-go-sdk-v5 v0.7.64-0.20250324024831-9ab072216e10/go.mod h1:8+hG+mQMuRP/OIS9d83syAvXvrMj9HhkND6Q1fLghw0=
11521152
github.com/tencentyun/cos-go-sdk-v5 v0.7.64 h1:2ADzzr+hcWl4Fw44DwXe0btlVzAYkdvHQ4glUyR0+mM=
11531153
github.com/tencentyun/cos-go-sdk-v5 v0.7.64/go.mod h1:8+hG+mQMuRP/OIS9d83syAvXvrMj9HhkND6Q1fLghw0=
1154+
github.com/tencentyun/cos-go-sdk-v5 v0.7.66-0.20250526100824-edd430d7fffb h1:UtCUmXCVOZz1XtgUhizhtzkIcmb2yRbC+IL3f/7MSxs=
1155+
github.com/tencentyun/cos-go-sdk-v5 v0.7.66-0.20250526100824-edd430d7fffb/go.mod h1:8+hG+mQMuRP/OIS9d83syAvXvrMj9HhkND6Q1fLghw0=
1156+
github.com/tencentyun/cos-go-sdk-v5 v0.7.66 h1:O4O6EsozBoDjxWbltr3iULgkI7WPj/BFNlYTXDuE64E=
1157+
github.com/tencentyun/cos-go-sdk-v5 v0.7.66/go.mod h1:8+hG+mQMuRP/OIS9d83syAvXvrMj9HhkND6Q1fLghw0=
11541158
github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA=
11551159
github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=
11561160
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag=

tencentcloud/services/cos/resource_tc_cos_bucket.go

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,23 @@ func originPullRules() *schema.Resource {
3939
"sync_back_to_source": {
4040
Type: schema.TypeBool,
4141
Optional: true,
42-
Default: false,
42+
Computed: true,
43+
Deprecated: "It has been deprecated from version 1.81.196. Please use `back_to_source_mode` instead.",
4344
Description: "If `true`, COS will not return 3XX status code when pulling data from an origin server. Current available zone: ap-beijing, ap-shanghai, ap-singapore, ap-mumbai.",
4445
},
46+
"back_to_source_mode": {
47+
Type: schema.TypeString,
48+
Optional: true,
49+
Computed: true,
50+
ValidateFunc: tccommon.ValidateAllowedStringValue([]string{"Proxy", "Mirror", "Redirect"}),
51+
Description: "Back to source mode. Allow value: Proxy, Mirror, Redirect.",
52+
},
53+
"http_redirect_code": {
54+
Type: schema.TypeString,
55+
Optional: true,
56+
Computed: true,
57+
Description: "Redirect code. Effective when `back_to_source_mode` is `Redirect`. ex: 301, 302, 307. Default is 302.",
58+
},
4559
"prefix": {
4660
Type: schema.TypeString,
4761
Optional: true,
@@ -1659,7 +1673,7 @@ func resourceTencentCloudCosBucketOriginPullUpdate(ctx context.Context, service
16591673
HTTPStatusCode: "404",
16601674
},
16611675
OriginParameter: &cos.BucketOriginParameter{
1662-
CopyOriginData: true,
1676+
CopyOriginData: helper.Bool(true),
16631677
HttpHeader: &cos.BucketOriginHttpHeader{},
16641678
},
16651679
OriginInfo: &cos.BucketOriginInfo{
@@ -1670,10 +1684,25 @@ func resourceTencentCloudCosBucketOriginPullUpdate(ctx context.Context, service
16701684
}
16711685
)
16721686

1673-
if v := dMap["sync_back_to_source"]; v.(bool) {
1674-
item.OriginType = "Mirror"
1675-
} else {
1676-
item.OriginType = "Proxy"
1687+
// has deprecated
1688+
if v, ok := dMap["sync_back_to_source"]; ok {
1689+
if v.(bool) {
1690+
item.OriginType = "Mirror"
1691+
} else {
1692+
item.OriginType = "Proxy"
1693+
}
1694+
}
1695+
1696+
if v, ok := dMap["back_to_source_mode"].(string); ok && v != "" {
1697+
item.OriginType = v
1698+
}
1699+
1700+
if v, ok := dMap["http_redirect_code"].(string); ok && v != "" {
1701+
if item.OriginType == "Redirect" {
1702+
item.OriginParameter.HttpRedirectCode = v
1703+
} else {
1704+
return fmt.Errorf("Parameter `http_redirect_code` can be set only if `back_to_source_mode` is `Redirect`.")
1705+
}
16771706
}
16781707

16791708
if v, ok := dMap["priority"]; ok {
@@ -1691,10 +1720,10 @@ func resourceTencentCloudCosBucketOriginPullUpdate(ctx context.Context, service
16911720
item.OriginInfo.HostInfo = &tmpHost
16921721
}
16931722
if v, ok := dMap["follow_query_string"]; ok {
1694-
item.OriginParameter.FollowQueryString = v.(bool)
1723+
item.OriginParameter.FollowQueryString = helper.Bool(v.(bool))
16951724
}
16961725
if v, ok := dMap["follow_redirection"]; ok {
1697-
item.OriginParameter.FollowRedirection = v.(bool)
1726+
item.OriginParameter.FollowRedirection = helper.Bool(v.(bool))
16981727
}
16991728
//if v, ok := dMap["copy_origin_data"]; ok {
17001729
// item.OriginParameter.CopyOriginData = v.(bool)

tencentcloud/services/cos/resource_tc_cos_bucket.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,31 @@ resource "tencentcloud_cos_bucket" "bucket_with_cors" {
281281
}
282282
```
283283

284+
Using Origin pull
285+
286+
```hcl
287+
data "tencentcloud_user_info" "info" {}
288+
289+
locals {
290+
app_id = data.tencentcloud_user_info.info.app_id
291+
uin = data.tencentcloud_user_info.info.uin
292+
owner_uin = data.tencentcloud_user_info.info.owner_uin
293+
}
294+
295+
resource "tencentcloud_cos_bucket" "example" {
296+
bucket = "tf-bucket-basic10-${local.app_id}"
297+
acl = "public-read"
298+
origin_pull_rules {
299+
priority = 1
300+
back_to_source_mode = "Redirect"
301+
http_redirect_code = "301"
302+
protocol = "FOLLOW"
303+
host = "1.1.1.1"
304+
follow_query_string = true
305+
}
306+
}
307+
```
308+
284309
Using CORS with CDC
285310

286311
```hcl

tencentcloud/services/cos/service_tencentcloud_cos.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,10 +1300,11 @@ func (me *CosService) GetBucketPullOrigin(ctx context.Context, bucket string) (r
13001300
return nil, errRet
13011301
}
13021302

1303+
header, _ := json.Marshal(response.Header)
13031304
resp, _ := json.Marshal(originConfig)
13041305

1305-
log.Printf("[DEBUG]%s api[%s] success, request body response body [%s]\n",
1306-
logId, "GetBucketPullOrigin", resp)
1306+
log.Printf("[DEBUG]%s api[%s] success, request body request header [%s], response body [%s]\n",
1307+
logId, "GetBucketPullOrigin", header, resp)
13071308

13081309
rules := make([]map[string]interface{}, 0)
13091310

@@ -1318,12 +1319,17 @@ func (me *CosService) GetBucketPullOrigin(ctx context.Context, bucket string) (r
13181319
item["prefix"] = helper.String(rule.OriginCondition.Prefix)
13191320
}
13201321

1322+
// has deprecated
13211323
if rule.OriginType == "Mirror" {
13221324
item["sync_back_to_source"] = helper.Bool(true)
13231325
} else if rule.OriginType == "Proxy" {
13241326
item["sync_back_to_source"] = helper.Bool(false)
13251327
}
13261328

1329+
if rule.OriginType != "" {
1330+
item["back_to_source_mode"] = helper.String(rule.OriginType)
1331+
}
1332+
13271333
if rule.OriginParameter != nil {
13281334
if rule.OriginParameter.HttpHeader != nil {
13291335
if len(rule.OriginParameter.HttpHeader.NewHttpHeaders) != 0 {
@@ -1345,9 +1351,14 @@ func (me *CosService) GetBucketPullOrigin(ctx context.Context, bucket string) (r
13451351
}
13461352

13471353
}
1354+
1355+
if rule.OriginParameter.HttpRedirectCode != "" && rule.OriginType == "Redirect" {
1356+
item["http_redirect_code"] = helper.String(rule.OriginParameter.HttpRedirectCode)
1357+
}
1358+
13481359
item["protocol"] = helper.String(rule.OriginParameter.Protocol)
1349-
item["follow_redirection"] = helper.Bool(rule.OriginParameter.FollowRedirection)
1350-
item["follow_query_string"] = helper.Bool(rule.OriginParameter.FollowQueryString)
1360+
item["follow_redirection"] = rule.OriginParameter.FollowRedirection
1361+
item["follow_query_string"] = rule.OriginParameter.FollowQueryString
13511362
}
13521363

13531364
if rule.OriginInfo.HostInfo != nil {
@@ -1374,6 +1385,7 @@ func (me *CosService) PutBucketPullOrigin(ctx context.Context, bucket string, ru
13741385
ratelimit.Check("PutBucketPullOrigin")
13751386
response, err := me.client.UseTencentCosClientNew(bucket, cdcId).Bucket.PutOrigin(ctx, opt)
13761387

1388+
header, _ := json.Marshal(response.Header)
13771389
req, _ := json.Marshal(opt)
13781390
resp, _ := json.Marshal(response.Response.Body)
13791391

@@ -1389,8 +1401,8 @@ func (me *CosService) PutBucketPullOrigin(ctx context.Context, bucket string, ru
13891401
return
13901402
}
13911403

1392-
log.Printf("[DEBUG]%s api[PutBucketPullOrigin] success, request body [%s], response body [%s]\n",
1393-
logId, req, resp)
1404+
log.Printf("[DEBUG]%s api[PutBucketPullOrigin] success, request header [%s], request body [%s], response body [%s]\n",
1405+
logId, header, req, resp)
13941406

13951407
return nil
13961408
}

vendor/github.com/tencentyun/cos-go-sdk-v5/CHANGELOG.md

Lines changed: 40 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentyun/cos-go-sdk-v5/bucket_origin.go

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/tencentyun/cos-go-sdk-v5/bucket_replication.go

Lines changed: 21 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)