尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

阿里云视频点播上传获取地址和凭证

阿里云视频点播上传获取地址和凭证
📅 发布时间:2026/7/19 16:55:19

第一步:下载sdk;

composer require alibabacloud/vod-20170321 3.9.1 composer require alibabacloud/tea-utils

第二步:在html里上传视频时,需要获取地址和上传凭证;

根据阿里云官方提供的源码示例:这里我只贴出一部分;

function createUploader () { var uploader = new AliyunUpload.Vod({ timeout: 60000, partSize: 1048576, parallel: 5, retryCount: 3, retryDuration: 2, region: 'cn-shanghai', userId: $('#userId').val(), localCheckpoint: true, //此参数是禁用服务端缓存 // 添加文件成功 addFileSuccess: function (uploadInfo) { console.log('addFileSuccess'); $('#authUpload').attr('disabled', false); $('#resumeUpload').attr('disabled', false); $('#status').text('添加文件成功, 等待上传...'); console.log("addFileSuccess: " + uploadInfo.file.name); }, // 开始上传 onUploadstarted: function (uploadInfo) { // 如果是 UploadAuth 上传方式, 需要调用 uploader.setUploadAuthAndAddress 方法 // 如果是 UploadAuth 上传方式, 需要根据 uploadInfo.videoId是否有值,调用点播的不同接口获取uploadauth和uploadAddress // 如果 uploadInfo.videoId 有值,调用刷新视频上传凭证接口,否则调用创建视频上传凭证接口 // 注意: 这里是测试 demo 所以直接调用了获取 UploadAuth 的测试接口, 用户在使用时需要判断 uploadInfo.videoId 存在与否从而调用 openApi // 如果 uploadInfo.videoId 存在, 调用 刷新视频上传凭证接口(https://help.aliyun.com/document_detail/55408.html) // 如果 uploadInfo.videoId 不存在,调用 获取视频上传地址和凭证接口(https://help.aliyun.com/document_detail/55407.html) // 统一的获取凭证失败处理 var handleAuthRequestFail = function (jqXHR, textStatus, errorThrown, scene) { console.error(scene + ' 失败:', textStatus, errorThrown); var errMsg = (jqXHR && jqXHR.status) ? ('HTTP ' + jqXHR.status) : (textStatus || '网络错误'); $('#status').text(scene + '失败,请稍后重试(' + errMsg + ')'); if (uploader) { uploader.stopUpload(); } $('#authUpload').attr('disabled', false); $('#pauseUpload').attr('disabled', true); $('#resumeUpload').attr('disabled', false); } if (!uploadInfo.videoId) { var createUrl = 'https://demo.xxx.cn/api/video/createdUploadVideo/'; $.get(createUrl, function (data) { var uploadAuth = data.uploadAuth; var uploadAddress = data.uploadAddress; var videoId = data.videoId; uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress,videoId); }, 'json').fail(function (jqXHR, textStatus, errorThrown) { handleAuthRequestFail(jqXHR, textStatus, errorThrown, '获取视频上传凭证') }); $('#status').text('文件开始上传...'); console.log("onUploadStarted:" + uploadInfo.file.name + ", endpoint:" + uploadInfo.endpoint + ", bucket:" + uploadInfo.bucket + ", object:" + uploadInfo.object); } else { // 如果videoId有值,根据videoId刷新上传凭证 // https://help.aliyun.com/document_detail/55408.html?spm=a2c4g.11186623.6.630.BoYYcY var refreshUrl = 'https://demo.xxx.cn/api/video/refreshUploadVideo/?videoId=' + uploadInfo.videoId; $.get(refreshUrl, function (data) { var uploadAuth = data.uploadAuth; var uploadAddress = data.uploadAddress; var videoId = data.videoId; uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress,videoId); }, 'json').fail(function (jqXHR, textStatus, errorThrown) { handleAuthRequestFail(jqXHR, textStatus, errorThrown, '刷新视频上传凭证'); }) } }, // 文件上传成功 onUploadSucceed: function (uploadInfo) { console.log("onUploadSucceed: " + uploadInfo.file.name + ", endpoint:" + uploadInfo.endpoint + ", bucket:" + uploadInfo.bucket + ", object:" + uploadInfo.object); $('#status').text('文件上传成功!'); }, // 文件上传失败 onUploadFailed: function (uploadInfo, code, message) { console.log("onUploadFailed: file:" + uploadInfo.file.name + ",code:" + code + ", message:" + message); $('#status').text('文件上传失败!'); }, // 取消文件上传 onUploadCanceled: function (uploadInfo, code, message) { console.log("Canceled file: " + uploadInfo.file.name + ", code: " + code + ", message:" + message); $('#status').text('文件上传已暂停!'); }, // 文件上传进度,单位:字节, 可以在这个函数中拿到上传进度并显示在页面上 onUploadProgress: function (uploadInfo, totalSize, progress) { console.log("onUploadProgress:file:" + uploadInfo.file.name + ", fileSize:" + totalSize + ", percent:" + Math.ceil(progress * 100) + "%"); var progressPercent = Math.ceil(progress * 100); $('#auth-progress').text(progressPercent); $('#status').text('文件上传中...'); }, // 上传凭证超时 onUploadTokenExpired: function (uploadInfo) { // 上传大文件超时, 如果是上传方式一即根据 UploadAuth 上传时 // 需要根据 uploadInfo.videoId 调用刷新视频上传凭证接口(https://help.aliyun.com/document_detail/55408.html)重新获取 UploadAuth // 然后调用 resumeUploadWithAuth 方法, 这里是测试接口, 所以我直接获取了 UploadAuth $('#status').text('文件上传超时!'); let refreshUrl = 'https://demo.xxx.cn/api/video/refreshUploadVideo/?videoId=' + uploadInfo.videoId; $.get(refreshUrl, function (data) { var uploadAuth = data.uploadAuth; // 源文档是UploadAuth,是错误的; uploader.resumeUploadWithAuth(uploadAuth); console.log('upload expired and resume upload with uploadauth ' + uploadAuth); }, 'json').fail(function (jqXHR, textStatus, errorThrown) { console.error('凭证过期后刷新 UploadAuth 失败:', textStatus, errorThrown); var errMsg = (jqXHR && jqXHR.status) ? ('HTTP ' + jqXHR.status) : (textStatus || '网络错误'); $('#status').text('上传凭证已过期,刷新凭证失败,请点击"恢复上传"重试(' + errMsg + ')'); // 刷新凭证失败,停止当前上传并恢复按钮状态,等待用户手动恢复; if (uploader) { uploader.stopUpload(); } $('#pauseUpload').attr('disabled', true); $('#resumeUpload').attr('disabled', false); }) }, // 全部文件上传结束 onUploadEnd: function (uploadInfo) { $('#status').text('文件上传完毕!'); console.log("onUploadEnd: uploaded all the files"); } }) return uploader; }

第三步:在thinkphp8框架下:

use AlibabaCloud\SDK\Vod\V20170321\Vod; use AlibabaCloud\Credentials\Credential; use \Exception; use AlibabaCloud\Tea\Exception\TeaError; use AlibabaCloud\Tea\Utils\Utils; use Darabonba\OpenApi\Models\Config; use AlibabaCloud\SDK\Vod\V20170321\Models\CreateUploadVideoRequest; use AlibabaCloud\SDK\Vod\V20170321\Models\RefreshUploadVideoRequest; use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions; class Demo { private function createClient(){ $credential = new Credential(); $config = new Config([ "accessKeyId" => '你的keyID', "accessKeySecret" => '你的keySecret' ]); $config->endpoint = "vod.cn-shanghai.aliyuncs.com"; return new Vod($config); } /** * 获取音视频上传地址和凭证; */ public function createdUploadVideo(){ $client = $this->createClient(); $createUploadVideoRequest = new CreateUploadVideoRequest([ "fileName" => "demo.mp4", "title" => "demo" ]); $runtime = new RuntimeOptions([]); try { $result = $client->createUploadVideoWithOptions($createUploadVideoRequest, $runtime); $res = $result->body; return json($res); } catch (Exception $error) { if (!($error instanceof TeaError)) { $error = new TeaError([], $error->getMessage(), $error->getCode(), $error); } $errMsg = Utils::assertAsString($error->message); return $errMsg; } } /** *用于视频文件上传超时后重新获取视频上传凭证 */ public function refreshUploadVideo() { $client = self::createClient(); $refreshUploadVideoRequest = new RefreshUploadVideoRequest([ "videoId" => "80aca47ad03271f0a7415420848d0102" ]); $runtime = new RuntimeOptions([]); try { $result = $client->refreshUploadVideoWithOptions($refreshUploadVideoRequest, $runtime); $res = $result->body; return json($res); } catch (Exception $error) { if (!($error instanceof TeaError)) { $error = new TeaError([], $error->getMessage(), $error->getCode(), $error); } $errMsg = Utils::assertAsString($error->message); return $errMsg; } } }

相关新闻

  • 2026年欧米茄中国区售后服务网络更新优化,全国唯一售后热线以及线下网点地址 - 欧米茄售后服务官网
  • Expression库与Pydantic集成:构建类型安全的Python API开发指南
  • Anatole主题作品集功能详解:打造专业个人展示页面的完整教程

最新新闻

  • 长沙劳力士回收价格查询与靠谱回收平台实测排行(2026年7月最新) - 天价名表回收平台
  • 萧邦电池拨片售后保养与更换服务指南权威公示(2026年7月最新) - 萧邦中国官方服务中心
  • 劳力士官方保养价格查询|完整网点地址及售后热线权威信息公告(2026年7月最新) - 劳力士官方服务中心
  • 2026年棋楠老树壳沉香碎料哪家好:问菩文创东方美学 - 秋山寄远
  • 2026年棋楠水磨粉沉香粉哪个口碑好:问菩文创复购率高 - 松梢月冷
  • 2026年苏州苏作家具/红木家具厂家推荐榜单:明式清式宋式新中式禅意混搭,大红酸枝紫光檀大果紫檀源头定制 - 甄选服务推荐

日新闻

  • 百达翡丽官方服务项目及价格查询|维修地址与电话权威信息通告(2026年7月最新) - 百达翡丽服务中心
  • 2026年药食同源冲泡饮品哪家好:衡身堂三伏天内调外养 - 晚香时候
  • 芝柏官方更换原装表带价格查询|详细地址与24小时客服电话权威信息公告(2026年7月最新) - 亨得利官方服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号