保利威文档中心

幫助中心

Java 上傳SDK使用文件

更新時間:2025-10-10 12:02:04

Polyv Java 上傳 SDK 為您提供服務端上傳媒體檔案到保利威雲點播平台的開發工具包。

功能

  • 快捷上傳多種格式的媒體檔案。
  • 支援上傳時的各種設定,如檔案標題、描述、標籤、上傳目錄、是否開啟課件優化處理等。
  • 採用分片並發上傳的方式,支援斷點續傳

使用方法

前提條件

  1. 使用本 SDK 前,要先開通保利威雲點播服務。如果您還不瞭解該服務,請登入產品主頁查看,詳見:雲點播
  2. 取得 userId、secretKey 等相關資訊用於使用者身份校驗,您可以在「雲點播管理後台 -> 設定 -> API 介面」頁面中找到相關資訊,點選這裡登入後台

環境要求

Java 版本 1.8.0 及以上

整合 SDK

  1. 下載 Java 上傳 SDK 開發包(包含範例程式碼和所需 jar 包),點選這裡下載
  2. 將解壓縮後的 jar 檔案複製到您的專案中;
  3. 使用 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 發佈
联系客服,在线咨询