Skip to content

Commit db70160

Browse files
committed
feat(cloud_tencent): 添加腾讯云 SSL 提供商支持
1 parent 44076d8 commit db70160

File tree

7 files changed

+427
-13
lines changed

7 files changed

+427
-13
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ provider:
8484
>
8585
> - 选择“阿里云-CAS 上传证书”业务:调用 CAS `UploadUserCertificate`
8686
> - 选择“阿里云-ESA 上传证书”业务:调用 ESA `SetCertificate`(需要 `esaSiteId`)
87+
>
88+
> #### 腾讯云上传证书
89+
>
90+
> - 选择“腾讯云-上传证书”业务:通过腾讯云官方 Go SDK 调用 SSL `UploadCertificate`(`ssl.tencentcloudapi.com`, `2019-12-05`)
8791

8892
### 3. 配置 Nginx
8993

go.mod

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,38 @@ require (
99
github.com/qiniu/go-sdk/v7 v7.25.6
1010
github.com/spf13/cobra v1.10.2
1111
github.com/spf13/viper v1.21.0
12+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.49
13+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.3.42
1214
google.golang.org/protobuf v1.36.11
1315
)
1416

1517
require (
1618
github.com/BurntSushi/toml v1.6.0 // indirect
1719
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect
1820
github.com/alibabacloud-go/debug v1.0.1 // indirect
21+
github.com/alibabacloud-go/endpoint-util v1.1.1 // indirect
22+
github.com/alibabacloud-go/openapi-util v0.1.1 // indirect
1923
github.com/alibabacloud-go/tea v1.4.0 // indirect
2024
github.com/aliyun/credentials-go v1.4.11 // indirect
2125
github.com/clbanning/mxj/v2 v2.7.0 // indirect
26+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
2227
github.com/fsnotify/fsnotify v1.9.0 // indirect
2328
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
2429
github.com/inconshreveable/mousetrap v1.1.0 // indirect
25-
github.com/json-iterator/go v1.1.12 // indirect
30+
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
2631
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
2732
github.com/modern-go/reflect2 v1.0.2 // indirect
2833
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
34+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
35+
github.com/rogpeppe/go-internal v1.14.1 // indirect
2936
github.com/sagikazarmark/locafero v0.12.0 // indirect
3037
github.com/spf13/afero v1.15.0 // indirect
3138
github.com/spf13/cast v1.10.0 // indirect
3239
github.com/spf13/pflag v1.0.10 // indirect
3340
github.com/subosito/gotenv v1.6.0 // indirect
3441
github.com/tjfoc/gmsm v1.4.1 // indirect
3542
go.yaml.in/yaml/v3 v3.0.4 // indirect
36-
golang.org/x/net v0.50.0 // indirect
43+
golang.org/x/net v0.51.0 // indirect
3744
golang.org/x/sys v0.41.0 // indirect
3845
golang.org/x/text v0.34.0 // indirect
3946
gopkg.in/ini.v1 v1.67.1 // indirect

go.sum

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6p
2525
github.com/alibabacloud-go/debug v1.0.0/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
2626
github.com/alibabacloud-go/debug v1.0.1 h1:MsW9SmUtbb1Fnt3ieC6NNZi6aEwrXfDksD4QA6GSbPg=
2727
github.com/alibabacloud-go/debug v1.0.1/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
28-
github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q=
2928
github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
30-
github.com/alibabacloud-go/openapi-util v0.1.0 h1:0z75cIULkDrdEhkLWgi9tnLe+KhAFE/r5Pb3312/eAY=
29+
github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8=
30+
github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
3131
github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
32+
github.com/alibabacloud-go/openapi-util v0.1.1 h1:ujGErJjG8ncRW6XtBBMphzHTvCxn4DjrVw4m04HsS28=
33+
github.com/alibabacloud-go/openapi-util v0.1.1/go.mod h1:/UehBSE2cf1gYT43GV4E+RxTdLRzURImCYY0aRmlXpw=
3234
github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg=
3335
github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
3436
github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
@@ -39,9 +41,9 @@ github.com/alibabacloud-go/tea v1.2.2/go.mod h1:CF3vOzEMAG+bR4WOql8gc2G9H3EkH3ZL
3941
github.com/alibabacloud-go/tea v1.3.13/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg=
4042
github.com/alibabacloud-go/tea v1.4.0 h1:MSKhu/kWLPX7mplWMngki8nNt+CyUZ+kfkzaR5VpMhA=
4143
github.com/alibabacloud-go/tea v1.4.0/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg=
42-
github.com/alibabacloud-go/tea-utils v1.3.1 h1:iWQeRzRheqCMuiF3+XkfybB3kTgUXkXX+JMrqfLeB2I=
4344
github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
4445
github.com/alibabacloud-go/tea-utils/v2 v2.0.5/go.mod h1:dL6vbUT35E4F4bFTHL845eUloqaerYBYPsdWR2/jhe4=
46+
github.com/alibabacloud-go/tea-utils/v2 v2.0.6/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
4547
github.com/alibabacloud-go/tea-utils/v2 v2.0.7/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
4648
github.com/alibabacloud-go/tea-utils/v2 v2.0.9 h1:y6pUIlhjxbZl9ObDAcmA1H3c21eaAxADHTDQmBnAIgA=
4749
github.com/alibabacloud-go/tea-utils/v2 v2.0.9/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
@@ -62,8 +64,9 @@ github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6N
6264
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
6365
github.com/dave/jennifer v1.6.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc=
6466
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
65-
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
6667
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
68+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
69+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
6770
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
6871
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
6972
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
@@ -108,8 +111,9 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2
108111
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
109112
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
110113
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
111-
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
112114
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
115+
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 h1:9Nu54bhS/H/Kgo2/7xNSUuC5G28VR8ljfrLKU2G4IjU=
116+
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12/go.mod h1:TBzl5BIHNXfS9+C35ZyJaklL7mLDbgUkcgXzSLa8Tk0=
113117
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
114118
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
115119
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
@@ -133,17 +137,18 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA
133137
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
134138
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
135139
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
136-
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
137140
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
141+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
142+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
138143
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
139144
github.com/qiniu/dyn v1.3.0/go.mod h1:E8oERcm8TtwJiZvkQPbcAh0RL8jO1G0VXJMW3FAWdkk=
140145
github.com/qiniu/go-sdk/v7 v7.25.6 h1:89KQX16Bv2x7MxhwpzWGGvQBOPIlGpAcnPQyfS3tRok=
141146
github.com/qiniu/go-sdk/v7 v7.25.6/go.mod h1:dmKtJ2ahhPWFVi9o1D5GemmWoh/ctuB9peqTowyTO8o=
142147
github.com/qiniu/x v1.10.5/go.mod h1:03Ni9tj+N2h2aKnAz+6N0Xfl8FwMEDRC2PAlxekASDs=
143148
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
144149
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
145-
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
146-
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
150+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
151+
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
147152
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
148153
github.com/sagikazarmark/locafero v0.12.0 h1:/NQhBAkUb4+fH1jivKHWusDYFjMOOKU88eegjfxfHb4=
149154
github.com/sagikazarmark/locafero v0.12.0/go.mod h1:sZh36u/YSZ918v0Io+U9ogLYQJ9tLLBmM4eneO6WwsI=
@@ -177,6 +182,11 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu
177182
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
178183
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
179184
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
185+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.42/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
186+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.49 h1:D+oQOdfo4xWiN44Xe4zFy5pz0oqyTuDnNrQ4N7X4D30=
187+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
188+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.3.42 h1:tzs/LQUXA/RcKP/37WQzL0EXFfWayfx3IESNEgOQmZY=
189+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.3.42/go.mod h1:+OiMLoEYiI3UnjZbf0XBdhLn8chpAupH7/zevjXBFug=
180190
github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
181191
github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
182192
github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
@@ -230,8 +240,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
230240
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
231241
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
232242
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
233-
golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60=
234-
golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM=
243+
golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo=
244+
golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y=
235245
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
236246
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
237247
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

internal/client/business_executor.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/https-cert/deploy/internal/client/deploys"
77
"github.com/https-cert/deploy/internal/client/providers"
88
"github.com/https-cert/deploy/internal/client/providers/aliyun"
9+
cloud_tencent "github.com/https-cert/deploy/internal/client/providers/cloud_tencent"
910
"github.com/https-cert/deploy/internal/client/providers/qiniu"
1011
"github.com/https-cert/deploy/internal/config"
1112
"github.com/https-cert/deploy/pb/deployPB"
@@ -68,6 +69,13 @@ func (be *BusinessExecutor) ExecuteBusiness(providerName string, executeBusinesT
6869
}
6970
return be.handleCertificateProvider(providerName, domain, remark, cert, key)
7071

72+
case "cloudTencent":
73+
// 腾讯云仅支持上传证书
74+
if executeBusinesType != deployPB.ExecuteBusinesType_EXECUTE_BUSINES_UPLOAD_CERT {
75+
return fmt.Errorf("不支持的业务类型: %d", executeBusinesType)
76+
}
77+
return be.handleCertificateProvider(providerName, domain, remark, cert, key)
78+
7179
default:
7280
logger.Warn("不支持的提供商", "provider", providerName)
7381
return fmt.Errorf("不支持的提供商: %s", providerName)
@@ -209,6 +217,22 @@ func (be *BusinessExecutor) getAliyunProvider(service string) (providers.Provide
209217
return aliyun.New(accessKeyId, accessKeySecret, options)
210218
}
211219

220+
// getCloudTencentProvider 获取腾讯云 provider
221+
func (be *BusinessExecutor) getCloudTencentProvider() (*cloud_tencent.Provider, error) {
222+
providerConfig := config.GetProvider("cloudTencent")
223+
if providerConfig == nil {
224+
return nil, fmt.Errorf("未配置【腾讯云】提供商配置")
225+
}
226+
227+
secretID := providerConfig.GetSecretId()
228+
secretKey := providerConfig.GetSecretKey()
229+
if secretID == "" || secretKey == "" {
230+
return nil, fmt.Errorf("腾讯云配置不完整: secretId 或 secretKey 为空")
231+
}
232+
233+
return cloud_tencent.New(secretID, secretKey), nil
234+
}
235+
212236
// getProviderHandler 根据提供商名称获取对应的 handler
213237
func (be *BusinessExecutor) getProviderHandler(providerName string) (providers.ProviderHandler, error) {
214238
providerConfig := config.GetProvider(providerName)
@@ -224,6 +248,8 @@ func (be *BusinessExecutor) getProviderHandler(providerName string) (providers.P
224248
return nil, fmt.Errorf("七牛云配置不完整: accessKey 或 accessSecret 为空")
225249
}
226250
return qiniu.New(accessKey, accessSecret), nil
251+
case "cloudTencent":
252+
return be.getCloudTencentProvider()
227253

228254
default:
229255
return nil, fmt.Errorf("不支持的提供商: %s", providerName)

internal/client/provider.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55

66
"github.com/https-cert/deploy/internal/client/providers/aliyun"
7+
cloud_tencent "github.com/https-cert/deploy/internal/client/providers/cloud_tencent"
78
"github.com/https-cert/deploy/internal/client/providers/qiniu"
89
"github.com/https-cert/deploy/internal/config"
910
"github.com/https-cert/deploy/pkg/logger"
@@ -91,7 +92,20 @@ func TestProviderConnection(providerName string) (bool, error) {
9192
return success, nil
9293

9394
case "cloudTencent":
94-
return false, nil
95+
providerConfig := config.GetProvider("cloudTencent")
96+
if providerConfig == nil {
97+
return false, fmt.Errorf("未配置【腾讯云】提供商配置")
98+
}
99+
if providerConfig.GetSecretId() == "" || providerConfig.GetSecretKey() == "" {
100+
return false, fmt.Errorf("腾讯云配置不完整: secretId 或 secretKey 为空")
101+
}
102+
103+
provider := cloud_tencent.New(providerConfig.GetSecretId(), providerConfig.GetSecretKey())
104+
success, err := provider.TestConnection()
105+
if err != nil {
106+
return false, fmt.Errorf("腾讯云连接测试失败: %w", err)
107+
}
108+
return success, nil
95109

96110
case "qiniu":
97111
providerConfig := config.GetProvider("qiniu")

0 commit comments

Comments
 (0)