网站首页 > 易语言相关 > 网络相关源码 正文
没画框架 也没有发布功能 只有上传视频
发布就一个包 抓一下就行了
主要给大伙学习一下分段上传 模块就精易模块 自己导入就行
.版本 2 .支持库 spec .子程序 ixigua_upload, 逻辑型, , 上传成功返回真 .参数 Cookie, 文本型 .参数 filePath, 文本型, , 视频文件路径 .参数 vid, 文本型, 参考, 视频vid,上传成功后返回 .参数 msg, 文本型, 参考 .局部变量 url, 文本型 .局部变量 header, 文本型 .局部变量 data, 文本型 .局部变量 str, 文本型 .局部变量 json, 类_json .局部变量 accessKey, 文本型 .局部变量 uploadToken, 文本型 .局部变量 oid, 文本型 .局部变量 tos_host, 文本型 .局部变量 tos_sign, 文本型 .局部变量 hash, 文本型 .局部变量 key, 文本型 .局部变量 extra_param, 文本型 .局部变量 crc32, 文本型 .局部变量 token, 文本型 .局部变量 filedata, 字节集 .局部变量 fileSize, 长整数型 .局部变量 partCount, 整数型 .局部变量 partNumber, 整数型 .局部变量 partData, 字节集 .局部变量 uploadId, 文本型 .局部变量 crc32校验, 文本型 url = “https://studio.ixigua.com/api/upload/getAuthKey/?params=%7B%22type%22%3A%22video%22%2C%22isLandscape%22%3Atrue%7D” header = “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” str = 编码_Utf8到Ansi (网页_访问_对象 (url, , , Cookie, , header)) json.解析 (str) .如果真 (json.取属性 (“status”).取数据文本 () ≠ “0”) msg = “accessKey获取失败!” 返回 (假) .如果真结束 accessKey = json.取通用属性 (“data.accessKey”) uploadToken = json.取通用属性 (“data.uploadToken”) url = “https://vas-lf-x.snssdk.com/video/openapi/v1/?action=GetVideoUploadParams&s=” + getS () + “&use_edge_node=1&file_size=289151” header = “Authorization: ” + uploadToken + #换行符 + “Content-Type: application/json” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Tt-Access: ” + accessKey str = 编码_Utf8到Ansi (网页_访问_对象 (url, , , , , header)) json.解析 (str) .如果真 (json.取属性 (“code”).取数据文本 () ≠ “2000”) msg = “oid获取失败!” 返回 (假) .如果真结束 tos_host = json.取通用属性 (“data['edge_nodes'][0]['tos_host']”) oid = json.取通用属性 (“data['edge_nodes'][0].oid”) tos_sign = json.取通用属性 (“data['edge_nodes'][0]['tos_sign']”) extra_param = json.取通用属性 (“data['edge_nodes'][0]['extra_param']”) vid = json.取通用属性 (“data['edge_nodes'][0].vid”) token = json.取通用属性 (“data['edge_nodes'][0].token”) filedata = 读入文件 (filePath) fileSize = 文件_取实际大小 (filePath) ' 5242880 .如果 (fileSize ≤ 5242880) ' 判断文件大小是否超过5M 超过5M需要分段上传 ' 不需要分段 url = “https://” + tos_host + “/” + oid crc32 = 到小写 (校验_取crc32 (filedata, 真)) header = “Authorization: ” + tos_sign + #换行符 + “Content-Crc32: ” + crc32 + #换行符 + “Content-Disposition: attachment; filename=” + #引号 + “undefined” + #引号 + #换行符 + “Content-Type: application/octet-stream” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, , , , header, , , , filedata)) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 hash = json.取通用属性 (“payload.hash”) key = json.取通用属性 (“payload.key”) .否则 ' 需要分段上传 url = “https://” + tos_host + “/” + oid + “?uploads” data = “------WebKitFormBoundaryb5z6D2ACHhHcmMpa--” header = “Authorization: ” + tos_sign + #换行符 + “Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryb5z6D2ACHhHcmMpa” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, data, , , header)) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 uploadId = json.取通用属性 (“payload.uploadID”) .如果 (fileSize % 5242880 > 0) partCount = 取整 (fileSize ÷ 5242880) + 1 .否则 partCount = 取整 (fileSize ÷ 5242880) .如果结束 .计次循环首 (partCount, partNumber) partData = 字节集_取指定位置字节集 (filedata, (partNumber - 1) × 5242880, 5242880) crc32 = 到小写 (校验_取crc32 (partData, 真)) url = “https://” + tos_host + “/” + oid + “?partNumber=” + 到文本 (partNumber) + “&uploadID=” + uploadId header = “Authorization: ” + tos_sign + #换行符 + “Content-Crc32: ” + crc32 + #换行符 + “Content-Disposition: attachment; filename=” + #引号 + “undefined” + #引号 + #换行符 + “Content-Length: 289151” + #换行符 + “Content-Type: application/octet-stream” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, , , , header, , , , partData)) 调试输出 (partNumber, crc32, str) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 crc32校验 = crc32校验 + 到文本 (partNumber) + “:” + crc32 + “,” .计次循环尾 () crc32校验 = 取文本左边 (crc32校验, 取文本长度 (crc32校验) - 1) 调试输出 (crc32校验) url = “https://” + tos_host + “/” + oid + “?uploadID=” + uploadId header = “Authorization: ” + tos_sign + #换行符 + “Content-Type: application/octet-stream” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Storage-U: ” str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, crc32校验, , , header)) json.解析 (str) .如果真 (json.取属性 (“error.code”).取数据文本 () ≠ “200”) msg = json.取通用属性 (“error.message”) 返回 (假) .如果真结束 hash = json.取通用属性 (“payload.hash”) key = json.取通用属性 (“payload.key”) .如果结束 url = “https://vas-lf-x.snssdk.com/video/openapi/v1/?action=UpdateVideoUploadInfos&” + extra_param header = “Authorization: ” + uploadToken + #换行符 + “Content-Type: application/json” + #换行符 + “Origin: https://studio.ixigua.com” + #换行符 + “Referer: https://studio.ixigua.com/upload” + #换行符 + “User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36” + #换行符 + “X-Tt-Access: ” + accessKey data = 子文本替换 (“{|vid|:|” + vid + “|,|oid|:|” + oid + “|,|token|:|” + token + “|,|poster_ss|:0,|is_exact_poster|:false,|user_reference|:||}”, “|”, #引号, , , 真) str = 编码_Utf8到Ansi (网页_访问_对象 (url, 1, data, , , header)) 调试输出 (str) json.解析 (str) .如果真 (json.取属性 (“code”).取数据文本 () ≠ “2000”) msg = json.取通用属性 (“message”) 返回 (假) .如果真结束 vid = json.取通用属性 (“data.vid”) msg = “success” 返回 (真)
@pwd
猜你喜欢
- 2025-01-03 夸克网盘扫码登录+账号信息查询源码
- 2024-09-13 精易web浏览器采集例子 dd373游戏网
- 2024-09-12 Brotli (br)压缩/解压动态库调用方法,支持进度压缩/解压
- 2024-09-11 QQ空间二维码登录源码
- 2024-04-07 最新NT框架可用QQ群验证
- 2024-03-21 蓝奏云直链解析纯协议源码
- 2024-03-20 基于E2EE的无状态认证JsonWebToken算法、常用Web算法模块
- 2024-03-18 YoLo8本地cpu识别源码
- 2024-03-16 搜索引擎 下拉关键词例子 支持百d\搜狗\必应\搜狗手机版
- 2024-03-15 ZIP解压缩模块源码
你 发表评论:
欢迎- 百度站内搜索
- 关注微信公众号
- 网站分类
-
- 网站公告
- 电子书书籍
- 程序员工具箱
- 编程工具
- 易语言相关
- 网络相关源码
- 图形图像源码
- 系统工具源码
- 易语言模块源码
- 易语言支持库
- 数据库类源码
- 易语言例程
- 易语言游戏开发
- 易语言模块
- 多媒体类源码
- 易语言资源网
- 易语言视频教程
- JS分析教程
- 易语言图文教程
- 易语言常见问题及笔记
- 工具源码
- 易语言版本
- 网络编程
- javascript
- PHP编程
- html
- 正则表达式
- 面试题
- nodejs
- 其它综合
- 脚本专栏
- python
- 按键精灵相关
- 按键精灵图文教程
- 按键精灵视频教程
- 按键精灵Q语言
- 按键精灵安卓版
- golang
- 游戏安全
- 火山相关
- 火山安卓软件
- 火山常见问题及笔记
- 火山安卓源码
- 火山视频教程
- 火山PC版本下载
- 火山PC视窗例程
- 互联网那些事
- 引流推广
- 项目揭秘
- 网络营销
- 营销软件
- QQ营销软件
- 娱乐软件
- 机器人插件
- 培训教程
- 技术教程
- 活动线报
- 数据库
- Redis
- Access
- MongoDB
- Mysql
- 问答
- 其它
- 易语言
- 需求
- 在线教程
- 多线程培训班
- 觅风易语言教程
- 模拟系列教程
- 集中营易语言教程
- 历史数据
- 随机tag
本文暂时没有评论,来添加一个吧(●'◡'●)