阿里云Vod回调通知系统 部署腾讯云云函数

顺手写的

GitHub

用于阿里云VOD回调的云函数,可在腾讯云函数进行集成响应部署

目前仍在开发中……

我知道阿里云视频点播的回调放在腾讯云云函数很生草,但是我真的不会搞阿里云ServerLess那个API网关

欢迎好心人做阿里云ServerLess适配,我会去点个Star的!

目前bug

不论如何腾讯云云函数都会返回403,我实在不知道咋搞那个傻逼集成响应,求大佬PR!

Wikis

腾讯云云函数 API网关设置

  • 请求方法:POST 或 ANY

更推荐POST,因为限定了更安全

  • 发布环境:发布

这个不多解释

  • 鉴权方式:免鉴权

阿里云不会适配腾讯云SCF的鉴权规则的

  • 集成响应:启用

请务必启用!

  • 启用Base64编码:未启用
  • 异步响应:启用

建议启用,异步没坏处

代码配置

不动的话请不要碰functions.phpindex.php

请前往src/config.php修改相关配置信息

Server酱SendKey请前往 https://sct.ftqq.com/sendkey 获取

阿里云配置

回调请前往 https://vod.console.aliyun.com/#/settings/callback 设置

主体代码

function main_handler($event, $context) {
    $body = $event->body;
    $body = json_decode($body,1);
    $Ali_EventType = $body['EventType'];
    $Ali_EventTime = $body['EventTime'];
    $title = "";
    $describe = "";
    if(isset($Ali_EventType)){
        echo '检索到$Ali_EventType的值为'.$Ali_EventType."\n";
    }
    switch($Ali_EventType) {
        case "FileUploadComplete":
            $title = "[Aliyun视频点播]视频上传完成";
            $describe = "# 详细信息\n- 完成时间: ".str_replace(array('T','Z'),' ',$Ali_EventTime)."\n- 视频ID: ".$body['VideoId']."\n- 视频大小: ".getFileSize($body['Size']);
            break;
        case "TranscodeComplete":
            $title = "[Aliyun视频点播]视频转码完成";
            $describe = "# 详细信息\n";
            $describe .= "视频ID: ".$body['VideoId']."\n\n---\n";
            foreach($body['StreamInfos'] as $k) {
                $describe .= "### 转码ID: ".$k['JobId']."\n";
                $describe .= "- 转码时间:".((float)$k['Duration']/3600)."小时\n";
                $describe .= "- 画质: ".AliDuration[$k['Definition']]."\n";
                $describe .= "\n转码".($k['Status']=="success"?"成功":"失败")."\n";
                if($k['Status']!="success") {
                    $describe .= "- 错误码: ".$k['ErrorCode']."\n";
                    $describe .= "- 错误信息: ".$k['ErrorMessage']."\n";
                }
                $describe .= "\n---\n";
            }
            break;
        case "StreamTranscodeComplete":
            $title = "[Aliyun视频点播]单一清晰度视频转码完成";
            $describe = "# 详细信息\n";
            $describe .= "视频ID: ".$body['VideoId']." \n";
            $describe .= "转码ID: ".$body['JobId']." \n";
            $describe .= "- 转码时间:".((float)$body['Duration']/3600)."小时 \n";
            $describe .= "- 画质: ".AliDuration[$body['Definition']]." \n";
            $describe .= "\n转码".($body['Status']=="success"?"成功":"失败")." \n";
            if($body['Status']!="success") {
                $describe .= "- 错误码: ".$body['ErrorCode']." \n";
                $describe .= "- 错误信息: ".$body['ErrorMessage']." \n";
            }
            break;
    }
    $request = json_decode(sct_send($title,$describe));
    if($request->data->error !== "SUCCESS"){
        return [
            'isBase64Encoded' => false,
            'statusCode' => 400,
            'headers' => [
                "content-type" => "application/json",
                "access-control-allow-origin" => "*"
            ],
            'body' => [
                "state" => "Error",
                "code" => $request->code,
                "message" => $request->message
            ]
        ];
    } else {
        return [
            'isBase64Encoded' => false,
            'statusCode' => 200,
            'headers' => [
                "content-type" => "application/json",
                "access-control-allow-origin" => "*"
            ],
            'body' => $request
        ];
    }
}
阿里云Vod回调通知系统 部署腾讯云云函数 的发布基于协议 AHdark Blog License。如欲对此文章内容此文章转载、修改或行使任何超出预览和分享性质的行为,请参考此协议。
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