qiniu cdn supports wildcard domain deployment

This commit is contained in:
yoan 2024-10-22 15:41:44 +08:00
parent 4e86c1eb45
commit dbfb84ec6d
2 changed files with 32 additions and 3 deletions

View File

@ -76,7 +76,8 @@ func (d *QiniuCDNDeployer) Deploy(ctx context.Context) error {
} }
func (d *QiniuCDNDeployer) enableHttps(certId string) error { func (d *QiniuCDNDeployer) enableHttps(certId string) error {
path := fmt.Sprintf("/domain/%s/sslize", getDeployString(d.option.DeployConfig, "domain")) domain := d.option.DeployConfig.GetDomain()
path := fmt.Sprintf("/domain/%s/sslize", domain)
body := &qiniuModifyDomainCertReq{ body := &qiniuModifyDomainCertReq{
CertID: certId, CertID: certId,
@ -102,7 +103,9 @@ type qiniuDomainInfo struct {
} }
func (d *QiniuCDNDeployer) getDomainInfo() (*qiniuDomainInfo, error) { func (d *QiniuCDNDeployer) getDomainInfo() (*qiniuDomainInfo, error) {
path := fmt.Sprintf("/domain/%s", getDeployString(d.option.DeployConfig, "domain")) domain := d.option.DeployConfig.GetDomain()
path := fmt.Sprintf("/domain/%s", domain)
res, err := d.req(qiniuGateway+path, http.MethodGet, nil) res, err := d.req(qiniuGateway+path, http.MethodGet, nil)
if err != nil { if err != nil {
@ -164,7 +167,8 @@ type qiniuModifyDomainCertReq struct {
} }
func (d *QiniuCDNDeployer) modifyDomainCert(certId string) error { func (d *QiniuCDNDeployer) modifyDomainCert(certId string) error {
path := fmt.Sprintf("/domain/%s/httpsconf", getDeployString(d.option.DeployConfig, "domain")) domain := d.option.DeployConfig.GetDomain()
path := fmt.Sprintf("/domain/%s/httpsconf", domain)
body := &qiniuModifyDomainCertReq{ body := &qiniuModifyDomainCertReq{
CertID: certId, CertID: certId,

View File

@ -1,5 +1,7 @@
package domain package domain
import "strings"
type ApplyConfig struct { type ApplyConfig struct {
Email string `json:"email"` Email string `json:"email"`
Access string `json:"access"` Access string `json:"access"`
@ -16,6 +18,29 @@ type DeployConfig struct {
Config map[string]any `json:"config"` Config map[string]any `json:"config"`
} }
// GetDomain returns the domain from the deploy config
// if the domain is a wildcard domain, and wildcard is true, return the wildcard domain
func (d *DeployConfig) GetDomain(wildcard ...bool) string {
if _, ok := d.Config["domain"]; !ok {
return ""
}
val, ok := d.Config["domain"].(string)
if !ok {
return ""
}
if !strings.HasPrefix(val, "*") {
return val
}
if len(wildcard) > 0 && wildcard[0] {
return val
}
return strings.TrimPrefix(val, "*")
}
type KV struct { type KV struct {
Key string `json:"key"` Key string `json:"key"`
Value string `json:"value"` Value string `json:"value"`