github.com/qiniu/go-sdk/v7@v7.27.0/pili/url_model.go (about) 1 package pili 2 3 const ( 4 5 // SRTScheme SRT 协议头 6 SRTScheme = "srt" 7 8 // SRTPort SRT 协议端口 9 // 截止目前,SRT 协议没有 IANA 官方约定的端口号 10 // 七牛采用 1935/UDP 作为 SRT 协议端口号 11 SRTPort = "1935" 12 13 // SecurityTypeStaticKeyPart 静态鉴权密钥字段名 14 SecurityTypeStaticKeyPart = "key" 15 16 // SecurityTypeExpiryTsPart 推流限时鉴权时间戳字段名 17 SecurityTypeExpiryTsPart = "expire" 18 19 // SecurityTypeExpirySkTsPart 推流限时鉴权sk时间戳字段名 20 SecurityTypeExpirySkTsPart = "e" 21 22 // SecurityTypeDynamicNoncePart 动态鉴权随机值字段名 23 SecurityTypeDynamicNoncePart = "nonce" 24 25 // SecurityTypeTokenPart 鉴权签算字段名 26 // 用于 限时鉴权(expiry)、限时鉴权SK(expiry_sk)、动态鉴权(dynamic) 27 SecurityTypeTokenPart = "token" 28 ) 29 30 const ( 31 // 鉴权类型 32 33 // SecurityTypeNull 未设置鉴权 34 SecurityTypeNull = "" 35 36 // SecurityTypeNone 关闭鉴权 37 // 用于推流 URL 签算(直播鉴权)和播放 URL 签算(时间戳防盗链) 38 // 强制关闭鉴权,域名级别鉴权不继承直播空间级别鉴权配置 39 SecurityTypeNone = "none" 40 41 // SecurityTypeStatic 静态鉴权 42 // 用于推流 URL 签算(直播鉴权) 43 SecurityTypeStatic = "static" 44 45 // SecurityTypeExpiry 限时鉴权 46 // 用于推流 URL 签算(直播鉴权) 47 SecurityTypeExpiry = "expiry" 48 49 // SecurityTypeExpirySK 限时鉴权SK 50 // 用于推流 URL 签算(直播鉴权) 51 SecurityTypeExpirySK = "expiry_sk" 52 53 // Deprecated: SecurityTypeDynamic 动态鉴权 54 // 用于推流 URL 签算(直播鉴权),该鉴权类型即将移除,不建议使用 55 SecurityTypeDynamic = "dynamic" 56 57 // SecurityTypeTsStartMD5 时间戳防盗链开始时间限制 58 // 用于播放 URL 签算(时间戳防盗链) 59 // 签算有效时间从 URL 的时间戳开始,直到超过有效时间(range)范围 60 SecurityTypeTsStartMD5 = "tsStartMD5" 61 62 // SecurityTypeTsExpireMD5 时间戳防盗链结束时间限制 63 // 用于播放 URL 签算(时间戳防盗链) 64 // 签算有效时间从当前时间开始,直到 URL 的时间戳为止 65 SecurityTypeTsExpireMD5 = "tsExpireMD5" 66 ) 67 68 // SignPublishURLArgs 推流 URL 签算(直播鉴权)请求参数 69 type SignPublishURLArgs struct { 70 // SecurityType 鉴权类型 71 SecurityType string 72 73 // PublishKey 推流鉴权秘钥 74 // 静态鉴权(static)、限时鉴权(expiry)、动态鉴权(dynamic) 类型必要参数 75 PublishKey string 76 77 // ExpireAt 过期时间 78 // 签算URL过期时间,单位:秒 79 // 限时鉴权(expiry)、限时鉴权SK(expiry_sk) 类型必要参数 80 ExpireAt int64 81 82 // Nonce 随机数 83 // 要求每次推流请求的nonce值需要大于上一次推流请求的nonce值 84 // 动态鉴权(dynamic) 鉴权类型必要参数 85 Nonce int 86 87 // AccessKey 访问密钥 88 // 限时鉴权SK(expiry_sk) 类型必要参数 89 AccessKey string 90 91 // SecretKey 安全密钥 92 // 限时鉴权SK(expiry_sk) 类型必要参数 93 SecretKey string 94 } 95 96 // SignPlayURLArgs 播放 URL 签算(时间戳防盗链)请求参数 97 type SignPlayURLArgs struct { 98 // SecurityType 鉴权类型 99 // 支持鉴权类型为 100 // - tsStartMD5 时间戳防盗链开始时间限制 101 // - tsExpireMD5 时间戳防盗链结束时间限制 102 SecurityType string 103 104 // Key 密钥 105 Key string 106 107 // Timestamp 时间戳 108 // 单位:秒 109 // 鉴权类型为 tsStartMD5 时,表示鉴权开始时间 110 // 鉴权类型为 tsExpireMD5 时,表示鉴权结束时间 111 Timestamp int64 112 113 // Rule 签名规则 114 // 支持魔法变量的规则,最终签算结果为所有变量的md5 115 // - $(key): 密钥 116 // - $(path): URL 中的 path 部分 117 // - $(streamKey): URL 中的 hub/stream 部分 118 // - $(streamTitle): URL 中的 stream 部分 119 // - $(path_<number>): URL 中的 path 部分,<number> 表示 path 层级 120 // - $(_<query>): URL 中的 query 字段,举例: key1=val,魔法变量中使用 $(_key1) 表示 val 121 // 举例: 122 // 配置Rule为: $(key)$(path)$(_t) 123 // 魔法变量替换完成后: key/hub/streamTitle1634745600 124 // 对结果进行md5计算,最终签算值为:3bc26fe6b35f5c7efab87778c5b27993 125 Rule string 126 127 // TsPart 时间戳字段 128 // URL 中表示时间戳的字段名 129 TsPart string 130 131 // TsBase 时间戳进制 132 // 可选进制格式为 2-36,即 2 进制到 36 进制,默认使用 16 进制 133 TsBase int 134 135 // SignPart 签名字段 136 // URL 中表示 token 的字段名 137 SignPart string 138 }