摘要:確認已準備了阿里云賬號,并授予了上傳權限。為了扶持更多創業者,降低入行門檻,視頻點播已在原有的視頻點播服務五個套餐包基礎上,推出了超值體驗套餐包。另外,體驗完成后,阿里云也為提供了五個點播套餐包,供各種需求用戶選擇。
摘要: 場景 點播上傳SDK缺乏需要的語言版本(如C/C++、Go等)或相應的功能(如網絡流上傳、追加上傳),可以直接使用OSS的SDK進行上傳。 準備工作 確認已開通點播服務并完成了相關配置。確認已準備了阿里云賬號AK,并授予了上傳權限。
場景
點播上傳SDK缺乏需要的語言版本(如C/C++、Go等)或相應的功能(如網絡流上傳、追加上傳),可以直接使用OSS的SDK進行上傳。
準備工作
確認已開通點播服務并完成了相關配置。
確認已準備了阿里云賬號AK,并授予了上傳權限。
上傳步驟
一、訪問點播服務獲取上傳地址和上傳憑證。
這一步還會創建視頻媒資記錄,返回視頻ID,請妥善保存,后續可根據視頻ID進行視頻播放、管理和AI處理等。
二、對上傳地址(UploadAddress)和上傳憑證(UploadAuth)分別進行Base64解析,得到OSS的上傳地址和授權信息。
UploadAddress字段Base64解碼后,得到JSON格式字符串,包含字段如下:
UploadAuth字段Base64解碼后,得到JSON格式字符串,包含字段如下:
三、調用OSS SDK將視頻文件上傳至指定的bucket中,注意使用STS Auth方式,且使用UploadAddress和UploadAuth進行初始化,不要使用自己的AK等信息。
代碼實現
核心代碼實現共分4步:
1.使用AK初始化VOD客戶端
2.獲取視頻上傳地址和憑證
3.使用上傳憑證和地址初始化OSS客戶端
4.上傳本地文件
可以使用點播服務的接口SDK(Java、PHP、Python、.NET),或API(接口說明、調用示例)獲取上傳地址和憑證。
使用OSS SDK在服務端上傳,目前支持如下版本:
OSS-Java-SDK、OSS-PHP-SDK、OSS-Python-SDK、OSS-C-SDK、OSS-Go-SDK、OSS-Ruby-SDK、OSS-.NET-SDK
客戶端上傳建議使用VOD的上傳SDK:VOD-Android-SDK、VOD-iOS-SDK、VOD-JavaScript-SDK;客戶端上傳時需要在服務端獲取上傳地址和憑證下發給客戶端,以確保數據安全。
PHP上傳示例
環境準備
PHP 5.3+,可通過php -v命令查看當前的PHP版本。
cURL 擴展,可通過php -m命令查看curl擴展是否已經安裝好。
安裝
1.在您的PHP項目中添加空文件夾 aliyun-php-sdk。
2.從 aliyun-openapi-php-sdk 下載整個源碼,解壓后拷貝 aliyun-php-sdk-core 和 aliyun-php-sdk-vod 兩個文件夾到 aliyun-php-sdk 目錄下。
3.從 aliyun-oss-php-sdk 下載最新的OSS PHP SDK的源碼,解壓ZIP文件后添加文件夾到 aliyun-php-sdk 目錄下。以下載 v.2.2.4 Source code (zip) 為例,解壓后文件夾為 aliyun-oss-php-sdk-2.2.4。
4.打開 aliyun-php-sdk/aliyun-php-sdk-core/Config.php 文件,找到“//config sdk auto load path.”,在這行下面添加:
Autoloader::addAutoloadPath("aliyun-php-sdk-vod");
5.在代碼中引用VOD和OSS的文件:
require_once "./aliyun-php-sdk/aliyun-php-sdk-core/Config.php"; // 假定您的源碼文件和aliyun-php-sdk處于同一目錄。 require_once "./aliyun-php-sdk/aliyun-oss-php-sdk-2.2.4/autoload.php"; use vodRequestV20170321 as vod; use OSSOssClient; use OSSCoreOssException;
更多信息可參考VOD PHP SDK安裝 和 OSS PHP SDK安裝。
參考代碼
定義核心步驟的函數:
使用AK初始化VOD客戶端
function init_vod_client($accessKeyId, $accessKeySecret) { $regionId = "cn-shanghai"; // 點播服務所在的Region,國內請填cn-shanghai,不要填寫別的區域 $profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret); return new DefaultAcsClient($profile); }
獲取視頻上傳地址和憑證
function create_upload_video($vodClient) { $request = new vodCreateUploadVideoRequest(); $request->setTitle("視頻標題"); // 視頻標題(必填參數) $request->setFileName("文件名稱.mov"); // 視頻源文件名稱,必須包含擴展名(必填參數) $request->setDescription("視頻描述"); // 視頻源文件描述(可選) $request->setCoverURL("http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png"); // 自定義視頻封面(可選) $request->setTags("標簽1,標簽2"); // 視頻標簽,多個用逗號分隔(可選) return $vodClient->getAcsResponse($request); }
使用上傳憑證和地址初始化OSS客戶端(注意需要先Base64解碼并Json Decode再傳入)
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; }
上傳本地文件
function upload_local_file($ossClient, $uploadAddress, $localFile) { return $ossClient->uploadFile($uploadAddress["Bucket"], $uploadAddress["FileName"], $localFile); }
刷新上傳憑證
function refresh_upload_video($vodClient, $videoId) { $request = new vodRefreshUploadVideoRequest(); $request->setVideoId($videoId); return $vodClient->getAcsResponse($request); } 執行完整流程(注意捕獲異常): $accessKeyId = ""; // 您的AccessKeyId $accessKeySecret = " "; // 您的AccessKeySecret $localFile = "/Users/yours/Video/testVideo.flv"; // 需要上傳到VOD的本地視頻文件的完整路徑 try { // 初始化VOD客戶端并獲取上傳地址和憑證 $vodClient = init_vod_client($accessKeyId, $accessKeySecret); $createRes = create_upload_video($vodClient); // 執行成功會返回VideoId、UploadAddress和UploadAuth $videoId = $createRes->VideoId; $uploadAddress = json_decode(base64_decode($createRes->UploadAddress), true); $uploadAuth = json_decode(base64_decode($createRes->UploadAuth), true); // 使用UploadAuth和UploadAddress初始化OSS客戶端 $ossClient = init_oss_client($uploadAuth, $uploadAddress); // 上傳文件,注意是同步上傳會阻塞等待,耗時與文件大小和網絡上行帶寬有關 //$result = upload_local_file($ossClient, $uploadAddress, $localFile); $result = multipart_upload_file($ossClient, $uploadAddress, $localFile); printf("Succeed, VideoId: %s", $videoId); } catch (Exception $e) { // var_dump($e); printf("Failed, ErrorMessage: %s", $e->getMessage()); }
Demo下載
可下載完整的 PHP版上傳Demo源碼,更多使用信息請參考 OSS-PHP-SDK上傳文件。
為了扶持更多創業者,降低入行門檻,視頻點播已在原有的視頻點播服務五個套餐包基礎上,推出了超值體驗套餐包。
只需9.9元即可獲得10GB流量、50GB存儲、100分鐘轉碼,可供個人、小微企業門戶網站體驗使用。
點擊進入活動頁面,立即購買,完成支付
進入視頻點播產品頁面,點擊立即開通,開通視頻點播服務,進行初始化配置,用戶可以在控制臺進行視頻上傳,轉碼設置、視頻管理和視頻預覽等操作。
另外,體驗完成后,阿里云也為提供了五個點播套餐包,供各種需求用戶選擇。
點擊查看購買詳情
閱讀更多干貨好文,請關注掃描以下二維碼:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54533.html
摘要:講解從三個部分展開短視頻應用場景阿里云短視頻解決方案阿里云對短視頻用戶體驗的相關優化。同時,為了面對業務的突發流量,阿里云提供了超過的帶寬儲備,為持續增長的業務保駕護航。二播放卡頓是指在播放過程中的不流暢情況,會嚴重影響用戶體驗。 深圳云棲大會已經圓滿落幕,在3月29日飛天技術匯-彈性計算、網絡和CDN專場中,阿里云CDN高級技術專家周哲為我們帶來了《海量短視頻極速分發》的主題分享,帶...
摘要:如果使用阿里云函數計算,您將高峰期每小時的訪問日志,或者低谷期每小時的訪問日志交給一個計算函數處理,并將處理結果存到中。下面結合阿里云的函數計算產品來講解各個應用場景中架構以及如何解決的場景中的痛點。 摘要: Serverless概念是近年來特別火的一個技術概念,基于這種架構能構建出很多應用場景,適合各行各業,只要對輕計算、高彈性、無狀態等場景有訴求的用戶都可以通過本文來普及一些基礎概...
閱讀 3448·2019-08-30 15:55
閱讀 2050·2019-08-30 15:44
閱讀 1453·2019-08-30 12:47
閱讀 740·2019-08-30 11:05
閱讀 1629·2019-08-30 10:54
閱讀 654·2019-08-29 16:07
閱讀 3566·2019-08-29 14:17
閱讀 2221·2019-08-23 18:31