Laravel框架实现点播上传阿里云功能
作者:xi_weina 发布时间:2023-06-13 20:13:30
标签:Laravel,点播,上传,阿里云
1、确认框架中安装了第三方alibabacoud控件
实现代码如下
上传过程中遇到任务问题,可以进行留言
<?php
namespace App\Api\xxxx\Controllers;
use DB;
use Illuminate\Http\Request;
use AlibabaCloud\Tea\Utils\Utils;
use AlibabaCloud\SDK\Vod\V20170321\Vod;
use AlibabaCloud\SDK\Vod\V20170321\Models\DeleteImageRequest;
use AlibabaCloud\SDK\Vod\V20170321\Models\GetPlayInfoRequest;
use AlibabaCloud\SDK\Vod\V20170321\Models\DeleteVideoRequest;
use AlibabaCloud\SDK\Vod\V20170321\Models\GetImageInfoRequest;
use AlibabaCloud\SDK\Vod\V20170321\Models\CreateUploadVideoRequest;
use AlibabaCloud\SDK\Vod\V20170321\Models\CreateUploadImageRequest;
use Darabonba\OpenApi\Models\Config;
use OSS\OssClient;
use AlibabaCloud\Tea\Tea;
class CommonController extends XXController
{
//视频点播上传
public function uploadVideo($fileName,$title)
{
$title = explode('.',$param['title']);
$fileName = $param['fileName'];
if($title[1] == 'mp4') {
$cateId = 3479;//分类ID,阿里云点播可以设置
}
$client = self::createClient("xxx", "xxx");//根据申请的值放入
$createUploadVideoRequest = new CreateUploadVideoRequest([
'Action' => 'CreateUploadVideo',//请求的上传函数
"fileName" => $fileName,//文件名称
"cateId" => $cateId,//类型名称
'title' => $param['title'],//标题
]);
$createRes = $client->createUploadVideo($createUploadVideoRequest);
$videoId = $createRes->body->videoId; //获取视频播放地址需要的参数
$formats = $title[1];
//base64解码
$uploadAddress = json_decode(base64_decode($createRes->body->uploadAddress), true);
$uploadAuth = json_decode(base64_decode($createRes->body->uploadAuth), true);
// 使用UploadAuth和UploadAddress初始化OSS客户端
$ossClient = $this->init_oss_client($uploadAuth, $uploadAddress);
$localFile = $fileName; // 需要上传到VOD的本地视频文件的完整路径 改这个有效果
// 上传文件,注意是同步上传会阻塞等待,耗时与文件大小和网络上行带宽有关
$result = $this->upload_local_file($ossClient, $uploadAddress, $localFile);
//$result = multipart_upload_file($ossClient, $uploadAddress, $localFile);
$arr = $this->playinfo($videoId,$formats);
$data = Utils::toArray(Tea::merge($arr->body));
$brr = array();
$brr['VideoId'] = $data['VideoBase']['VideoId'];//视频id
$brr['PlayURL'] = $data['PlayInfoList']['PlayInfo'][0]['PlayURL'];//返回的播放地址
return $brr;
}
public function init_oss_client($uploadAuth, $uploadAddress)
{
$ossClient = new OssClient($uploadAuth['AccessKeyId'], $uploadAuth['AccessKeySecret'], $uploadAddress['Endpoint'],
false, $uploadAuth['SecurityToken']);
$ossClient->setTimeout(86400*7); // 设置请求超时时间,单位秒,默认是5184000秒, 建议不要设置太小,如果上传文件很大,消耗的时间会比较长
$ossClient->setConnectTimeout(10); // 设置连接超时时间,单位秒,默认是10秒
return $ossClient;
}
}
来源:https://blog.csdn.net/xi_weina/article/details/120550922
0
投稿
猜你喜欢
- gRPCgRPC远程过程调用框架是基于动作的模式,类似远程调用微服务。这使得gRPC成为一种围绕Protobufs构建的进程间通信(IPC)
- 1.sort.Sort介绍使用sort.Slice进行排序,因为slice把struct抽象化了,且slice封装过了,简单的基础类型可以使
- 样式表是一种为超文本标签语言提供增强补充服务的技术,可对每一个html的标签做精雕细刻的修饰。只用html制作的网页,对页面内各部分的修饰能
- 前言本文主要给大家介绍了解决apahce部署python程序出现503错误的相关内容,下面话不多说了,下一起看看详细的介绍吧。发现问题今天更
- 我就废话不多说了,大家还是直接看代码吧~package mainimport ( "net/http")func mai
- 1.爬虫是什么所谓爬虫,就是按照一定的规则,自动的从网络中抓取信息的程序或者脚本。万维网就像一个巨大的蜘蛛网,我们的爬虫就是上面的一个蜘蛛,
- 列表(List) 的三种遍历(序号和值)方法if __name__ == '__main__':
- 本文实例讲述了python 实现的发送邮件模板。分享给大家供大家参考,具体如下:##发送普通txt文件(与发送html邮件不同的是邮件内容设
- 前言提示:以下是本篇文章正文内容🍒PIL库概述PIL库支持图像存储、 显示和处理, 它能够处理几乎所有图片格式, 可以完成对图像的缩放、 剪
- 音乐播放器可让您快速轻松地管理和收听所有音乐文件。在本文中,我将带您了解如何使用 Python 创建音乐播放器 GUI。如何使用 Pytho
- 如何使用ADO 2x Command 对象读取数据?具体的读数据代码如下:Cmd = CType(EC.Example1
- SymPy是符号数学的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展#coding:utf-8&
- 很多时候,由于程序设计需要,要求在asp的include包含文件里调用动态的文件。如<!--#include file=&q
- 一、分析数据源这里的数据源是指html网页?还是Aajx异步。对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍。提示:以下操作
- 使用opencv自带的模板匹配1、目标匹配函数:cv2.matchTemplate()res=cv2.matchTemplate(image
- 这篇文章与大家分享13个超级有用的 jQuery 内容滚动插件和教程。您可能经常能看到一些网站上特色区域的内容以滚动方式变化,这是一种在有限
- python字符串-删除末位字符(rstrip)rstrip函数用于删除字符串末位指定字符,默认为空白符。语法str.rstrip([cha
- Mysql环境变量配置mysql的环境变量配置步骤1.1、在桌面选择“计算机”的图标,右键&
- PHP从主流来看,是一门面向过程的语言,它的最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,
- 发现报错对于Navicat连接数据库mysql 出现报错2003(10060),如下所示报错经过查询总结以上出现问题的主要解决方法三种:1、