Java 上傳SDK使用文件
更新時間:2025-10-10 12:02:04
Polyv Java 上傳 SDK 為您提供服務端上傳媒體檔案到保利威雲點播平台的開發工具包。
功能
- 快捷上傳多種格式的媒體檔案。
- 支援上傳時的各種設定,如檔案標題、描述、標籤、上傳目錄、是否開啟課件優化處理等。
- 採用分片並發上傳的方式,支援斷點續傳。
使用方法
前提條件
- 使用本 SDK 前,要先開通保利威雲點播服務。如果您還不瞭解該服務,請登入產品主頁查看,詳見:雲點播。
- 取得 userId、secretKey 等相關資訊用於使用者身份校驗,您可以在「雲點播管理後台 -> 設定 -> API 介面」頁面中找到相關資訊,點選這裡登入後台。
環境要求
Java 版本 1.8.0 及以上
整合 SDK
- 下載 Java 上傳 SDK 開發包(包含範例程式碼和所需 jar 包),點選這裡下載。
- 將解壓縮後的 jar 檔案複製到您的專案中;
- 使用 IDE 開發時引用 jar 包的方法,以 Eclipse 和 IntelliJ IDEA 為例說明如下:
3.1 在 Eclipse 中選擇您的工程,右鍵 -> Properties -> Java Build Path -> Add JARs;
3.2 在 IntelliJ IDEA 中開啟您的工程,File -> Project Structure -> Modules -> 右側 Dependencies -> + -> JARs or directories
API 參考
1. 入口類 PolyvUploadClient.java
1.1 建構方法
PolyvUploadClient(String userId, String secretKey, int partitionSize, String checkpoint, int threadNum)
參數解釋:
| 參數 | 說明 |
|---|---|
| userId | 保利威帳號 ID |
| secretKey | 保利威帳號的 secretKey |
| partitionSize | 可指定分片上傳時每個分片的大小,單位:位元組,預設為 1MB,取值範圍為 100KB~5GB |
| checkpoint | 使用斷點續傳時,寫入續傳位置的本地磁碟路徑,需保證檔案路徑已建立好 |
| threadNum | 可指定分片上傳時的並發執行緒數,預設為 1。註:該配置會佔用伺服器 CPU 資源,需根據伺服器情況指定。 |
1.2 上傳方法
uploadVideoParts(VideoInfo videoInfo)
該方法回傳影片 ID。
2. 影片實體類 VideoInfo.java
影片資訊欄位:
| 參數名 | 類型 | 必選 | 說明 |
|---|---|---|---|
| fileLocation | String | true | 影片檔案在本機的絕對路徑,必須包含檔案副檔名 |
| title | String | false | 影片標題,為空時會取影片檔名作為標題(不含副檔名) |
| fileSize | Long | false | 檔案大小 |
| describ | String | false | 影片簡介 |
| tag | String | false | 影片標籤,多個用英文逗號分隔 |
| cataId | Long | false | 影片分類 ID,預設值:1,表示上傳到預設分類 |
| luping | Integer | false | 是否進行課件優化處理,預設值:0 |
| keepsource | Integer | false | 是否保持原始檔播放,預設:0 |
| videoPoolId | String | false | 影片 ID,當上傳中斷續傳時,需要指定 vid 來恢復上傳 |
| state | String | false | 自訂擴展資訊,如果提交了該欄位,會在上傳完成的事件回呼中透傳回傳。 |
範例程式碼
import net.polyv.bean.vo.VideoInfo;
import net.polyv.callback.UploadCallBack;
import net.polyv.entry.PolyvUploadClient;
import net.polyv.enumeration.UploadErrorMsg;
public class PolyvUploadVideoDemo {
private static final String userId = ""; //保利威账号的userId(必填)
private static final String secretKey = ""; //账号的secretKey(必填)
public static void main(String[] args) {
int partitionSize = 1*1024 * 1024; //可指定分片上传时每个分片的大小,默认为1M
int threadNum = 1; //可指定分片上传时的并发线程数,默认为1,(注:该配置会占用服务器CPU资源,需根据服务器情况指定)
String checkpoint = "/Users/TestUser/Desktop"; //断点续传的上传位置写入路径
PolyvUploadClient client = new PolyvUploadClient(userId, secretKey, partitionSize, checkpoint, threadNum); //初始化PolyvUploadClient实例
VideoInfo videoInfo = new VideoInfo();
videoInfo.setFileLocation("/Users/TestUser/Desktop/testVideo.mp4"); //视频文件在服务器上的绝对路径,必须包含拓展名(必填)
videoInfo.setTitle("测试视频"); // 视频标题(必填)
videoInfo.setCataId(1L); // 上传的分类目录,默认值:1,表示上传到默认分类(可选)
videoInfo.setDescrib("视频描述"); // 视频描述(可选)
videoInfo.setTag("视频标签"); // 视频标签(可选)
videoInfo.setLuping(0); //是否进行课件优化处理,默认值:0(可选)
videoInfo.setKeepSource(0); //是否保持源文件播放,默认:0(可选)
videoInfo.setState("自定义拓展信息"); //如果提交了该字段,会在上传完成的事件回调中透传返回
System.out.println("vid=" + client.uploadVideoParts(videoInfo, new UploadCallBack() {
@Override
public void start(String s) {
System.out.println("start=" + s);
}
@Override
public void process(String s, long l, long l1) {
System.out.println("process=" + s + ",uploaded=" + l + ", total=" + l1);
}
@Override
public void complete(String s) {
System.out.println("complete=" + s);
}
@Override
public void success(String s) {
System.out.println("success=" + s);
}
@Override
public void error(String s, UploadErrorMsg uploadErrorMsg) {
System.out.println("error=" + s + ", message=" + uploadErrorMsg.getMessage());
}
}, true));
// 当上传中断,重新恢复的时候,可以指定vid来恢复上传 videoInfo.setVideoPoolId("xxxxxxxxxxx");
// videoInfo = new VideoInfo();
// videoInfo.setFileLocation("C:\\Users\\Lenovo\\Desktop\\video\\test.mp4");
// videoInfo.setVideoPoolId("xxxxxxxxxxx");
// System.out.println("vid=" + client.uploadVideoParts(videoInfo), new UploadCallBack() {
// @Override
// public void start(String s) {
// System.out.println("start=" + s);
// }
// @Override
// public void process(String s, long l, long l1) {
// System.out.println("process=" + s + ",uploaded=" + l + ", total=" + l1);
// }
// @Override
// public void complete(String s) {
// System.out.println("complete=" + s);
// }
// @Override
// public void success(String s) {
// System.out.println("success=" + s);
// }
// @Override
// public void error(String s, UploadErrorMsg uploadErrorMsg) {
// System.out.println("error=" + s + ", message=" + uploadErrorMsg.getMessage());
// }
// }, true);
// }
}
}
Change log
| 日期 | 版本 | 更新內容 |
|---|---|---|
| 2020-03-29 | v1.1.1 | 支援自訂擴展欄位,可在上傳完成回呼中透傳回傳 |
| 2019-08-05 | v1.0.0 | 支援斷點續傳的新版 Java 上傳 SDK 發佈 |
