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 // VideoBitRate 视频码率,单位:bps VideoBitRate int `json:"videoBitRate"` // AudioBitRate 音频码率,单位:bps AudioBitRate int `json:"audioBitRate"` }
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 解绑域名请求参数