From 64d29d29791ce5dc0cc9dbc736e9a60b3fb7612b Mon Sep 17 00:00:00 2001 From: v-me-50 Date: Fri, 11 Jul 2025 11:27:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9lecdn=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E3=80=81=E5=A2=9E=E5=8A=A0=E8=85=BE=E8=AE=AF=E4=BA=91=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=9C=AA=E5=88=9B=E5=BB=BA=E4=BB=BB=E5=8A=A1=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/cert/deploy/lecdn/lecdn.go | 4 +-- backend/internal/cert/deploy/tencentcloud.go | 32 ++++++++++++-------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/backend/internal/cert/deploy/lecdn/lecdn.go b/backend/internal/cert/deploy/lecdn/lecdn.go index 729159a..a526317 100644 --- a/backend/internal/cert/deploy/lecdn/lecdn.go +++ b/backend/internal/cert/deploy/lecdn/lecdn.go @@ -238,9 +238,9 @@ func DeployLeCDN(cfg map[string]any) error { default: return fmt.Errorf("参数错误:provider_id") } - domainName, ok := cfg["domain_name"].(string) + domainName, ok := cfg["domain"].(string) if !ok || domainName == "" { - return fmt.Errorf("参数错误:domain_name") + return fmt.Errorf("参数错误:domain") } var siteId int switch v := cfg["site_id"].(type) { diff --git a/backend/internal/cert/deploy/tencentcloud.go b/backend/internal/cert/deploy/tencentcloud.go index 4478076..313bc5a 100644 --- a/backend/internal/cert/deploy/tencentcloud.go +++ b/backend/internal/cert/deploy/tencentcloud.go @@ -54,7 +54,7 @@ func DeployToTX(cfg map[string]any) error { if !ok { return fmt.Errorf("证书错误:cert") } - + var providerID string switch v := cfg["provider_id"].(type) { case float64: @@ -84,16 +84,16 @@ func DeployToTX(cfg map[string]any) error { region = r } client := ClientTencentcloud(providerConfig["secret_id"], providerConfig["secret_key"], region) - + // 上传证书 certificateId, err := UploadToTX(client, strings.TrimSpace(keyPem), strings.TrimSpace(certPem)) if err != nil { return err } // fmt.Println(certificateId) - + request := ssl.NewDeployCertificateInstanceRequest() - + request.CertificateId = common.StringPtr(certificateId) resourceType := cfg["resource_type"].(string) switch resourceType { @@ -128,16 +128,24 @@ func DeployToTX(cfg map[string]any) error { request.InstanceIdList = common.StringPtrs([]string{fmt.Sprintf("%s|%s|%s", region, bucket, domain)}) request.ResourceType = common.StringPtr("cos") } - + // 返回的resp是一个DeployCertificateInstanceResponse的实例,与请求对象对应 response, err := client.DeployCertificateInstance(request) if _, ok := err.(*errors.TencentCloudSDKError); ok { return err } if err != nil { - panic(err) + if _, ok := err.(*errors.TencentCloudSDKError); ok { + return fmt.Errorf("腾讯云 API 错误: %v", err) + } + return fmt.Errorf("部署证书失败: %v", err) + } + if response == nil || response.Response == nil { + return fmt.Errorf("部署证书失败: 响应为空") + } + if *response.Response.DeployStatus != 1 { + return fmt.Errorf("腾讯云当前存在部署中的任务,未创建新的部署任务,部署中的任务ID为:%d", *response.Response.DeployRecordId) } - fmt.Println(response.Response.DeployRecordId) return nil } @@ -146,27 +154,27 @@ func TencentCloudAPITest(providerID string) error { if err != nil { return err } - + providerConfigStr, ok := providerData["config"].(string) if !ok { return fmt.Errorf("api配置错误") } - + // 解析 JSON 配置 var providerConfig map[string]string err = json.Unmarshal([]byte(providerConfigStr), &providerConfig) if err != nil { return err } - + // 创建客户端 client := ClientTencentcloud(providerConfig["secret_id"], providerConfig["secret_key"], "") - + request := ssl.NewDescribeCertificatesRequest() _, err = client.DescribeCertificates(request) if err != nil { return fmt.Errorf("测试请求失败: %v", err) } - + return nil }