全部產品
Search
文件中心

ApsaraVideo VOD:用戶端上傳

更新時間:Jul 10, 2026

用戶端上傳是指將用戶端媒體檔案直接上傳到點播儲存。相對於服務端代理上傳,用戶端上傳避免了商務服務器中轉檔案,節省了伺服器資源。

用戶端上傳原理

核心概念

用戶端(App/瀏覽器/小程式)先從 應用伺服器(AppServer)擷取一次性上傳憑證,隨後直接將檔案上傳至阿里雲ApsaraVideo for VOD(基於OSS儲存),全程無需經過伺服器中轉。

上傳核心鏈路包含以下角色:

角色

說明

用戶端

終端使用者的 App 或瀏覽器,整合上傳 SDK。

應用伺服器(AppServer)

後端服務,負責調用VOD API擷取憑證並下發。

ApsaraVideo for VOD服務

阿里雲ApsaraVideo for VOD服務,簽發上傳憑證並建立媒資ID。

OSS儲存

實際隱藏檔的Object Storage Service,用戶端直傳目標。

說明

為什麼需要應用伺服器(AppServer):AccessKey不可儲存在用戶端。阿里雲AccessKey(AK/SK)擁有帳號級資源操控許可權,內建於App或網頁代碼中易被非法擷取引發雲資源安全風險。

上傳流程

用戶端上傳 SDK封裝了OSS直傳邏輯,檔案無需服務端中轉,因此需通過應用伺服器(AppServer)擷取授權。目前用戶端上傳SDK支援兩種授權方式:上傳地址和憑證方式STS Token方式

推薦使用上傳地址和憑證方式,相比 STS Token,其授權更簡單、安全性更高(支援單視頻許可權控制)、參數配置更靈活且冗餘度更高。

上傳地址和憑證方式

方式簡介:用戶端向服務端擷取上傳地址和憑證後直接上傳媒體資源到OSS。

階段一:擷取上傳地址和憑證

用戶端嚮應用服務端(AppServer)發起HTTP請求,攜帶本次上傳的業務參數(如 TitleFileNameCateIdTags 等媒資中繼資料)。AppServer收到後,使用持有的AK/SK調用VOD的CreateUploadVideo介面。VOD服務返回三個關鍵結果:

  • UploadAuth:臨時上傳令牌。

  • UploadAddress:目標OSS 路徑(Base 64 編碼)。

  • VideoId:媒資唯一標識。

AppServer將這三者透傳給用戶端。

說明
  • 點播服務在下發上傳地址和憑證時還會自動建立媒資資訊(媒體 ID),用於媒資生命週期管理或ApsaraVideo for Media Processing。請妥善儲存媒體ID,作為媒資管理、音視頻播放、ApsaraVideo for Media Processing等的輸入。

階段二:直傳檔案

用戶端拿到憑證後,調用上傳 SDK 的初始化方法,傳入UploadAuthUploadAddressVideoId和本地檔案路徑。SDK內部自動完成:

  1. 解析 UploadAddress,得到 OSS Endpoint 和 Object Key。

  2. 將檔案按分區上傳至 OSS 儲存,過程支援斷點續傳和進度回調。

整個過程中,檔案直接從用戶端傳到 OSS,不經過AppServer。

階段三:返回上傳結果

OSS 完成檔案上傳後,向用戶端 SDK 返回成功狀態,SDK 觸發 onUploadSucceed 回調,攜帶 VideoId。與此同時,VOD 服務側會自動感知上傳完成,並根據預設的 TemplateGroupId 或 WorkflowId 觸發轉碼和處理流水線。也可配置事件回調以主動接收FileUploadComplete事件通知。

說明

憑證到期處理UploadAuth有效期間約 3000 秒。大檔案上傳期間若憑證到期,SDK 將觸發onUploadTokenExpired回調。此時用戶端需要重新請求AppServer調用重新整理視頻上傳憑證擷取新憑證後,用戶端再調用resumeWithAuth(newAuth) 介面即可斷點續傳,無需重傳已完成分區。

STS Token方式

方式簡介:使用者應用伺服器向用戶端下發STS Token,用戶端向點播服務擷取上傳地址和憑證,再上傳媒資到OSS。

階段一:擷取STS臨時憑證

用戶端向 AppServer 請求臨時訪問憑證。AppServer 使用 AK/SK 調用阿里雲 STS 的AssumeRole介面,擷取一組有時效限制的 AccessKeyIdAccessKeySecretSecurityToken(有效期間可設 900~3600 秒),然後返回給用戶端。完整 STS 授權流程請參見上傳授權

階段二:擷取上傳憑證 + 直傳檔案

用戶端用STS Token 初始化上傳 SDK。SDK 內部會自動攜帶 STS Token 調用 VOD 的 CreateUploadVideo(傳入 TitleFileName 等參數),擷取 UploadAuth + UploadAddress + VideoId,然後自動執行分區上傳。整個過程對開發人員透明,無需手動調用 VOD 介面。

階段三:返回上傳結果

上傳地址和憑證方式相同。OSS 完成檔案上傳後,SDK 觸發onUploadSucceed 回調,攜帶VideoId。VOD 服務側自動觸發轉碼和處理流水線。也可配置事件回調以接收FileUploadComplete事件通知。

