1. 程式人生 > 程式設計 >Laravel框架實現點播上傳阿里雲功能

Laravel框架實現點播上傳阿里雲功能

1、確認框架中安裝了第三方alibabacoud控制元件

實現程式碼如下

上傳過程中遇到任務問題,可www.cppcns.com以進行留言

<?
 
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 = on_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,$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[nxXvRJCuN
'SecurityToken']); $ossClient->setTimeout(86400*7); // 設定請求超時時間,單位秒,預設是5184000秒,建議不要設定太小,如果上傳檔案很大,消耗的時間會比較長 $ossClient->setConnectTimeout(10); // 設定連線超時時間,單位秒,預設是10秒 return $ossClient; } }

到此這篇關於Laravel框架實現點播上傳阿里雲功能的文章就介紹到這了,更多相關Laravel點播上傳阿里雲內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!