网站首页 > 易语言相关 > 网络相关源码 正文
没画框架 也没有发布功能 只有上传视频
发布就一个包 抓一下就行了
主要给大伙学习一下分段上传 模块就精易模块 自己导入就行
.版本 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









本文暂时没有评论,来添加一个吧(●'◡'●)