Laravel框架實現(xiàn)點播上傳阿里云功能
更新時間:2021年09月30日 10:33:25 作者:xi_weina
這篇文章主要介紹了Laravel框架實現(xiàn)點播上傳阿里云功能,本文給大家分享一段完整的實例代碼,代碼簡單易懂,需要的朋友可以參考下
1、確認(rèn)框架中安裝了第三方alibabacoud控件
實現(xiàn)代碼如下
上傳過程中遇到任務(wù)問題,可以進(jìn)行留言
<?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,阿里云點播可以設(shè)置 } $client = self::createClient("xxx", "xxx");//根據(jù)申請的值放入 $createUploadVideoRequest = new CreateUploadVideoRequest([ 'Action' => 'CreateUploadVideo',//請求的上傳函數(shù) "fileName" => $fileName,//文件名稱 "cateId" => $cateId,//類型名稱 'title' => $param['title'],//標(biāo)題 ]); $createRes = $client->createUploadVideo($createUploadVideoRequest); $videoId = $createRes->body->videoId; //獲取視頻播放地址需要的參數(shù) $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的本地視頻文件的完整路徑 改這個有效果 // 上傳文件,注意是同步上傳會阻塞等待,耗時與文件大小和網(wǎng)絡(luò)上行帶寬有關(guān) $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); // 設(shè)置請求超時時間,單位秒,默認(rèn)是5184000秒, 建議不要設(shè)置太小,如果上傳文件很大,消耗的時間會比較長 $ossClient->setConnectTimeout(10); // 設(shè)置連接超時時間,單位秒,默認(rèn)是10秒 return $ossClient; } }
到此這篇關(guān)于Laravel框架實現(xiàn)點播上傳阿里云功能的文章就介紹到這了,更多相關(guān)Laravel點播上傳阿里云內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
laravel Validator ajax返回錯誤信息的方法
今天小編就為大家分享一篇laravel Validator ajax返回錯誤信息的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09CI框架(CodeIgniter)實現(xiàn)的導(dǎo)入、導(dǎo)出數(shù)據(jù)操作示例
這篇文章主要介紹了CI框架(CodeIgniter)實現(xiàn)的導(dǎo)入、導(dǎo)出數(shù)據(jù)操作,結(jié)合實例形式分析了CodeIgniter框架libraies中引用PHPExcel實現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出相關(guān)操作技巧,需要的朋友可以參考下2018-05-05