Laravel框架实现点播上传阿里云功能

 更新时间:2021-11-14 18:15:21   作者:佚名   我要评论(0)

1、确认框架中安装了第三方alibabacoud控件
实现代码如下
上传过程中遇到任务问题,可以进行留言


<&#63;php

namespace App\Api\xxxx\Con

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;
    }
}

到此这篇关于Laravel框架实现点播上传阿里云功能的文章就介绍到这了,更多相关Laravel点播上传阿里云内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • laravel框架上传图片实现实时预览功能
  • laravel框架 laravel-admin上传图片到oss的方法
  • Laravel框架实现文件上传的方法分析
  • Laravel框架实现的上传图片到七牛功能详解
  • Laravel框架文件上传功能实现方法示例
  • Laravel框架+Blob实现的多图上传功能示例

相关文章

  • Laravel框架实现点播上传阿里云功能

    Laravel框架实现点播上传阿里云功能

    1、确认框架中安装了第三方alibabacoud控件 实现代码如下 上传过程中遇到任务问题,可以进行留言 <&#63;php namespace App\Api\xxxx\Con
    2021-11-14
  • 聊聊PHP中的 === 运算符为什么比 == 快

    聊聊PHP中的 === 运算符为什么比 == 快

    在上一篇《聊聊PHP中require_once()函数为什么不好用》中给大家介绍了PHP中require_once()为什么不好用的原因,感兴趣的朋友可以去阅读了解一
    2021-11-14
  • php双向队列实例讲解

    php双向队列实例讲解

    1、双向队列是指一种具有队列和栈的性质的数据结构。 2、双向队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。 双向队列就
    2021-11-14
  • 关于PHP数组迭代器的使用方法实例

    关于PHP数组迭代器的使用方法实例

    近来在开发一个视力筛查电子报告系统的产品,这个产品的作用是自动提取视力筛查过程中得到的屈光检查数据,并结合数据自动生成通俗易懂且专业
    2021-11-14
  • PHP遍历数组的6种方式总结

    PHP遍历数组的6种方式总结

    目录1、foreach2、array_map3、array_walk4、for5、each6、reset总结在PHP的日常操作中,数组是最常出现的结构,而我们几乎每天都在处理数组
    2021-11-14
  • .NET 6 中的隐式命名空间引用

    .NET 6 中的隐式命名空间引用

    目录1、历史变化2、新版本介绍3、More usage4、More前言: 之前写过一篇隐式命名空间引用的大概介绍,在一些小的测试项目中也有在用,一直
    2021-11-14
  • .NET 6 即将到来的新特性  隐式命名空间引用

    .NET 6 即将到来的新特性  隐式命名空间引用

    目录1、Sample2、How it works3、More前言: 今天看到一个更新,可以不需要写 using了,目前还没有正式发布,应该要到 .NET 6 Preview 7
    2021-11-14
  • ASP.NET Core 中间件的使用之全局异常处理机制

    ASP.NET Core 中间件的使用之全局异常处理机制

    目录1、创建项目2、创建全局异常过滤器3、依赖注入全局异常处理机制4、测试全局异常处理机制前言: 我们经常听到“秒修复秒上线”,觉得很
    2021-11-14
  • 解析Pytorch中的torch.gather()函数

    解析Pytorch中的torch.gather()函数

    参数说明 以官方说明为例,gather()函数需要三个参数,输入input,维度dim,以及索引index input必须为Tensor类型 dim为int类型,代表从哪个
    2021-11-14
  • 93充100,电费充值系统怎么做到的

    93充100,电费充值系统怎么做到的

    CPS的本质就是销售;你卖出货就赚钱。 在生活中话费水费电费充值是刚需,基本上每个月都有需求。电费充值不同于话费,电费的市场更大。
    2021-11-09

最新评论