【调整】插件支持动态参数和参数类型

【调整】获取证书列表支持状态过滤
【新增】dns提供商腾讯云eo
This commit is contained in:
v-me-50
2025-12-17 15:07:12 +08:00
parent d01b42139c
commit a027bde148
29 changed files with 1318 additions and 892 deletions

View File

@@ -0,0 +1,56 @@
package dcdn
import (
"fmt"
aliyunopenapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
dcdn "github.com/alibabacloud-go/dcdn-20180115/v3/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
func createClient(accessKey, accessSecret string) (*dcdn.Client, error) {
config := &aliyunopenapi.Config{
AccessKeyId: tea.String(accessKey),
AccessKeySecret: tea.String(accessSecret),
RegionId: tea.String("cn-hangzhou"),
}
return dcdn.NewClient(config)
}
func Deploy(cfg map[string]any) error {
certPEM, ok := cfg["cert"].(string)
if !ok || certPEM == "" {
return fmt.Errorf("证书错误cert")
}
keyPEM, ok := cfg["key"].(string)
if !ok || keyPEM == "" {
return fmt.Errorf("证书错误key")
}
accessKey, ok := cfg["access_key_id"].(string)
if !ok || accessKey == "" {
return fmt.Errorf("参数错误access_key_id")
}
accessSecret, ok := cfg["access_key_secret"].(string)
if !ok || accessSecret == "" {
return fmt.Errorf("参数错误access_key_secret")
}
domain, ok := cfg["domain"].(string)
if !ok || domain == "" {
return fmt.Errorf("参数错误domain")
}
client, err := createClient(accessKey, accessSecret)
if err != nil {
return fmt.Errorf("创建 DCDN 客户端失败: %w", err)
}
req := &dcdn.SetDcdnDomainSSLCertificateRequest{
DomainName: tea.String(domain),
SSLPri: tea.String(keyPEM),
SSLPub: tea.String(certPEM),
SSLProtocol: tea.String("on"),
CertType: tea.String("upload"),
}
runtime := &util.RuntimeOptions{}
_, err = client.SetDcdnDomainSSLCertificateWithOptions(req, runtime)
return err
}