本文通過樣本詳細介紹如何使用服務端上傳SDK(C/C++語言)將各類媒體檔案上傳至點播儲存。
整體說明
從內部邏輯角度看,C/C++上傳SDK遵循點播服務端SDK的通用流程。詳情請參見上傳流程。從操作角度看,使用C/C++上傳SDK的基礎流程如下:
完成前提條件。請參見前提條件。
整合C/C++上傳SDK。請參見整合C/C++上傳SDK。
實現上傳邏輯(主要是上傳資訊配置)。
音視頻上傳請參見情境一:上傳音視頻。
圖片上傳請參見情境二:上傳圖片。
輔助媒資上傳請參見情境三:上傳輔助媒資。
前提條件
您已經開通了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 Token。
整合C/C++上傳SDK
ApsaraVideo for VOD服務端C/C++上傳SDK僅支援Linux環境。
此處以SDK1.0.0版本舉例說明。其他版本請根據實際情況操作。
上傳SDK及範例程式碼解壓後的目錄詳細資料,請參見下文目錄說明。
本文以普通使用者執行操作為例進行安裝命令說明。
使用ApsaraVideo for VOD服務端C/C++上傳SDK,您必須要安裝的軟體包及其用途、安裝樣本請參見下述表格。
軟體包 | 作用 | yum安裝樣本 | 網上下載安裝樣本 |
CMake | 第三方編譯安裝工具 |
|
|
libcurl | 解決網路連接等問題 |
|
|
libuuid | 產生uuid | 安裝樣本: | 不涉及 |
apr | 不涉及 | 安裝樣本: |
|
apr-util | 解決記憶體管理以及跨平台問題 | 安裝樣本: |
|
minixml | 解析請求返回的xml | 安裝樣本: |
|
jsoncpp | 解析請求返回的JSON | 安裝樣本: |
|
OSS SDK | 由於上傳SDK依賴OSS,需要下載並安裝OSS SDK | 不涉及 | 下載地址和安裝步驟,請參見OSS SDK安裝。 重要 有部分OSS依賴庫已經在前面步驟進行安裝,已經安裝的不需要再次進行重複安裝。 |
C/C++上傳SDK | 上傳檔案 | 不涉及 | 下載地址:
安裝樣本: |
C/C++上傳SDK目錄說明
/VodSDK-C_1.0.0.gz解壓目錄/VodSDK-C_1.0.0/aliyun-c-sdk-vod/src/upload.h
目錄 | 說明 |
CreateUploadVideoRequest | 上傳視頻的請求類,欄位請參見擷取音視頻上傳地址和憑證。 |
CreateUploadImageRequest | 上傳圖片的請求類,欄位請參見擷取圖片上傳地址和憑證。 |
CreateUploadAttachedMediaRequest | 上傳輔助媒資的請求類,欄位請參見擷取輔助媒資上傳地址和憑證。 |
UploadOptions | 上傳參數結構體,包含如下參數:
|
uploadLocalVideo | 上傳本地視頻。 |
uploadWebVideo | 上傳網路視頻。 |
uploadLocalImage | 上傳本地圖片。 |
uploadWebImage | 上傳網狀圖片。 |
uploadLocalAttachedMedia | 上傳本地輔助媒資檔案。 |
uploadWebAttachedMedia | 上傳網路輔助媒資檔案。 |
uploadLocalM3u8 | 上傳本地m3u8視頻。 |
uploadWebM3u8 | 上傳網路m3u8視頻。 |
/VodSDK-C_1.0.0.gz解壓目錄/VodSDK-C_1.0.0/aliyun-c-sdk-vod/samples
目錄 | 說明 |
uploadVideo.cpp | 上傳視頻的範例程式碼。 |
uploadImage.cpp | 上傳圖片的範例程式碼。 |
uploadAttachedMedia.cpp | 上傳輔助媒資的範例程式碼。 |
情境一:上傳音視頻
普通音視頻
音視頻上傳目前支援以下類型檔案上傳:
上傳本地檔案,使用分區上傳,最大支援48.8 TB的單個檔案,不支援斷點續傳。請參見testUploadLocalVideo函數。
上傳網路檔案,可指定檔案URL進行上傳,最大支援48.8 TB的單個檔案。該上傳方式需要先將網路檔案下載到本地磁碟,再進行上傳,所以要保證本地磁碟有充足的空間。請參見範例程式碼中的testUploadWebVideo函數。