为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 网络相关源码 正文

西瓜视频上传源码

三叶资源网 2021-04-20 17:23:57 网络相关源码 1806 ℃ 0 评论

没画框架 也没有发布功能 只有上传视频 

发布就一个包 抓一下就行了 

主要给大伙学习一下分段上传 模块就精易模块 自己导入就行

.版本 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


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

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

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
集中营易语言资料获取MD5源码纯组件美化界面UIQQ取本机cookie未闻花名皮肤模块BPL综合例程app协议变体型Android面试宝典6.0通信开源JS加密获取拼多多指定店铺商品详情源码快递查询工具源码安全CALL论坛回帖系统服务多线程黑月界面类手势验证码
最新评论