github.com/qiniu/go-sdk/v7@v7.27.0/pili/domain.go (about) 1 package pili 2 3 import ( 4 "context" 5 "net/http" 6 ) 7 8 // GetDomainsList 查询域名列表 9 // GET /v2/hubs/<hub>/domains 10 func (m *Manager) GetDomainsList(ctx context.Context, req GetDomainsListRequest) (*GetDomainsListResponse, error) { 11 if err := defaultValidator.Validate(req); err != nil { 12 return nil, err 13 } 14 15 response := new(GetDomainsListResponse) 16 if err := m.client.Call(ctx, response, http.MethodGet, m.url("/v2/hubs/%s/domains", req.Hub), nil); err != nil { 17 return nil, err 18 } 19 return response, nil 20 } 21 22 // GetDomainInfo 查询域名信息 23 // GET /v2/hubs/<hub>/domains/<domain> 24 func (m *Manager) GetDomainInfo(ctx context.Context, req GetDomainInfoRequest) (*GetDomainInfoResponse, error) { 25 if err := defaultValidator.Validate(req); err != nil { 26 return nil, err 27 } 28 29 response := new(GetDomainInfoResponse) 30 if err := m.client.Call(ctx, response, http.MethodGet, m.url("/v2/hubs/%s/domains/%s", req.Hub, req.Domain), nil); err != nil { 31 return nil, err 32 } 33 return response, nil 34 } 35 36 // BindDomain 绑定直播域名 37 // POST /v2/hubs/<hub>/newdomains 38 func (m *Manager) BindDomain(ctx context.Context, req BindDomainRequest) error { 39 if err := defaultValidator.Validate(req); err != nil { 40 return err 41 } 42 43 if err := m.client.CallWithJson(ctx, nil, http.MethodPost, m.url("/v2/hubs/%s/newdomains", req.Hub), nil, req); err != nil { 44 return err 45 } 46 return nil 47 } 48 49 // UnbindDomain 解绑直播域名 50 // DELETE /v2/hubs/<hub>/domains/<domain> 51 func (m *Manager) UnbindDomain(ctx context.Context, req UnbindDomainRequest) error { 52 if err := defaultValidator.Validate(req); err != nil { 53 return err 54 } 55 56 if err := m.client.CallWithJson(ctx, nil, http.MethodDelete, m.url("/v2/hubs/%s/domains/%s", req.Hub, req.Domain), nil, req); err != nil { 57 return err 58 } 59 return nil 60 } 61 62 // BindVodDomain 绑定点播域名 63 // POST /v2/hubs/<hub>/voddomain 64 // 点播域名用于访问直播空间对应的存储空间中的内容,例如回放、截图文件 65 // 请在存储空间控制台配置好可用域名后,绑定到直播空间 66 // 若未正确配置点播域名,可能无法正常使用回放录制、保存截图等功能 67 func (m *Manager) BindVodDomain(ctx context.Context, req BindVodDomainRequest) error { 68 if err := defaultValidator.Validate(req); err != nil { 69 return err 70 } 71 72 if err := m.client.CallWithJson(ctx, nil, http.MethodPost, m.url("/v2/hubs/%s/voddomain", req.Hub), nil, req); err != nil { 73 return err 74 } 75 return nil 76 } 77 78 // SetDomainCert 修改域名证书配置 79 // POST /v2/hubs/<hub>/domains/<domain>/cert 80 func (m *Manager) SetDomainCert(ctx context.Context, req SetDomainCertRequest) error { 81 if err := defaultValidator.Validate(req); err != nil { 82 return err 83 } 84 85 if err := m.client.CallWithJson(ctx, nil, http.MethodPost, m.url("/v2/hubs/%s/domains/%s/cert", req.Hub, req.Domain), nil, req); err != nil { 86 return err 87 } 88 return nil 89 } 90 91 // SetDomainURLRewrite 修改域名改写规则配置 92 // POST /v2/hubs/<hub>/domains/<domain>/urlrewrite 93 // 可根据业务需求自定义推拉流URL 94 // 改写后的URL应符合七牛的直播URL规范: <scheme>://<domain>/<hub>/<stream>[.<ext>]?<query> 95 // 举例 96 // 匹配规则: (.+)/live/(.+)/playlist.m3u8 97 // 改写规则: ${1}/hub/${2}.m3u8 98 // 请求URL: https://live.qiniu.com/live/stream01/playlist.m3u8 ; 改写URL: https://live.qiniu.com/hub/stream01.m3u8 99 // 请求URL: https://live.qiniu.com/live/stream01.m3u8 ; 与规则不匹配,不做改写 100 func (m *Manager) SetDomainURLRewrite(ctx context.Context, req SetDomainURLRewriteRequest) error { 101 if err := defaultValidator.Validate(req); err != nil { 102 return err 103 } 104 105 if err := m.client.CallWithJson(ctx, nil, http.MethodPost, m.url("/v2/hubs/%s/domains/%s/urlrewrite", req.Hub, req.Domain), nil, req); err != nil { 106 return err 107 } 108 return nil 109 }