Files
AllinSSL/plugins/alicloud/oss/action.go
v-me-50 a027bde148 【调整】插件支持动态参数和参数类型
【调整】获取证书列表支持状态过滤
【新增】dns提供商腾讯云eo
2025-12-17 15:07:12 +08:00

63 lines
1.8 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package osswrap
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func createClient(accessKeyId, accessKeySecret, region string) (*oss.Client, error) {
var endpoint string
switch region {
case "":
endpoint = "oss.aliyuncs.com"
case "cn-hzjbp", "cn-hzjbp-a", "cn-hzjbp-b":
endpoint = "oss-cn-hzjbp-a-internal.aliyuncs.com"
case "cn-shanghai-finance-1", "cn-shenzhen-finance-1", "cn-beijing-finance-1", "cn-north-2-gov-1":
endpoint = fmt.Sprintf("oss-%s-internal.aliyuncs.com", region)
default:
endpoint = fmt.Sprintf("oss-%s.aliyuncs.com", region)
}
return oss.New(endpoint, accessKeyId, accessKeySecret)
}
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")
}
region, ok := cfg["region"].(string)
if !ok || region == "" {
return fmt.Errorf("参数错误region")
}
bucket, ok := cfg["bucket"].(string)
if !ok || bucket == "" {
return fmt.Errorf("参数错误bucket")
}
domain, ok := cfg["domain"].(string)
if !ok || domain == "" {
return fmt.Errorf("参数错误domain")
}
client, err := createClient(accessKey, accessSecret, region)
if err != nil {
return err
}
putReq := oss.PutBucketCname{
Cname: domain,
CertificateConfiguration: &oss.CertificateConfiguration{Certificate: certPEM, PrivateKey: keyPEM, Force: true},
}
return client.PutBucketCnameWithCertificate(bucket, putReq)
}