Documentation
¶
Index ¶
- Constants
- Variables
- func ErrInfo(code int, err string) *client.ErrorInfo
- func Form(obj interface{}) map[string][]string
- func HDLPlayURL(hub, domain, streamTitle string) string
- func HLSPlayURL(hub, domain, streamTitle string) string
- func RTMPPlayURL(hub, domain, streamTitle string) string
- func RTMPPublishURL(hub, domain, streamTitle string) string
- func SRTPublishURL(hub, domain, streamTitle string) string
- func SetAppName(appName string)
- func SignPlayURL(playURL string, args SignPlayURLArgs) (string, error)
- func SignPublishURL(publishURL string, args SignPublishURLArgs) (string, error)
- type AccessLogOptions
- type BatchGetStreamLiveStatusRequest
- type BatchGetStreamLiveStatusResponse
- type BindDomainRequest
- type BindVodDomainRequest
- type DefaultDomain
- type DomainCallbackConfig
- type DomainIPLimit
- type DomainPlaySecurity
- type DomainURLRewriteRule
- type DomainUrlRewrite
- type DomainUrlRewriteItem
- type GetDomainInfoRequest
- type GetDomainInfoResponse
- type GetDomainsListItem
- type GetDomainsListRequest
- type GetDomainsListResponse
- type GetHubInfoRequest
- type GetHubInfoResponse
- type GetHubListItem
- type GetHubListResponse
- type GetStatCasterRequest
- type GetStatCodecRequest
- type GetStatCommonRequest
- type GetStatDownflowRequest
- type GetStatNropRequest
- type GetStatPubRequest
- type GetStatUpflowRequest
- type GetStreamBaseInfoRequest
- type GetStreamBaseInfoResponse
- type GetStreamHistoryItem
- type GetStreamHistoryRequest
- type GetStreamHistoryResponse
- type GetStreamListRequest
- type GetStreamLiveStatusRequest
- type GetStreamLiveStatusResponse
- type GetStreamsListResponse
- type GetStreamsListResponseItem
- type GroupStatCasterRequest
- type GroupStatCodecRequest
- type GroupStatDownflowRequest
- type GroupStatNropRequest
- type GroupStatPubRequest
- type GroupStatUpflowRequest
- type HubDomain
- type HubHlsplusRequest
- type HubPersistenceRequest
- type HubSecurityRequest
- type HubSnapshotRequest
- type Manager
- func (m *Manager) BatchGetStreamLiveStatus(ctx context.Context, req BatchGetStreamLiveStatusRequest) (*BatchGetStreamLiveStatusResponse, error)
- func (m *Manager) BindDomain(ctx context.Context, req BindDomainRequest) error
- func (m *Manager) BindVodDomain(ctx context.Context, req BindVodDomainRequest) error
- func (m *Manager) GetDomainInfo(ctx context.Context, req GetDomainInfoRequest) (*GetDomainInfoResponse, error)
- func (m *Manager) GetDomainsList(ctx context.Context, req GetDomainsListRequest) (*GetDomainsListResponse, error)
- func (m *Manager) GetHubInfo(ctx context.Context, req GetHubInfoRequest) (*GetHubInfoResponse, error)
- func (m *Manager) GetHubList(ctx context.Context) (*GetHubListResponse, error)
- func (m *Manager) GetStatCaster(ctx context.Context, req GetStatCasterRequest) ([]StatResponse, error)
- func (m *Manager) GetStatCodec(ctx context.Context, req GetStatCodecRequest) ([]StatResponse, error)
- func (m *Manager) GetStatDownflow(ctx context.Context, req GetStatDownflowRequest) ([]StatResponse, error)
- func (m *Manager) GetStatNrop(ctx context.Context, req GetStatNropRequest) ([]StatResponse, error)
- func (m *Manager) GetStatPub(ctx context.Context, req GetStatPubRequest) ([]StatResponse, error)
- func (m *Manager) GetStatUpflow(ctx context.Context, req GetStatUpflowRequest) ([]StatResponse, error)
- func (m *Manager) GetStreamBaseInfo(ctx context.Context, req GetStreamBaseInfoRequest) (*GetStreamBaseInfoResponse, error)
- func (m *Manager) GetStreamHistory(ctx context.Context, req GetStreamHistoryRequest) (*GetStreamHistoryResponse, error)
- func (m *Manager) GetStreamLiveStatus(ctx context.Context, req GetStreamLiveStatusRequest) (*GetStreamLiveStatusResponse, error)
- func (m *Manager) GetStreamsList(ctx context.Context, req GetStreamListRequest) (*GetStreamsListResponse, error)
- func (m *Manager) GroupStatCaster(ctx context.Context, req GroupStatCasterRequest) ([]StatGroupResponse, error)
- func (m *Manager) GroupStatCodec(ctx context.Context, req GroupStatCodecRequest) ([]StatGroupResponse, error)
- func (m *Manager) GroupStatDownflow(ctx context.Context, req GroupStatDownflowRequest) ([]StatGroupResponse, error)
- func (m *Manager) GroupStatNrop(ctx context.Context, req GroupStatNropRequest) ([]StatGroupResponse, error)
- func (m *Manager) GroupStatPub(ctx context.Context, req GroupStatPubRequest) ([]StatGroupResponse, error)
- func (m *Manager) GroupStatUpflow(ctx context.Context, req GroupStatUpflowRequest) ([]StatGroupResponse, error)
- func (m *Manager) HubHlsplus(ctx context.Context, req HubHlsplusRequest) error
- func (m *Manager) HubPersistence(ctx context.Context, req HubPersistenceRequest) error
- func (m *Manager) HubSecurity(ctx context.Context, req HubSecurityRequest) error
- func (m *Manager) HubSnapshot(ctx context.Context, req HubSnapshotRequest) error
- func (m *Manager) SetDomainCert(ctx context.Context, req SetDomainCertRequest) error
- func (m *Manager) SetDomainURLRewrite(ctx context.Context, req SetDomainURLRewriteRequest) error
- func (m *Manager) StreamConverts(ctx context.Context, req StreamConvertsRequest) error
- func (m *Manager) StreamDisable(ctx context.Context, req StreamDisabledRequest) error
- func (m *Manager) StreamSaveas(ctx context.Context, req StreamSaveasRequest) (*StreamSaveasResponse, error)
- func (m *Manager) StreamSnapshot(ctx context.Context, req StreamSnapshotRequest) (*StreamSnapshotResponse, error)
- func (m *Manager) UnbindDomain(ctx context.Context, req UnbindDomainRequest) error
- type ManagerConfig
- type NropArgs
- type SetDomainCertRequest
- type SetDomainURLRewriteRequest
- type SignPlayURLArgs
- type SignPublishURLArgs
- type StatGroupResponse
- type StatResponse
- type StreamConvertsRequest
- type StreamDisabledRequest
- type StreamLiveStatus
- type StreamLiveStatusFPS
- type StreamSaveasRequest
- type StreamSaveasResponse
- type StreamSnapshotRequest
- type StreamSnapshotResponse
- type UnbindDomainRequest
- type Validator
Constants ¶
const ( // APIHost 标准 API 服务器地址 APIHost = "pili.qiniuapi.com" // IAMAPIHost IAM(权限策略) API 服务器地址 IAMAPIHost = "pili-iam.qiniuapi.com" // APIHTTPScheme HTTP 模式 APIHTTPScheme = "http://" // APIHTTPSScheme HTTPS 模式 APIHTTPSScheme = "https://" // DefaultAppName 默认 AppName 名称 DefaultAppName = "pili" )
const ( // DomainPublishRTMP 推流域名 DomainPublishRTMP = "publishRtmp" // DomainLiveRTMP RTMP 播放域名 DomainLiveRTMP = "liveRtmp" // DomainLiveHLS HLS 播放域名 DomainLiveHLS = "liveHls" // DomainLiveHDL HDL 播放域名 DomainLiveHDL = "liveHdl" )
域名类型
const ( // FlowDefaultSelect 上下行流量默认查询字段 FlowDefaultSelect = "flow" // CodecDefaultSelect 转码使用量默认查询字段 CodecDefaultSelect = "duration" // NropDefaultSelect 鉴黄使用量默认查询字段 NropDefaultSelect = "count" )
const ( // SRTScheme SRT 协议头 SRTScheme = "srt" // SRTPort SRT 协议端口 // 截止目前,SRT 协议没有 IANA 官方约定的端口号 // 七牛采用 1935/UDP 作为 SRT 协议端口号 SRTPort = "1935" // SecurityTypeStaticKeyPart 静态鉴权密钥字段名 SecurityTypeStaticKeyPart = "key" // SecurityTypeExpiryTsPart 推流限时鉴权时间戳字段名 SecurityTypeExpiryTsPart = "expire" // SecurityTypeExpirySkTsPart 推流限时鉴权sk时间戳字段名 SecurityTypeExpirySkTsPart = "e" // SecurityTypeDynamicNoncePart 动态鉴权随机值字段名 SecurityTypeDynamicNoncePart = "nonce" // SecurityTypeTokenPart 鉴权签算字段名 // 用于 限时鉴权(expiry)、限时鉴权SK(expiry_sk)、动态鉴权(dynamic) SecurityTypeTokenPart = "token" )
const ( // SecurityTypeNull 未设置鉴权 SecurityTypeNull = "" // SecurityTypeNone 关闭鉴权 // 用于推流 URL 签算(直播鉴权)和播放 URL 签算(时间戳防盗链) // 强制关闭鉴权,域名级别鉴权不继承直播空间级别鉴权配置 SecurityTypeNone = "none" // SecurityTypeStatic 静态鉴权 // 用于推流 URL 签算(直播鉴权) SecurityTypeStatic = "static" // SecurityTypeExpiry 限时鉴权 // 用于推流 URL 签算(直播鉴权) SecurityTypeExpiry = "expiry" // SecurityTypeExpirySK 限时鉴权SK // 用于推流 URL 签算(直播鉴权) SecurityTypeExpirySK = "expiry_sk" // Deprecated: SecurityTypeDynamic 动态鉴权 // 用于推流 URL 签算(直播鉴权),该鉴权类型即将移除,不建议使用 SecurityTypeDynamic = "dynamic" // SecurityTypeTsStartMD5 时间戳防盗链开始时间限制 // 用于播放 URL 签算(时间戳防盗链) // 签算有效时间从 URL 的时间戳开始,直到超过有效时间(range)范围 SecurityTypeTsStartMD5 = "tsStartMD5" // SecurityTypeTsExpireMD5 时间戳防盗链结束时间限制 // 用于播放 URL 签算(时间戳防盗链) // 签算有效时间从当前时间开始,直到 URL 的时间戳为止 SecurityTypeTsExpireMD5 = "tsExpireMD5" )
const (
TagName = "validate"
)
Variables ¶
var ( ErrInvalidArgs = &client.ErrorInfo{Code: http.StatusBadRequest, Err: "invalid args"} ErrInvalidRule = &client.ErrorInfo{Code: http.StatusBadRequest, Err: "invalid rule"} ErrUnsupportedSecurityType = &client.ErrorInfo{Code: http.StatusBadRequest, Err: "unsupported security type"} )
Functions ¶
func RTMPPlayURL ¶
RTMPPlayURL 生成 RTMP 播放地址
func RTMPPublishURL ¶
RTMPPublishURL 生成 RTMP 推流地址
func SRTPublishURL ¶
SRTPublishURL 生成 SRT 推流地址
func SignPlayURL ¶
func SignPlayURL(playURL string, args SignPlayURLArgs) (string, error)
SignPlayURL 播放 URL 签算(时间戳防盗链) 支持鉴权规格为 - tsStartMD5: 时间戳防盗链开始时间限制 - tsExpireMD5: 时间戳防盗链结束时间限制
func SignPublishURL ¶
func SignPublishURL(publishURL string, args SignPublishURLArgs) (string, error)
SignPublishURL 推流 URL 签算(直播鉴权) 支持鉴权规格为 - static: 静态鉴权 - expiry: 限时鉴权 - expiry_sk: 限时鉴权SK - dynamic: 动态鉴权
Types ¶
type AccessLogOptions ¶
type AccessLogOptions struct {
// SaveBucket 存储空间
SaveBucket string `json:"saveBucket"`
// ExpireDays 过期天数
ExpireDays int `json:"expireDays"`
}
AccessLogOptions 配置
type BatchGetStreamLiveStatusRequest ¶
type BatchGetStreamLiveStatusRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Items 流列表
// 查询流列表数量不超过100
Items []string `json:"items" validate:"-"`
}
BatchGetStreamLiveStatusRequest 批量查询直播实时状态请求参数
type BatchGetStreamLiveStatusResponse ¶
type BatchGetStreamLiveStatusResponse struct {
// Items 流列表
Items []StreamLiveStatus `json:"items"`
}
BatchGetStreamLiveStatusResponse 批量查询直播实时状态返回值
type BindDomainRequest ¶
type BindDomainRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Domain 域名
Domain string `json:"domain" validate:"required"`
// Type 域名类型
// 可选域名类型为
// - publishRtmp: RTMP 推流域名
// - liveRtmp: RTMP 播放域名
// - liveHls: HLS 播放域名
// - liveHdl: HDL 播放域名
Type string `validate:"required,oneof=publishRtmp liveRtmp liveHls liveHdl"`
}
BindDomainRequest 绑定域名请求参数
type BindVodDomainRequest ¶
type BindVodDomainRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// VodDomain 点播域名
VodDomain string `json:"vodDomain" validate:"required"`
}
BindVodDomainRequest 绑定点播域名请求参数
type DefaultDomain ¶
type DefaultDomain struct {
// Type 域名类型
Type string `json:"type"`
// Domain 域名
Domain string `json:"domain"`
}
DefaultDomain 默认域名
type DomainCallbackConfig ¶
type DomainCallbackConfig struct {
// Type 回调类型
// 可选回调类型为
// - 留空: 不开启回调功能
// - GET: 发送GET请求回调,请求参数携带在query中
// - FORM: 发送POST请求回调,请求参数携带在body中,Content-Type 为 application/x-www-form-urlencoded
// - JSON: 发送POST请求回调,请求参数携带在body中,Content-Type 为 application/json
Type string `json:"type"`
// URL 回调地址
// 支持魔法变量
URL string `json:"url"`
// Timeout 超时时间
// 与回调地址的 HTTP 连接超时时间,单位:秒
// 默认值为 2 秒,配置范围为 0~10 秒
Timeout int64 `json:"timeout"`
// Vars 请求参数
// 支持魔法变量,至少需要一组请求参数,规则解析出错误的会设置成空字段
Vars map[string]string `json:"vars"`
// RetryTimes 重试次数
// 可选范围 0~5 次
RetryTimes int `json:"retryTimes"`
// RetryInterval 重试间隔
// 可选范围 0~5 秒,单位:秒
RetryInterval int `json:"retryInterval"`
// SuccessCode 回调成功的 http code
// 为 0 表示通配
SuccessCode int `json:"successCode"`
// FailCode 回调失败的 http code
// 为 0 表示通配,当 SuccessCode 不为 0 的情况下生效
FailCode int `json:"failCode"`
}
DomainCallbackConfig 域名回调配置
type DomainIPLimit ¶
type DomainIPLimit struct {
// WhiteList 白名单
// 允许推拉流的 IP 列表,CIDR 类型
// 配置白名单后,黑名单列表将失效
WhiteList []string `json:"whitelist"`
// BlackList 黑名单
// 限制推拉流的 IP 列表,CIDR 类型
BlackList []string `json:"blacklist"`
}
DomainIPLimit IP 限制
type DomainPlaySecurity ¶
type DomainPlaySecurity struct {
// Type 防盗链类型
// 可选防盗链类型为
// - 留空: 默认类型,表示继承直播空间级别配置
// - none: 表示关闭鉴权
// - tsStartMD5: 有效时间从 TsPart 表示的时间戳开始,到 Range 秒后截止
// - tsExpireMD5: 有效时间从现在当前到 TsPart 表示的时间戳为止
Type string `json:"type"`
// Key1 主密钥
Key1 string `json:"key1"`
// Key2 副密钥
// 两个密钥将同时生效,便于线上业务替换密钥
Key2 string `json:"key2"`
// Range 有效时间
// 当 Type 为 "tsStartMD5" 时生效,单位:秒
Range int `json:"range"`
// Rule 签名规则
// 支持魔法变量的规则,最终签算结果为所有变量的md5
// - $(key): 密钥
// - $(path): URL 中的 path 部分
// - $(streamKey): URL 中的 hub/stream 部分
// - $(streamTitle): URL 中的 stream 部分
// - $(path_<number>): URL 中的 path 部分,<number> 表示 path 层级
// - $(_<query>): URL 中的 query 字段,举例: key1=val,魔法变量中使用 $(_key1) 表示 val
// 举例:
// 配置Rule为: $(key)$(path)$(_t)
// 魔法变量替换完成后: key/hub/streamTitle1634745600
// 对结果进行md5计算,最终签算值为:3bc26fe6b35f5c7efab87778c5b27993
Rule string `json:"rule"`
// Rule2 签名规则 2
// 两个签名规则将同时生效,便于线上业务更换签名规则
Rule2 string `json:"rule2"`
// TsPart 时间戳字段
// URL中表示时间戳的字段名
TsPart string `json:"tsPart"`
// TsBase 时间戳进制
// 可选进制格式为 2-36,即 2 进制到 36 进制,默认使用16进制
TsBase int `json:"tsBase"`
// SignPart 签名字段
// URL中表示token的字段名
SignPart string `json:"signPart"`
// GapDuration 时间误差值
// 针对 tsExpireMD5 生效,避免因签算方与服务器本地时间误差造成的鉴权失败
GapDuration int `json:"gapDuration"`
}
DomainPlaySecurity 时间戳防盗链配置
type DomainURLRewriteRule ¶
type DomainURLRewriteRule struct {
// Pattern 匹配规则
// 针对完整URL的正则表达式,形式如:(.+)/live/(.+)/playlist.m3u8
// 括号中的内容允许在 Replace 中使用${n}引用(n表示括号顺序)
Pattern string `json:"pattern" validate:"required"`
// Replace 改写规则
// 希望得到的改写结果,形式如:${1}/hub/${2}.m3u8
// 改写后的URL应符合七牛的直播URL规范: <scheme>://<domain>/<hub>/<stream>[<ext>]?<query>
Replace string `json:"replace" validate:"required"`
}
DomainURLRewriteRule URL 改写规则
type DomainUrlRewrite ¶
type DomainUrlRewrite struct {
// Rules 规则列表
Rules []DomainUrlRewriteItem `json:"rules"`
}
DomainUrlRewrite URL 改写规则配置
type DomainUrlRewriteItem ¶
type DomainUrlRewriteItem struct {
// Pattern 匹配规则
Pattern string `json:"pattern"`
// Replace 改写规则
Replace string `json:"replace"`
}
DomainUrlRewriteItem URL 改写规则项
type GetDomainInfoRequest ¶
type GetDomainInfoRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Domain 域名
Domain string `json:"-" validate:"required"`
}
GetDomainInfoRequest 查询域名信息请求参数
type GetDomainInfoResponse ¶
type GetDomainInfoResponse struct {
// Domain 域名
Domain string `json:"domain"`
// Type 域名类型
Type string `json:"type"`
// Cname CNAME
Cname string `json:"cname"`
// ConnectCallback 开播回调配置
ConnectCallback DomainCallbackConfig `json:"connectCallback"`
// DisconnectCallback 断播回调配置
DisconnectCallback DomainCallbackConfig `json:"disconnectCallback"`
// IPLimit IP 访问限制
IPLimit DomainIPLimit `json:"ipLimit"`
// PlaySecurity 时间戳防盗链配置
PlaySecurity DomainPlaySecurity `json:"playSecurity"`
// DisconnectDelay 断流延迟配置
// 单位:秒,针对直播流短时间内闪断重连的情况,不触发断流回调,避免因为短时间内频繁断流造成大量回调
DisconnectDelay int64 `json:"disconnectDelay"`
// UrlRewrite URL 改写规则
UrlRewrite DomainUrlRewrite `json:"urlRewrite"`
// CertEnable 是否配置 SSL 证书
CertEnable bool `json:"certEnable"`
// CertName 证书名称
CertName string `json:"certName"`
// Disable 域名是否为禁用状态
Disable bool `json:"disable"`
}
GetDomainInfoResponse 查询域名信息返回值
type GetDomainsListItem ¶
type GetDomainsListItem struct {
// Type 域名类型
Type string `json:"type"`
// Domain 域名
Domain string `json:"domain"`
// Cname CNAME
Cname string `json:"cname"`
// CertEnable 是否配置 SSL 证书
CertEnable bool `json:"certEnable"`
// CertName 证书名称
CertName string `json:"certName"`
}
GetDomainsListItem 查询域名列表项
type GetDomainsListRequest ¶
type GetDomainsListRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
}
GetDomainsListRequest 查询域名列表请求参数
type GetDomainsListResponse ¶
type GetDomainsListResponse struct {
// Domains 域名列表
Domains []GetDomainsListItem `json:"domains"`
}
GetDomainsListResponse 查询域名列表返回值
type GetHubInfoRequest ¶
type GetHubInfoRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
}
GetHubInfoRequest 查询直播空间信息请求参数
type GetHubInfoResponse ¶
type GetHubInfoResponse struct {
// Name 直播空间名称
Name string `json:"hubName"`
// CreatedAt 创建时间
// Unix 时间戳
CreatedAt int64 `json:"createdAt"`
// UpdatedAt 更新时间
// Unix 时间戳
UpdatedAt int64 `json:"updatedAt"`
// Domains 直播空间下的域名列表
Domains []HubDomain `json:"domains"`
// DefaultDomains 直播空间默认域名
DefaultDomains []DefaultDomain `json:"defaultDomains"`
// StorageBucket 存储 bucket
StorageBucket string `json:"storageBucket"`
// LiveDataExpireDays 存储过期时间
// 单位:天
LiveDataExpireDays int64 `json:"liveDataExpireDays"`
// PublishSecurity 推流鉴权方式
PublishSecurity string `json:"publishSecurity"`
// Nrop 鉴黄配置信息
Nrop NropArgs `json:"nrop"`
// PassiveCodecProfiles 被动转码配置
// 形式如:720p
PassiveCodecProfiles []string `json:"passiveCodecProfiles,omitempty"`
// Converts 主动转码配置
// 形式如:720p
Converts []string `json:"converts"`
// HlsPlus 是否开启 hls 低延迟
HlsPlus bool `json:"hlsPlus"`
// VodDomain 点播域名
VodDomain string `json:"vodDomain"`
// AccessLog 直播日志保存信息
AccessLog AccessLogOptions `json:"accesslog"`
// SnapshotInterval 直播封面的截图间隔
// 单位:秒
SnapshotInterval int `json:"snapshotInterval"`
}
GetHubInfoResponse 查询直播空间信息返回值
type GetHubListItem ¶
type GetHubListItem struct {
// Name 直播空间
Name string `json:"name"`
}
GetHubListItem 查询直播空间列表项
type GetHubListResponse ¶
type GetHubListResponse struct {
// Items 直播空间列表
Items []GetHubListItem `json:"items"`
}
GetHubListResponse 查询直播空间列表返回值
type GetStatCasterRequest ¶
type GetStatCasterRequest struct {
// 通用请求参数
GetStatCommonRequest
// Where 查询条件
// container 容器
// resolution 分辨率
Where map[string][]string `validate:"dive,keys,oneof=container resolution"`
// Select 查询值
// upflow 上行流量,单位:byte
// downflow 下行流量,单位:byte
// duration 使用时长,单位:秒
Select []string `validate:"required,dive,oneof=upflow downflow duration"`
}
GetStatCasterRequest 获取导播台使用量请求参数
type GetStatCodecRequest ¶
type GetStatCodecRequest struct {
// 通用请求参数
GetStatCommonRequest
// Where 查询条件
// hub 直播空间
// profile 转码规格
Where map[string][]string `validate:"dive,keys,oneof=hub profile"`
// Select 查询值
// duration 时长,单位:毫秒
Select []string `validate:"dive,eq=duration"`
}
GetStatCodecRequest 获取直播转码使用量请求参数
type GetStatCommonRequest ¶
type GetStatCommonRequest struct {
// Begin 开始时间
// 支持格式:20060102、20060102150405
Begin string `validate:"required,len=8|len=14"`
// End 结束时间
// 支持格式:20060102、20060102150405
// 超过当前时间,则以当前时间为准
// 时间范围为左闭右开区间
End string `validate:"len=8|len=14"`
// G 时间粒度
// 可选项 5min hour day month,部分接口仅支持部分粒度
G string `validate:"required,oneof=5min hour day month"`
}
GetStatCommonRequest 统计接口通用请求参数
type GetStatDownflowRequest ¶
type GetStatDownflowRequest struct {
// 通用请求参数
GetStatCommonRequest
// Where 查询条件
// hub 直播空间
// domain 域名
// area 区域 中国大陆(cn)、香港(hk)、台湾(tw)、亚太(apac)、美洲(am)、欧洲/中东/非洲(emea)
Where map[string][]string `validate:"dive,keys,oneof=hub domain area"`
// Select 查询值
// flow 流量,单位:byte,带宽可以从流量转换,公式为 带宽=流量*8/时间粒度,单位:bps
Select []string `validate:"dive,eq=flow"`
}
GetStatDownflowRequest 获取下行流量请求参数
type GetStatNropRequest ¶
type GetStatNropRequest struct {
// 通用请求参数
GetStatCommonRequest
// Where 查询条件
// hub 直播空间
// assured 鉴黄结果是否确定,true或false
Where map[string][]string `validate:"dive,keys,oneof=hub assured"`
// Select 查询值
// count 鉴黄次数
Select []string `validate:"dive,eq=count"`
}
GetStatNropRequest 获取直播鉴黄使用量请求参数
type GetStatPubRequest ¶
type GetStatPubRequest struct {
// 通用请求参数
GetStatCommonRequest
// Where 查询条件
// tp 状态
Where map[string][]string `validate:"dive,keys,eq=tp"`
// Select 查询值
// count 转推次数
// duration 转推时长,单位:毫秒
Select []string `validate:"required,dive,oneof=count duration"`
}
GetStatPubRequest 获取Pub服务使用量请求参数
type GetStatUpflowRequest ¶
type GetStatUpflowRequest struct {
// 通用请求参数
GetStatCommonRequest
// Where 查询条件
// hub 直播空间
// domain 域名
// area 区域 中国大陆(cn)、香港(hk)、台湾(tw)、亚太(apac)、美洲(am)、欧洲/中东/非洲(emea)
Where map[string][]string `validate:"dive,keys,oneof=hub domain area"`
// Select 查询值
// flow 流量,单位:byte,带宽可以从流量转换,公式为 带宽=流量*8/时间粒度,单位:bps
Select []string `validate:"dive,eq=flow"`
}
GetStatUpflowRequest 获取上行流量请求参数
type GetStreamBaseInfoRequest ¶
type GetStreamBaseInfoRequest struct {
// Hub 直播空间
Hub string `validate:"required"`
// Stream 流名
Stream string `validate:"required"`
}
GetStreamBaseInfoRequest 查询直播流信息请求参数
type GetStreamBaseInfoResponse ¶
type GetStreamBaseInfoResponse struct {
// CreatedAt 直播流创建时间
// Unix 时间戳,单位:秒
CreatedAt int64 `json:"createdAt"`
// UpdatedAt 直播流更新时间
// Unix 时间戳,单位:秒
UpdatedAt int64 `json:"updatedAt"`
// ExpireAt 直播流过期时间
// 默认流过期时间15天,Unix 时间戳,单位:秒
ExpireAt int64 `json:"expireAt"`
// DisabledTill 禁用结束时间
DisabledTill int `json:"disabledTill"`
// Converts 转码配置
Converts []string `json:"converts"`
// Watermark 是否开启水印
Watermark bool `json:"watermark"`
// PublishSecurity 推流鉴权类型
PublishSecurity string `json:"publishSecurity"`
// PublishKey 推流密钥
PublishKey string `json:"publishKey"`
// NropEnable 是否开启鉴黄
NropEnable bool `json:"nropEnable"`
}
GetStreamBaseInfoResponse 查询直播流信息返回值
type GetStreamHistoryItem ¶
type GetStreamHistoryItem struct {
// Start 推流开始时间
Start int64 `json:"start"`
// End 推流结束时间
End int64 `json:"end"`
// ClientIP 推流端IP
ClientIP string `json:"clientIP"`
// ServerIP 服务端IP
ServerIP string `json:"serverIP"`
}
GetStreamHistoryItem 查询直播流推流记录项
type GetStreamHistoryRequest ¶
type GetStreamHistoryRequest struct {
// Hub 直播空间
Hub string `validate:"required"`
// Stream 流名
Stream string `validate:"required"`
// Start 开始时间
// 单位:秒,默认为0
Start int64 `validate:"gte=0"`
// End 结束时间
// 单位:秒,默认为当前时间
End int64 `validate:"gte=0"`
}
GetStreamHistoryRequest 查询直播流推流记录请求参数
type GetStreamHistoryResponse ¶
type GetStreamHistoryResponse struct {
// Items 直播流推流记录列表
Items []GetStreamHistoryItem `json:"items"`
}
GetStreamHistoryResponse 查询直播流推流记录返回值
type GetStreamListRequest ¶
type GetStreamListRequest struct {
// Hub 直播空间
Hub string `validate:"required"`
// LiveOnly 只返回当前在线的流
LiveOnly bool `validate:"-"`
// Prefix 流名称前缀匹配
Prefix string `validate:"-"`
// Limit 返回值数量限制
Limit int `validate:"gte=0,lte=5000"`
// Marker 游标
// 从该位置开始返回
Marker string `validate:"-"`
}
GetStreamListRequest 查询直播流列表请求参数
type GetStreamLiveStatusRequest ¶
type GetStreamLiveStatusRequest struct {
// Hub 直播空间
Hub string `validate:"required"`
// Stream 流名
Stream string `validate:"required"`
}
GetStreamLiveStatusRequest 查询直播流实时信息请求参数
type GetStreamLiveStatusResponse ¶
type GetStreamLiveStatusResponse struct {
// StreamLiveStatus 直播流实时状态
StreamLiveStatus
// 最近30秒内GOP最大值,单位:毫秒
MaxGop int `json:"maxGop"`
// 最近30秒内GOP平均值,单位:毫秒
AvgGop int `json:"avgGop"`
// VideoBitRate 视频码率,单位:bps
VideoBitRate int `json:"videoBitRate"`
// AudioBitRate 音频码率,单位:bps
AudioBitRate int `json:"audioBitRate"`
// 播放人数
PlayCount int64 `json:"playCount"`
// 播放带宽
Bandwidth int64 `json:"bandwidth"`
// 推流端所在地区
Location string `json:"location"`
// 推流端所在运营商
Isp string `json:"isp"`
}
GetStreamLiveStatusResponse 查询直播流实时信息返回值
type GetStreamsListResponse ¶
type GetStreamsListResponse struct {
// Items 流列表
Items []GetStreamsListResponseItem `json:"items"`
// Marker 游标
// 表示当前位置,若marker为空,表示遍历完成
Marker string `json:"marker"`
}
GetStreamsListResponse 查询直播流列表返回值
type GetStreamsListResponseItem ¶
type GetStreamsListResponseItem struct {
// Key 流名
Key string `json:"key"`
}
type GroupStatCasterRequest ¶
type GroupStatCasterRequest struct {
// 通用请求参数
GetStatCommonRequest
// Group 分组
Group string `validate:"required,oneof=container resolution"`
// Where 查询条件
// container 容器
// resolution 分辨率
Where map[string][]string `validate:"dive,keys,oneof=container resolution"`
// Select 查询值
// upflow 上行流量,单位:byte
// downflow 下行流量,单位:byte
// duration 使用时长,单位:秒
Select []string `validate:"required,dive,oneof=upflow downflow duration"`
}
GroupStatCasterRequest 分组获取导播台使用量请求参数
type GroupStatCodecRequest ¶
type GroupStatCodecRequest struct {
// 通用请求参数
GetStatCommonRequest
// Group 分组
Group string `validate:"required,oneof=hub profile"`
// Where 查询条件
// hub 直播空间
// profile 转码规格
Where map[string][]string `validate:"dive,keys,oneof=hub profile"`
// Select 查询值
// duration 时长,单位:毫秒
Select []string `validate:"dive,eq=duration"`
}
GroupStatCodecRequest 分组获取直播转码使用量请求参数
type GroupStatDownflowRequest ¶
type GroupStatDownflowRequest struct {
// 通用请求参数
GetStatCommonRequest
// Group 分组
Group string `validate:"required,oneof=hub domain area"`
// Where 查询条件
// hub 直播空间
// domain 域名
// area 区域 中国大陆(cn)、香港(hk)、台湾(tw)、亚太(apac)、美洲(am)、欧洲/中东/非洲(emea)
Where map[string][]string `validate:"dive,keys,oneof=hub domain area"`
// Select 查询值
// flow 流量,单位:byte,带宽可以从流量转换,公式为 带宽=流量*8/时间粒度,单位:bps
Select []string `validate:"dive,eq=flow"`
}
GroupStatDownflowRequest 分组获取下行流量请求参数
type GroupStatNropRequest ¶
type GroupStatNropRequest struct {
// 通用请求参数
GetStatCommonRequest
// Group 分组
Group string `validate:"required,oneof=hub assured"`
// Where 查询条件
// hub 直播空间
// assured 鉴黄结果是否确定,true或false
Where map[string][]string `validate:"dive,keys,oneof=hub assured"`
// Select 查询值
// count 鉴黄次数
Select []string `validate:"dive,eq=count"`
}
GroupStatNropRequest 分组获取直播鉴黄使用量请求参数
type GroupStatPubRequest ¶
type GroupStatPubRequest struct {
// 通用请求参数
GetStatCommonRequest
// Group 分组
Group string `validate:"required,eq=tp"`
// Where 查询条件
// tp 状态
Where map[string][]string `validate:"dive,keys,eq=tp"`
// Select 查询值
// count 转推次数
// duration 转推时长,单位:毫秒
Select []string `validate:"required,dive,oneof=count duration"`
}
GroupStatPubRequest 分组获取Pub服务使用量请求参数
type GroupStatUpflowRequest ¶
type GroupStatUpflowRequest struct {
// 通用请求参数
GetStatCommonRequest
// Group 分组
Group string `validate:"required,oneof=hub domain area"`
// Where 查询条件
// hub 直播空间
// domain 域名
// area 区域 中国大陆(cn)、香港(hk)、台湾(tw)、亚太(apac)、美洲(am)、欧洲/中东/非洲(emea)
Where map[string][]string `validate:"dive,keys,oneof=hub domain area"`
// Select 查询值
// flow 流量,单位:byte,带宽可以从流量转换,公式为 带宽=流量*8/时间粒度,单位:bps
Select []string `validate:"dive,eq=flow"`
}
GroupStatUpflowRequest 分组获取上行流量请求参数
type HubDomain ¶
type HubDomain struct {
// Type 域名类型
Type string `json:"type"`
// Domain 域名
Domain string `json:"domain"`
// Cname CNAME
Cname string `json:"cname"`
}
HubDomain 直播空间下的域名简要信息
type HubHlsplusRequest ¶
type HubHlsplusRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// HlsPlus 是否开启 hls 低延迟
HlsPlus bool `json:"hlsPlus" validate:"-"`
}
HubHlsplusRequest 修改直播空间 hls 低延迟配置请求参数
type HubPersistenceRequest ¶
type HubPersistenceRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// StorageBucket 存储空间
StorageBucket string `json:"storageBucket" validate:"required"`
// LiveDataExpireDays 存储过期时间
// 单位:天
LiveDataExpireDays uint `json:"liveDataExpireDays" validate:"required"`
}
HubPersistenceRequest 修改直播空间存储配置请求参数
type HubSecurityRequest ¶
type HubSecurityRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// PublishSecurity 鉴权方式
// 可选推流鉴权类型为
// expiry: 限时鉴权
// expiry_sk: 限时鉴权SK
PublishSecurity string `json:"publishSecurity" validate:"required"`
// PublishKey 密钥
PublishKey string `json:"publishKey" validate:"required"`
}
HubSecurityRequest 修改直播空间推流鉴权配置请求参数
type HubSnapshotRequest ¶
type HubSnapshotRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// SnapshotInterval 间隔时间
// 单位:秒
SnapshotInterval int `json:"snapshotInterval" validate:"required,gte=0"`
}
HubSnapshotRequest 修改直播空间封面配置请求参数
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 提供了 Qiniu PILI Service API 相关功能
func (*Manager) BatchGetStreamLiveStatus ¶
func (m *Manager) BatchGetStreamLiveStatus(ctx context.Context, req BatchGetStreamLiveStatusRequest) (*BatchGetStreamLiveStatusResponse, error)
BatchGetStreamLiveStatus 批量查询直播实时状态 POST /v2/hubs/<hub>/livestreams
func (*Manager) BindDomain ¶
func (m *Manager) BindDomain(ctx context.Context, req BindDomainRequest) error
BindDomain 绑定直播域名 POST /v2/hubs/<hub>/newdomains
func (*Manager) BindVodDomain ¶
func (m *Manager) BindVodDomain(ctx context.Context, req BindVodDomainRequest) error
BindVodDomain 绑定点播域名 POST /v2/hubs/<hub>/voddomain 点播域名用于访问直播空间对应的存储空间中的内容,例如回放、截图文件 请在存储空间控制台配置好可用域名后,绑定到直播空间 若未正确配置点播域名,可能无法正常使用回放录制、保存截图等功能
func (*Manager) GetDomainInfo ¶
func (m *Manager) GetDomainInfo(ctx context.Context, req GetDomainInfoRequest) (*GetDomainInfoResponse, error)
GetDomainInfo 查询域名信息 GET /v2/hubs/<hub>/domains/<domain>
func (*Manager) GetDomainsList ¶
func (m *Manager) GetDomainsList(ctx context.Context, req GetDomainsListRequest) (*GetDomainsListResponse, error)
GetDomainsList 查询域名列表 GET /v2/hubs/<hub>/domains
func (*Manager) GetHubInfo ¶
func (m *Manager) GetHubInfo(ctx context.Context, req GetHubInfoRequest) (*GetHubInfoResponse, error)
GetHubInfo 查询直播空间信息 GET /v2/hubs/<hub>
func (*Manager) GetHubList ¶
func (m *Manager) GetHubList(ctx context.Context) (*GetHubListResponse, error)
GetHubList 查询直播空间列表 GET /v2/hubs
func (*Manager) GetStatCaster ¶
func (m *Manager) GetStatCaster(ctx context.Context, req GetStatCasterRequest) ([]StatResponse, error)
GetStatCaster 获取导播台使用量 GET /statd/caster
func (*Manager) GetStatCodec ¶
func (m *Manager) GetStatCodec(ctx context.Context, req GetStatCodecRequest) ([]StatResponse, error)
GetStatCodec 获取直播转码使用量 GET /statd/codec
func (*Manager) GetStatDownflow ¶
func (m *Manager) GetStatDownflow(ctx context.Context, req GetStatDownflowRequest) ([]StatResponse, error)
GetStatDownflow 获取下行流量 GET /statd/downflow
func (*Manager) GetStatNrop ¶
func (m *Manager) GetStatNrop(ctx context.Context, req GetStatNropRequest) ([]StatResponse, error)
GetStatNrop 获取直播鉴黄使用量 GET /statd/nrop
func (*Manager) GetStatPub ¶
func (m *Manager) GetStatPub(ctx context.Context, req GetStatPubRequest) ([]StatResponse, error)
GetStatPub 获取Pub服务使用量 GET /statd/pub
func (*Manager) GetStatUpflow ¶
func (m *Manager) GetStatUpflow(ctx context.Context, req GetStatUpflowRequest) ([]StatResponse, error)
GetStatUpflow 获取上行流量 GET /statd/upflow
func (*Manager) GetStreamBaseInfo ¶
func (m *Manager) GetStreamBaseInfo(ctx context.Context, req GetStreamBaseInfoRequest) (*GetStreamBaseInfoResponse, error)
GetStreamBaseInfo 查询直播流信息 GET v2/hubs/<hub>/streams/<EncodedStreamTitle>
func (*Manager) GetStreamHistory ¶
func (m *Manager) GetStreamHistory(ctx context.Context, req GetStreamHistoryRequest) (*GetStreamHistoryResponse, error)
GetStreamHistory 查询直播流推流记录 GET /v2/hubs/<hub>/streams/<EncodedStreamTitle>/historyactivity?start=<Start>&end=<End>
func (*Manager) GetStreamLiveStatus ¶
func (m *Manager) GetStreamLiveStatus(ctx context.Context, req GetStreamLiveStatusRequest) (*GetStreamLiveStatusResponse, error)
GetStreamLiveStatus 查询直播流实时信息 GET v2/hubs/<hub>/streams/<EncodedStreamTitle>/live
func (*Manager) GetStreamsList ¶
func (m *Manager) GetStreamsList(ctx context.Context, req GetStreamListRequest) (*GetStreamsListResponse, error)
GetStreamsList 查询直播流列表 GET /v2/hubs/<Hub>/streams?liveonly=<true>&prefix=<Prefix>&limit=<Limit>&marker=<Marker>
func (*Manager) GroupStatCaster ¶
func (m *Manager) GroupStatCaster(ctx context.Context, req GroupStatCasterRequest) ([]StatGroupResponse, error)
GroupStatCaster 分组获取导播台使用量 GET /statd/caster
func (*Manager) GroupStatCodec ¶
func (m *Manager) GroupStatCodec(ctx context.Context, req GroupStatCodecRequest) ([]StatGroupResponse, error)
GroupStatCodec 分组获取直播转码使用量 GET /statd/codec
func (*Manager) GroupStatDownflow ¶
func (m *Manager) GroupStatDownflow(ctx context.Context, req GroupStatDownflowRequest) ([]StatGroupResponse, error)
GroupStatDownflow 分组获取下行流量 GET /statd/downflow
func (*Manager) GroupStatNrop ¶
func (m *Manager) GroupStatNrop(ctx context.Context, req GroupStatNropRequest) ([]StatGroupResponse, error)
GroupStatNrop 分组获取直播鉴黄使用量 GET /statd/nrop
func (*Manager) GroupStatPub ¶
func (m *Manager) GroupStatPub(ctx context.Context, req GroupStatPubRequest) ([]StatGroupResponse, error)
GroupStatPub 分组获取Pub服务使用量 GET /statd/pub
func (*Manager) GroupStatUpflow ¶
func (m *Manager) GroupStatUpflow(ctx context.Context, req GroupStatUpflowRequest) ([]StatGroupResponse, error)
GroupStatUpflow 分组获取上行流量 GET /statd/upflow
func (*Manager) HubHlsplus ¶
func (m *Manager) HubHlsplus(ctx context.Context, req HubHlsplusRequest) error
HubHlsplus 修改直播空间 hls 低延迟配置 POST /v2/hubs/<hub>/hlsplus
func (*Manager) HubPersistence ¶
func (m *Manager) HubPersistence(ctx context.Context, req HubPersistenceRequest) error
HubPersistence 修改直播空间存储配置 POST /v2/hubs/<hub>/persistence
func (*Manager) HubSecurity ¶
func (m *Manager) HubSecurity(ctx context.Context, req HubSecurityRequest) error
HubSecurity 修改直播空间推流鉴权配置 POST /v2/hubs/<hub>/security
func (*Manager) HubSnapshot ¶
func (m *Manager) HubSnapshot(ctx context.Context, req HubSnapshotRequest) error
HubSnapshot 修改直播空间封面配置 POST /v2/hubs/<hub>/snapshot
func (*Manager) SetDomainCert ¶
func (m *Manager) SetDomainCert(ctx context.Context, req SetDomainCertRequest) error
SetDomainCert 修改域名证书配置 POST /v2/hubs/<hub>/domains/<domain>/cert
func (*Manager) SetDomainURLRewrite ¶
func (m *Manager) SetDomainURLRewrite(ctx context.Context, req SetDomainURLRewriteRequest) error
SetDomainURLRewrite 修改域名改写规则配置 POST /v2/hubs/<hub>/domains/<domain>/urlrewrite 可根据业务需求自定义推拉流URL 改写后的URL应符合七牛的直播URL规范: <scheme>://<domain>/<hub>/<stream>[.<ext>]?<query> 举例 匹配规则: (.+)/live/(.+)/playlist.m3u8 改写规则: ${1}/hub/${2}.m3u8 请求URL: https://live.qiniu.com/live/stream01/playlist.m3u8 ; 改写URL: https://live.qiniu.com/hub/stream01.m3u8 请求URL: https://live.qiniu.com/live/stream01.m3u8 ; 与规则不匹配,不做改写
func (*Manager) StreamConverts ¶
func (m *Manager) StreamConverts(ctx context.Context, req StreamConvertsRequest) error
StreamConverts 修改直播流转码配置 POST /v2/hubs/<hub>/streams/<EncodedStreamTitle>/converts
func (*Manager) StreamDisable ¶
func (m *Manager) StreamDisable(ctx context.Context, req StreamDisabledRequest) error
StreamDisable 禁用直播流 POST /v2/hubs/<hub>/streams/<EncodedStreamTitle>/disabled
func (*Manager) StreamSaveas ¶
func (m *Manager) StreamSaveas(ctx context.Context, req StreamSaveasRequest) (*StreamSaveasResponse, error)
StreamSaveas 录制直播回放 POST /v2/hubs/<hub>/streams/<EncodedStreamTitle>/saveas
func (*Manager) StreamSnapshot ¶
func (m *Manager) StreamSnapshot(ctx context.Context, req StreamSnapshotRequest) (*StreamSnapshotResponse, error)
StreamSnapshot 保存直播截图 POST /v2/hubs/<hub>/streams/<EncodedStreamTitle>/snapshot
func (*Manager) UnbindDomain ¶
func (m *Manager) UnbindDomain(ctx context.Context, req UnbindDomainRequest) error
UnbindDomain 解绑直播域名 DELETE /v2/hubs/<hub>/domains/<domain>
type ManagerConfig ¶
type ManagerConfig struct {
// AppName 用户自定义APP名称
// 命名规则遵循 [A-Za-z0-9_\ \-\.]*
// AppName 将在发送HTTP请求的User-Agent中体现
// 留空即使用默认值,默认 AppName 名称为 `pili`
AppName string
// APIHost 访问API的地址
// 标准账户 和 IAM(权限策略)账户 对应的 Host 不同,注意区分
// 留空即使用默认值,默认 APIHost 为 `pili.qiniuapi.com`
APIHost string
// APIHTTPScheme 访问API使用的HTTP模式
// 支持 APIHTTPScheme / APIHTTPSScheme 两种模式
// 留空即使用默认值,默认使用 `http://`
APIHTTPScheme string
// AccessKey 访问密钥
// 密钥对由 AccessKey(访问密钥) 和 SecretKey(安全密钥) 组成
// 每一个七牛账户最多拥有两对密钥,在七牛控制台 个人中心 - 密钥管理 中获取
// 密钥对用于API鉴权,会在HTTP请求的 Header Authorization 中携带鉴权签算信息
// 必填参数
AccessKey string
// SecretKey 安全密钥
// 必填参数
SecretKey string
// Transport 访问控制
// 支持外部传入自定义RoundTripper,用于HTTP代理/Context/超时控制等逻辑
// 留空即使用默认值,默认使用 http.DefaultTransport
Transport http.RoundTripper
}
ManagerConfig 构建Manager的参数配置
type NropArgs ¶
type NropArgs struct {
// Enable 是否开启直播空间级别鉴黄功能
Enable bool `json:"enable"`
// Interval 截帧间隔
// 每个流隔多久进行截帧并鉴黄,单位:秒
Interval int `json:"interval"`
// NotifyURL 回调 URL
NotifyURL string `json:"notifyURL"`
// NotifyRate 通知阈值
// 鉴黄结果阈值表示AI模型判断当前直播画面有多大的概率涉黄
// 当鉴黄结果阈值大于或等于通知阈值时,将发送回调信息到回调URL
NotifyRate float64 `json:"notifyRate"`
}
NropArgs 鉴黄配置
type SetDomainCertRequest ¶
type SetDomainCertRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Domain 域名
Domain string `json:"-" validate:"required"`
// CertName 证书名称
// 需要将证书配置到七牛 CDN 服务中
// 证书配置地址: https://portal.qiniu.com/certificate/ssl
CertName string `json:"certName" validate:"required"`
}
SetDomainCertRequest 修改域名证书配置请求参数
type SetDomainURLRewriteRequest ¶
type SetDomainURLRewriteRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Domain 域名
Domain string `json:"-" validate:"required"`
// Rules URL 改写规则列表
Rules []DomainURLRewriteRule `json:"rules" validate:"-"`
}
SetDomainURLRewriteRequest 修改域名改写规则配置请求参数
type SignPlayURLArgs ¶
type SignPlayURLArgs struct {
// SecurityType 鉴权类型
// 支持鉴权类型为
// - tsStartMD5 时间戳防盗链开始时间限制
// - tsExpireMD5 时间戳防盗链结束时间限制
SecurityType string
// Key 密钥
Key string
// Timestamp 时间戳
// 单位:秒
// 鉴权类型为 tsStartMD5 时,表示鉴权开始时间
// 鉴权类型为 tsExpireMD5 时,表示鉴权结束时间
Timestamp int64
// Rule 签名规则
// 支持魔法变量的规则,最终签算结果为所有变量的md5
// - $(key): 密钥
// - $(path): URL 中的 path 部分
// - $(streamKey): URL 中的 hub/stream 部分
// - $(streamTitle): URL 中的 stream 部分
// - $(path_<number>): URL 中的 path 部分,<number> 表示 path 层级
// - $(_<query>): URL 中的 query 字段,举例: key1=val,魔法变量中使用 $(_key1) 表示 val
// 举例:
// 配置Rule为: $(key)$(path)$(_t)
// 魔法变量替换完成后: key/hub/streamTitle1634745600
// 对结果进行md5计算,最终签算值为:3bc26fe6b35f5c7efab87778c5b27993
Rule string
// TsPart 时间戳字段
// URL 中表示时间戳的字段名
TsPart string
// TsBase 时间戳进制
// 可选进制格式为 2-36,即 2 进制到 36 进制,默认使用 16 进制
TsBase int
// SignPart 签名字段
// URL 中表示 token 的字段名
SignPart string
}
SignPlayURLArgs 播放 URL 签算(时间戳防盗链)请求参数
type SignPublishURLArgs ¶
type SignPublishURLArgs struct {
// SecurityType 鉴权类型
SecurityType string
// PublishKey 推流鉴权秘钥
// 静态鉴权(static)、限时鉴权(expiry)、动态鉴权(dynamic) 类型必要参数
PublishKey string
// ExpireAt 过期时间
// 签算URL过期时间,单位:秒
// 限时鉴权(expiry)、限时鉴权SK(expiry_sk) 类型必要参数
ExpireAt int64
// Nonce 随机数
// 要求每次推流请求的nonce值需要大于上一次推流请求的nonce值
// 动态鉴权(dynamic) 鉴权类型必要参数
Nonce int
// AccessKey 访问密钥
// 限时鉴权SK(expiry_sk) 类型必要参数
AccessKey string
// SecretKey 安全密钥
// 限时鉴权SK(expiry_sk) 类型必要参数
SecretKey string
}
SignPublishURLArgs 推流 URL 签算(直播鉴权)请求参数
type StatGroupResponse ¶
type StatGroupResponse struct {
// Time 时间
Time time.Time `json:"time"`
// Values 数据
// 形式如:"values":{"SD":{"duration":4527162977}},其中"SD"对应Group项,"duration"对应Select项
Values map[string]map[string]int `json:"values"`
}
StatGroupResponse 分组统计返回值
type StatResponse ¶
type StatResponse struct {
// Time 时间
Time time.Time `json:"time"`
// Values 数据
// 形式如:"values":{"flow":4527162977},其中"flow"对应select项
Values map[string]int `json:"values"`
}
StatResponse 统计返回值
type StreamConvertsRequest ¶
type StreamConvertsRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Stream 流名
Stream string `json:"-" validate:"required"`
// Converts 转码配置
Converts []string `json:"converts" validate:"-"`
}
StreamConvertsRequest 修改直播流转码配置请求参数
type StreamDisabledRequest ¶
type StreamDisabledRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Stream 流名
Stream string `json:"-" validate:"required"`
// DisabledTill 禁用结束时间
// Unix 时间戳,单位:秒
// 特殊值 -1 表示永久禁用;0 解除禁用
DisabledTill int `json:"disabledTill" validate:"-"`
// DisablePeriodSecond 禁用时长
// 单位:秒
// 当 DisabledTill 为0时,DisablePeriodSecond 参数生效
DisablePeriodSecond int `json:"disablePeriodSecond" validate:"gte=0"`
}
StreamDisabledRequest 禁用直播流请求参数
type StreamLiveStatus ¶
type StreamLiveStatus struct {
// StartAt 推流开始时间
// Unix 时间戳,单位:秒
StartAt int64 `json:"startAt"`
// ClientIP 推流端IP
ClientIP string `json:"clientIP"`
// ServerIP 服务端IP
ServerIP string `json:"serverIP"`
// BPS 推流码率
BPS int `json:"bps"`
// FPS 帧率
FPS StreamLiveStatusFPS `json:"fps"`
// Key 流名
Key string `json:"key,omitempty"`
}
StreamLiveStatus 直播流实时状态
type StreamLiveStatusFPS ¶
type StreamLiveStatusFPS struct {
// Audio 音频帧率
Audio int `json:"audio"`
// Video 视频帧率
Video int `json:"video"`
// Data metadata帧率
Data int `json:"data"`
}
StreamLiveStatusFPS 流实时帧率
type StreamSaveasRequest ¶
type StreamSaveasRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Stream 流名
Stream string `json:"-" validate:"required"`
// Start 开始时间
// Unix 时间戳,单位:秒
Start int64 `json:"start" validate:"gte=0"`
// End 结束时间
// Unix 时间戳,单位:秒,默认为当前时间
End int64 `json:"end" validate:"gte=0"`
// Fname 文件名
// 为空时会随机生成一个文件名
Fname string `json:"fname" validate:"-"`
// Format 文件格式
// 可选文件格式为
// - m3u8: HLS格式,默认值
// - flv: FLV格式,将回放切片转封装为单个flv文件,异步模式
// - mp4: MP4格式,将回放切片转封装为单个mp4文件,异步模式
// 异步模式下,生成回放文件需要一定时间
Format string `json:"format" validate:"-"`
// Pipeline 异步模式时,指定数据处理的队列
// 可以将优先级较高的任务配置到独立的队列中进行执行
// 参考文档:https://developer.qiniu.com/dora/kb/2500/streaming-media-queue-about-seven-cows
Pipeline string `json:"pipeline" validate:"-"`
// Notify 回调地址
// 异步模式完成任务后的回调通知地址,不指定表示不做回调
Notify string `json:"notify" validate:"-"`
// ExpireDays 切片文件的生命周期
// - 0: 默认值,表示修改ts文件生命周期为永久保存
// - >0: 表示修改ts文件的的生命周期为 ExpireDays 参数值
// - -1: 表示不修改ts文件的expire属性,可显著提升接口响应速度
ExpireDays int `json:"expireDays" validate:"-"`
// PersistentDeleteAfterDays 生成文件的生命周期
// - 0: 默认值,表示生成文件(m3u8/flv/mp4)永久保存
// - >0: 表示生成文件(m3u8/flv/mp4)的生命周期为 PersistentDeleteAfterDays 参数值
// m3u8文件只有当ExpireDays为-1时生效
PersistentDeleteAfterDays int `json:"persistentDeleteAfterDays" validate:"-"`
// FirstTsType 过滤ts切片文件类型
// 部分非标准的直播流,在推流初期缺少视频帧或音频帧,过滤功能可以剔除这部分切片
// - 0: 默认值,不做过滤
// - 1: 第一个ts切片需要是纯视频类型,不符合预期的ts切片将被跳过
// - 2: 第一个ts切片需要是纯音频类型,不符合预期的ts切片将被跳过
// - 3: 第一个ts切片需要是音视频类型,不符合预期的ts切片将被跳过
FirstTsType byte `json:"firstTsType" validate:"-"`
}
StreamSaveasRequest 录制直播回放请求参数
type StreamSaveasResponse ¶
type StreamSaveasResponse struct {
// Fname 文件名
Fname string `json:"fname"`
// Start 开始时间
// Unix 时间戳,单位:秒
Start int64 `json:"start"`
// End 结束时间
// Unix 时间戳,单位:秒
End int64 `json:"end"`
// PersistentID 异步任务ID
PersistentID string `json:"persistentID"`
}
StreamSaveasResponse 录制直播回放返回值
type StreamSnapshotRequest ¶
type StreamSnapshotRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Stream 流名
Stream string `json:"-" validate:"required"`
// Time 截图时间
// Unix 时间戳,单位:秒,不指定则为当前时间
Time int `json:"time" validate:"-"`
// Fname 文件名
// 不指定系统会随机生成
Fname string `json:"fname" validate:"-"`
// Format 文件格式
// 默认为jpg,支持选择jpg/png
Format string `json:"format" validate:"-"`
// Pipeline 异步模式时,指定数据处理的队列
// 可以将优先级较高的任务配置到独立的队列中进行执行
// 参考文档:https://developer.qiniu.com/dora/kb/2500/streaming-media-queue-about-seven-cows
Pipeline string `json:"pipeline" validate:"-"`
// Notify 回调地址
// 若指定回调地址,则截图动作为异步模式
Notify string `json:"notify" validate:"-"`
// DeleteAfterDays 生命周期
// - 0: 默认值,表示截图文件永久保存,单位:天
DeleteAfterDays int `json:"deleteAfterDays" validate:"gte=0"`
}
StreamSnapshotRequest 保存直播截图请求参数
type StreamSnapshotResponse ¶
type StreamSnapshotResponse struct {
// Fname 文件名
Fname string `json:"fname"`
// PersistentID 异步任务ID
PersistentID string `json:"persistentID"`
}
StreamSnapshotResponse 保存直播截图返回值
type UnbindDomainRequest ¶
type UnbindDomainRequest struct {
// Hub 直播空间
Hub string `json:"-" validate:"required"`
// Domain 域名
Domain string `json:"-" validate:"required"`
}
UnbindDomainRequest 解绑域名请求参数