mirror of
https://gitee.com/mirrors/AllinSSL.git
synced 2026-03-08 15:51:11 +08:00
63 lines
1.8 KiB
Go
63 lines
1.8 KiB
Go
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)
|
||
}
|