方式對比

用戶端上傳支援兩種授權方式,對應不同的流程:

對比項

上傳地址和憑證方式(推薦)

STS Token 方式

憑證擷取方

AppServer調用VOD介面直接擷取。

AppServer調用STS 介面擷取臨時AK/SK/Token,用戶端再向VOD擷取

用戶端職責

用憑證初始化 SDK,直接上傳

用STS Token初始化 SDK,SDK自動向 VOD 換取憑證後上傳

用戶端與雲端互動次數

1次(拿憑證後直傳)

2次(先拿 Token,SDK 再拿憑證)

許可權粒度

單個視頻層級(每個 VideoId 獨立憑證)

Bucket/Object 層級(Token 有效期間內可操作多個檔案)

適用情境

大多數情境,推薦使用

已有STS體系的存量專案

功能說明

分區上傳

用戶端上傳 SDK 預設採用分區上傳方式(預設分區大小1MB)。SDK 將待上傳的檔案分成多個片段(Part)分別上傳,上傳完成之後將這些 Part 組合成一個完整的 Object。

分區上傳的優勢:

  • 提升大檔案上傳成功率:單個分區失敗只需重傳該分區,不需要從頭開始。

  • 支援斷點續傳:上傳失敗後,可以從最後一個成功上傳的分區繼續。

  • 提升上傳速度:多個分區可並發上傳(Web可通過parallel參數設定,預設為5,移動端自動管理)。

  • 即時進度回調:分區粒度的上傳進度回調,返回已上傳位元組數與檔案總大小。

使用分區上傳時,若上傳失敗可能會產生片段檔案,一般 7 天后會自動清除。還可以調用DeleteMultipartUpload介面手動清除片段檔案。

斷點續傳

如果上傳過程中出現網路錯誤導致上傳失敗,用戶端上傳 SDK 支援從最後一個成功上傳的分區開始繼續上傳,實現斷點續傳效果。

說明

SDK 自動處理斷點續傳。上傳失敗後重新上傳時,會自動從最後一個成功上傳的分區處繼續,無需手動幹預(圖片體積較小,Android SDK對圖片不啟用斷點續傳機制)。

更多功能

功能點

說明

支援的媒體格式

支援的媒體格式請參見支援的媒體格式。支援本地檔案上傳和網路檔案上傳(URL 拉取方式)。

檔案大小限制

本地檔案:最大支援 48.8 TB 的單個檔案。網路檔案:最大支援 5 GB 的單個檔案。設定 URL 上傳時需要將 URL 編碼後再傳入使用,避免存在特殊字元導致無法上傳。

媒資管理

支援設定中繼資料,如媒體標題(Title)、媒體標籤(Tags)、媒體分類(CateId)、視頻封面(CoverURL)等。可通過擷取上傳地址和憑證相關介面的參數設定。

音視頻轉碼

支援通過指定轉碼模板組或工作流程設定轉碼,也支援不轉碼。可通過擷取上傳地址和憑證相關介面的參數(如 TemplateGroupIdWorkflowId 等)設定。

上傳控制

包括開始、停止、暫停、恢複。SDK 內部自動完成斷點續傳,無需手動處理。

上傳加速

需聯絡商務申請開通上傳加速功能。申請開通後,可通過 SDKUserData 參數中的 AccelerateConfig 參數設定。僅支援 SDK 上傳方式,控制台上傳不支援加速。

網路切換

支援移動網路 3G/4G 與 Wi-Fi 之間切換。為了避免浪費 3G/4G 網路下的流量,切換到 3G/4G 網路時,可以調用 pause 暫停上傳;切換回 Wi-Fi 網路功能時,調用 resume 恢複上傳(網路切換的判斷邏輯需要應用自行實現)。

事件通知

支援設定回調擷取上傳事件通知。支援的事件請參見事件通知。配置回調請參見回調配置

支援的平台與版本

用戶端上傳 SDK 支援以下平台:

平台

語言

最低系統要求

相關文檔

Web

JavaScript

支援PC 瀏覽器與移動端H5

使用JavaScript SDK上傳檔案

Android

Java/kotlin

Android 4.0 及以上

使用Android SDK上傳檔案

iOS

Objective-C

iOS 8.0 及以上

使用iOS SDK上傳檔案

微信小程式

JavaScript

基於微信小程式架構

使用微信小程式SDK上傳檔案

說明

各端 SDK 的詳細版本變更記錄請參見上傳 SDK 發布歷史

計費說明

媒資上傳到ApsaraVideo for VOD不產生額外費用。相關費用來源於使用的阿里雲ApsaraVideo for VOD服務資源。

計費項目

說明

儲存費用

上傳完成後的媒體檔案儲存費用,按儲存量和時間長度計費。

流量費用

上傳流量免費(從用戶端到ApsaraVideo for VOD的入方向流量不計費)。下行播放流量另計。

轉碼費用

如上傳後觸發轉碼,按輸出檔案時間長度和轉碼規格計費。不轉碼則不產生。

上傳加速費用

開通並使用上傳加速功能時,按加速流量額外計費。具體聯絡商務諮詢。

說明

計費詳情請參見基礎服務計費資源套件