趣头条自媒体平台上传视频Sign计算源码,源码调用了精易模块。
.版本 2 .支持库 spec .程序集 窗口程序集_启动窗口 .子程序 __启动窗口_创建完毕 .局部变量 GMT, 文本型 .局部变量 notification, 文本型 .局部变量 security_token, 文本型 .局部变量 ua, 文本型 .局部变量 file_id, 文本型 .局部变量 uploadId, 文本型 .局部变量 partNumber, 文本型, , , 第几个视频包 .局部变量 access_key_secret, 文本型 .局部变量 Sign, 文本型 access_key_secret = “DVD4gdsY1suWV6QFNNa2GomRGFcxTanzfX4Xr5ChpUYS” GMT = “Mon, 15 Jan 2018 17:21:55 GMT” notification = “eyJWb2QiOnsidXNlckRhdGEiOiI1MmYzNWJkMTM0YzU1Njk0NDZiYzhjZTBjOGIzYjBhZSJ9fQ==” security_token = “CAIS7gF1q6Ft5B2yfSjIrK3tGPfnnel2j6uoO2TJlVMHZ/1915Tprzz2IHpFfnFgAuAZsPsylGlV7/Yclq8qEsUfGxCclCT7UXMTo22beIPkl5Gfz95t0e+IewW6Dxr8w7WhAYHQR8/cffGAck3NkjQJr5LxaTSlWS7OU/TL8+kFCO4aRQ6ldzFLKc5LLw950q8gOGDWKOymP2yB4AOSLjIx5lMk1zgntv3nnZ3FukGAtjCglL9J/baWC4O/csxhMK14V9qIx+FsfsLDqnUKukISpPwm0/IbpGee44jNXUMw/RSKPu3O9dliPOvevTOyrQYuGoABemB/2CyhjbOKhdE/fRcIYZaNl8W6SbPGf9b2YXxBB1hvdKRgnId490NyFQ/3eMu8RC57FYWBwkIW68yrAN+P2HJsndfvFQXQf+QUSCZXVb2xnvYP8idyer8Tt5EnGZOoE+w5oBunIBKWmJZN3RzmD95ri2SsJdHhbqm1KfREyIg=” ua = “aliyun-sdk-js/4.11.2 Chrome 57.0.2987.98 32-bit on Windows Server 2008 R2 / 7 64-bit” file_id = “52f35bd134c5569446bc8ce0c8b3b0ae” Sign = Sign_计算 (Upid组包 (GMT, notification, security_token, ua, file_id), access_key_secret) 调试输出 (Sign) ' GMT = 时间_转为GMT格式1 (增减时间 (取现行时间 (), 6, -8)) ' 调试输出 (GMT) GMT = “Mon, 15 Jan 2018 17:45:34 GMT” partNumber = “2” uploadId = “B9F16AED378243E2A0F649B0EF524145” Sign = Sign_计算 (视频组包 (GMT, security_token, ua, file_id, partNumber, uploadId), access_key_secret) 调试输出 (Sign) .子程序 Upid组包, 字节集 .参数 GMT, 文本型, 可空 .参数 notification, 文本型, 可空 .参数 security_token, 文本型, 可空 .参数 ua, 文本型, 可空 .参数 file_id, 文本型, 可空 .局部变量 data, 字节集 ' data = “POST” + #换行符 + #换行符 + “video/mp4” + #换行符 + GMT + #换行符 + “x-oss-date:” + GMT + #换行符 + “x-oss-notification:” + notification + #换行符 + “x-oss-security-token:” + security_token + #换行符 + “x-oss-user-agent:” + ua + #换行符 + “/video-pro/video-input/” + file_id + “.mp4?uploads” data = { 80, 79, 83, 84, 10, 10, 118, 105, 100, 101, 111, 47, 109, 112, 52, 10 } + 到字节集 (GMT) + { 10, 120, 45, 111, 115, 115, 45, 100, 97, 116, 101, 58 } + 到字节集 (GMT) + { 10, 120, 45, 111, 115, 115, 45, 110, 111, 116, 105, 102, 105, 99, 97, 116, 105, 111, 110, 58 } + 到字节集 (notification) + { 10, 120, 45, 111, 115, 115, 45, 115, 101, 99, 117, 114, 105, 116, 121, 45, 116, 111, 107, 101, 110, 58 } + 到字节集 (security_token) + { 10, 120, 45, 111, 115, 115, 45, 117, 115, 101, 114, 45, 97, 103, 101, 110, 116, 58 } + 到字节集 (ua) + { 10, 47, 118, 105, 100, 101, 111, 45, 112, 114, 111, 47, 118, 105, 100, 101, 111, 45, 105, 110, 112, 117, 116, 47 } + 到字节集 (file_id) + { 46, 109, 112, 52, 63, 117, 112, 108, 111, 97, 100, 115 } 返回 (data) .子程序 视频组包, 字节集 .参数 GMT, 文本型 .参数 security_token, 文本型 .参数 ua, 文本型 .参数 file_id, 文本型 .参数 partNumber, 文本型, , 第几个视频包 .参数 uploadId, 文本型 .局部变量 data, 字节集 data = { 80, 85, 84, 10, 10, 118, 105, 100, 101, 111, 47, 109, 112, 52, 10 } + 到字节集 (GMT) + { 10, 120, 45, 111, 115, 115, 45, 100, 97, 116, 101, 58 } + 到字节集 (GMT) + { 10, 120, 45, 111, 115, 115, 45, 115, 101, 99, 117, 114, 105, 116, 121, 45, 116, 111, 107, 101, 110, 58 } + 到字节集 (security_token) + { 10, 120, 45, 111, 115, 115, 45, 117, 115, 101, 114, 45, 97, 103, 101, 110, 116, 58 } + 到字节集 (ua) + { 10, 47, 118, 105, 100, 101, 111, 45, 112, 114, 111, 47, 118, 105, 100, 101, 111, 45, 105, 110, 112, 117, 116, 47 } + 到字节集 (file_id) + { 46, 109, 112, 52, 63, 112, 97, 114, 116, 78, 117, 109, 98, 101, 114, 61 } + 到字节集 (partNumber) + { 38, 117, 112, 108, 111, 97, 100, 73, 100, 61 } + 到字节集 (uploadId) 返回 (data) .子程序 Sign_计算, 文本型 .参数 data, 字节集 .参数 key, 文本型 .局部变量 sha1, 字节集 sha1 = rstr_hmac_sha1 (data, 到字节集 (key)) 返回 (rstr2b64 (sha1))
趣头条+sign
x-oss-notification