Laravel框架實現(xiàn)點播上傳阿里云功能
1、確認框架中安裝了第三方alibabacoud控件
實現(xiàn)代碼如下
上傳過程中遇到任務(wù)問題,可以進行留言
<?php namespace AppApixxxxControllers; use DB; use IlluminateHttpRequest; use AlibabaCloudTeaUtilsUtils; use AlibabaCloudSDKVodV20170321Vod; use AlibabaCloudSDKVodV20170321ModelsDeleteImageRequest; use AlibabaCloudSDKVodV20170321ModelsGetPlayInfoRequest; use AlibabaCloudSDKVodV20170321ModelsDeleteVideoRequest; use AlibabaCloudSDKVodV20170321ModelsGetImageInfoRequest; use AlibabaCloudSDKVodV20170321ModelsCreateUploadVideoRequest; use AlibabaCloudSDKVodV20170321ModelsCreateUploadImageRequest; use DarabonbaOpenApiModelsConfig; use OSSOssClient; use AlibabaCloudTeaTea; 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è)置請求超時時間,單位秒,默認是5184000秒, 建議不要設(shè)置太小,如果上傳文件很大,消耗的時間會比較長 $ossClient->setConnectTimeout(10); // 設(shè)置連接超時時間,單位秒,默認是10秒 return $ossClient; } }
到此這篇關(guān)于Laravel框架實現(xiàn)點播上傳阿里云功能的文章就介紹到這了,更多相關(guān)Laravel點播上傳阿里云內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
版權(quán)聲明:
本站所有文章和圖片均來自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系網(wǎng)站客服處理。