【新增】【部署】百度云CDN

This commit is contained in:
wantoper
2025-05-22 18:45:40 +08:00
parent 7b4c184ade
commit 0843374b91
6 changed files with 165 additions and 4 deletions

View File

@@ -0,0 +1,91 @@
package deploy
import (
"ALLinSSL/backend/internal/access"
baiduyuncdn "ALLinSSL/backend/internal/cert/deploy/client/baiduyun"
"encoding/json"
"fmt"
"strconv"
"time"
)
func DeployBaiduCdn(cfg map[string]any) error {
cert, ok := cfg["certificate"].(map[string]any)
if !ok {
return fmt.Errorf("证书不存在")
}
var providerID string
switch v := cfg["provider_id"].(type) {
case float64:
providerID = strconv.Itoa(int(v))
case string:
providerID = v
default:
return fmt.Errorf("参数错误provider_id")
}
//
providerData, err := access.GetAccess(providerID)
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, err := baiduyuncdn.ClientBaiduCdn(providerConfig["access_key"], providerConfig["secret_key"])
if err != nil {
return err
}
domain, ok := cfg["domain"].(string)
if !ok {
return fmt.Errorf("参数错误domain")
}
// 设置证书
keyPem, ok := cert["key"].(string)
if !ok {
return fmt.Errorf("证书错误key")
}
certPem, ok := cert["cert"].(string)
if !ok {
return fmt.Errorf("证书错误cert")
}
certName := fmt.Sprintf("%s_allinssl_%d", domain, time.Now().UnixMilli())
_, err = client.IPutCert(domain, certName, certPem, keyPem)
if err != nil {
return err
}
return nil
}
func BaiduyunAPITest(providerID string) error {
providerData, err := access.GetAccess(providerID)
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, err := baiduyuncdn.ClientBaiduCdn(providerConfig["access_key"], providerConfig["secret_key"])
_, _, err = client.ListDomains("")
if err != nil {
return fmt.Errorf("测试请求失败: %v", err)
}
return nil
}