本文通過樣本詳細介紹如何使用服務端上傳SDK(PHP語言)將各類媒體檔案上傳至點播儲存。
整體說明
從內部邏輯角度看,PHP上傳SDK遵循點播服務端SDK的通用流程。詳情請參見上傳流程。從操作角度看,使用PHP上傳SDK的基礎流程如下:
完成前提條件。請參見前提條件。
整合PHP上傳SDK。請參見整合PHP上傳SDK。
實現上傳邏輯(主要是上傳資訊配置)。
音視頻上傳請參見情境一:上傳音視頻。
圖片上傳請參見情境二:上傳圖片。
輔助媒資上傳請參見情境三:上傳輔助媒資檔案。
PHP上傳SDK預設服務存取點為
cn-shanghai
(上海), 若需要上傳媒體檔案到其他地區,可以通過AliyunVodUploader
在初始化時指定地區,點播支援的服務存取點,請參見服務存取點。以指定上傳地區為
cn-beijing
(北京)為例,配置樣本如下:$apiRegionId = 'cn-beijing'; //上傳目的地區域region $uploader = new AliyunVodUploader($accessKeyId, $accessKeySecret, $apiRegionId);
前提條件
您已經開通了ApsaraVideo for VOD服務。開通步驟請參見開通ApsaraVideo for VOD服務。
您已經完成上傳相關的系統配置,包括啟用目標儲存地區的儲存地址和配置回調。操作指引請參見管理儲存Bucket及回調設定。
您已準備好用於調用點播服務的帳號。為避免阿里雲帳號AccessKey泄露帶來的安全風險,推薦您建立RAM使用者並授予其VOD相關許可權。然後使用RAM使用者的AK對(AccessKey ID和AccessKey Secret)訪問點播服務。操作指引請參見建立RAM使用者並授權。
已配置環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具體操作,請參見在Linux、macOS和Windows系統配置環境變數。
重要阿里雲帳號的AccessKey擁有所有API的存取權限,建議您使用RAM使用者的AccessKey進行API訪問或日常營運。
強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
(可選)如需使用STS臨時授權方式(阿里雲Security Token Service)訪問點播服務,請為RAM使用者建立角色並授予角色VOD相關許可權。操作指引請參見使用STS臨時授權方案上傳視頻。
說明STS臨時授權方式的適用情境請參見憑證方式與STS方式對比。
整合PHP上傳SDK
更新PHP上傳SDK
若發現新的介面或已有介面新的功能在當前SDK沒有,請下載最新的PHP上傳SDK覆蓋到本地SDK檔案。更多資訊,請參見上傳SDK。
您可以開啟voduploadsdk目錄下的ChangeLog.txt檔案查看當前SDK的版本號碼和發布日期。
PHP上傳SDK目錄說明
/VodUploadSDK-PHP_1.0.3.zip解壓目錄/VodUploadSDK-PHP_1.0.3/voduploadsdk/uploader
UploadVideoRequest.php
目錄
說明
UploadVideoRequest
上傳視頻的請求類,欄位請參見擷取音視頻上傳地址和憑證。
UploadImageRequest.php
目錄
說明
UploadImageRequest
上傳圖片的請求類,欄位請參見擷取圖片上傳地址和憑證。
UploadAttachedMediaRequest.php
目錄
說明
UploadAttachedMediaRequest
上傳輔助媒資的請求類,欄位請參見擷取輔助媒資上傳地址和憑證。
AliyunVodUploader.php
目錄
說明
__construct
可設定上傳的AccessKey以及ApsaraVideo for VOD中心和訪問網域名稱。請參見AccessKey和點播地區標識。
uploadLocalVideo
上傳本地視頻的介面。
uploadWebVideo
上傳網路視頻的介面。
uploadLocalImage
上傳本地圖片。
uploadWebImage
上傳網狀圖片。
uploadLocalAttachedMedia
上傳本地輔助媒資檔案。
uploadWebAttachedMedia
上傳網路輔助媒資檔案。
uploadLocalM3u8
上傳本地m3u8檔案。
uploadWebM3u8
上傳網路m3u8檔案。
parseM3u8File
解析m3u8索引檔案得到分區地址清單。
setEcsRegionId
設定上傳指令碼部署的ECS地區(如果有),如果與ApsaraVideo for VOD儲存同一地區會自動啟用內網上傳。
setEnableSSL
是否啟用SSL(網路請求使用HTTPS),預設不啟用,以避免相關擴充未安裝或配置異常時無法使用。
uploadProgressCallback
上傳進度回呼函數,可重寫。
AliyunVodUtils.php
目錄
說明
AliyunVodUtils
工具類,提供截取字串、擷取副檔名、擷取檔案名稱等靜態函數。
AliyunVodLog
實現簡單列印的日誌類,logSwitch為日誌開關。
AliyunVodDownloader
實現下載網路檔案。
AliyunVodReportUpload
實現上傳進度彙報。
AliyunVodError
定義錯誤碼。
/VodUploadSDK-PHP_1.0.3.zip解壓目錄/VodUploadSDK-PHP_1.0.3/voduploadsdk
aliyun-php-sdk-core:上傳SDK依賴的基礎類,封裝了阿里雲API簽名和HTTP請求等。
aliyun-php-sdk-vod:ApsaraVideo for VOD的服務端介面SDK,封裝了ApsaraVideo for VODAPI的請求。
aliyun-php-sdk-oss:上傳SDK依賴的OSS類,封裝了OSS上傳等操作。
/VodUploadSDK-PHP_1.0.3.zip解壓目錄/VodUploadSDK-PHP_1.0.3/samples
uploadVideo.php:上傳視頻的範例程式碼。
uploadImage.php:上傳圖片的範例程式碼。
uploadAttachedMedia.php:上傳輔助媒資的範例程式碼。
情境一:上傳音視頻
普通音視頻
音視頻上傳目前支援以下類型檔案上傳:
上傳本地檔案,使用分區上傳,最大支援48.8 TB的單個檔案,不支援斷點續傳。請參見testUploadLocalVideo函數。
上傳網路檔案,可指定檔案URL進行上傳,最大支援48.8 TB的單個檔案。該上傳方式需要先將網路檔案下載到本地磁碟,再進行上傳,所以要保證本地磁碟有充足的空間。請參見testUploadWebVideo函數。
M3U8視頻檔案
部分程式碼範例如下所示:
情境二:上傳圖片
情境三:上傳輔助媒資檔案
部分程式碼範例如下所示: