Ubuntu Server 16.04.1 LTS 64位
或Ubuntu Server 18.04.1 LTS 64位
。ubuntu@VM-69-2-ubuntu:~$ export SECRET_ID=AKxxxxxxxxxxxxxxxxxxxxxxx; export SECRET_KEY=xxxxxxxxxxxxxxxxxxxxx;export APPID=125xxxxxxx;git clone https://github.com/tencentyun/vod-server-demo.git ~/vod-server-demo; bash ~/vod-server-demo/installer/web_upload_scf_en.sh
[2020-04-25 23:03:20]开始安装 pip3。[2020-04-25 23:03:23]pip3 安装成功。[2020-04-25 23:03:23]开始安装腾讯云 SCF 工具。[2020-04-25 23:03:26]scf 安装成功。[2020-04-25 23:03:26]开始配置 scf。[2020-04-25 23:03:28]scf 配置完成。[2020-04-25 23:03:28]开始部署云点播客户端上传签名派发服务。[2020-04-25 23:03:40]云点播客户端上传签名派发服务部署完成。[2020-04-25 23:03:44]开始部署云点播 Web 上传页面。[2020-04-25 23:03:53]云点播 Web 上传页面部署完成。[2020-04-25 23:03:53]请在浏览器访问以下地址进行体验:https://service-xxxxxxxx-125xxxxxxx.gz.apigw.tencentcs.com/release/web_upload_html
https://service-xxxxxxxx-125xxxxxxx.gz.apigw.tencentcs.com/release/web_upload_html
)。[2020-04-25 17:18:44]警告:客户端上传签名派发服务测试不通过。
服务 | 云函数名 | 接口形式 | 返回内容 |
上传页面 | web_upload_html | HTTP GET | HTML 页面 |
上传签名派发 | ugc_upload_sign | HTTP POST | 上传签名 |
curl -d '' https://service-xxxxxxxx-125xxxxxxx.gz.apigw.tencentcs.com/release/ugc_upload_sign
VYapc9EYdoZLzGx0CglRW4N6kuhzZWNyZXRJZD1BS0lEZk5xMzl6dG5tYW1tVzBMOXFvZERia25hUjdZa0xPM1UmY3VycmVudFRpbWVTdGFtcD0xNTg4NTg4MDIzJmV4cGlyZVRpbWU9MTU4ODU4ODYyMyZyYW5kb209MTUwNzc4JmNsYXNzSWQ9MCZvbmVUaW1lVmFsaWQ9MCZ2b2RTdWJBcHBJZD0w
main_handler()
为入口函数。web_upload.html
文件的内容,即上传页面内容。html_file = open(HTML_FILE, encoding='utf-8')html = html_file.read()
config.json
中读取配置项。配置项是指您在编写 SCF 服务时无法预知,并且需要在部署过程中才能确定的内容。这些内容由部署脚本在部署上传页面服务之前实时写入到config.json
中。conf_file = open(CONF_FILE, encoding='utf-8')conf = conf_file.read()conf_json = json.loads(conf)
render_template
,根据上一步得到的配置信息对上传页面内容进行修改。配置项在config.json
文件中以"变量名": "取值"
的形式来表示;在web_upload.html
文件中以{变量名}
的形式来表示,修改时请替换为具体取值。详情如下:def render_template(html, keys):"""将 HTML 中的变量(形式为 ${变量名})替换为具体内容。"""for key, value in keys.items():html = html.replace("${" + key + "}", value)return html
变量名 | 含义 | 取值类型 | 取值来源 |
UGC_UPLOAD_SIGN_SERVER | 上传签名派发服务的 URL | String |
return {"isBase64Encoded": False,"statusCode": 200,"headers": {'Content-Type': 'text/html'},"body": html}
main_handler()
为入口函数。parse_conf_file()
,从config.json
文件中读取配置信息。配置项说明如下(详细参数请参见 客户端上传签名参数):字段 | 数据类型 | 功能 |
secret_id | String | API 密钥 |
secret_key | String | API 密钥 |
sign_expire_time | Integer | 签名有效时间,单位:秒 |
class_id | Integer | 视频上传完成后的分类 ID,0表示默认分类 |
otp | Integer | 签名是否单次有效 |
subappid | Integer | 是否上传到 云点播子应用 |
parse_source_context()
,从请求 Body 中解析sourceContext
字段,用于在 上传完成事件通知 中透传给事件通知接收服务(本 Demo 暂未使用事件通知)。generate_sign()
函数计算签名,详细算法请参见 客户端上传签名。return {"isBase64Encoded": False,"statusCode": 200,"headers": {"Content-Type": "text/plain; charset=utf-8","Access-Control-Allow-Origin": "*","Access-Control-Allow-Methods": "POST,OPTIONS"},"body": str(signature, 'utf-8')}
本页内容是否解决了您的问题?