最終更新日:2023-02-01 18:26:06
SDKはJavaプラットフォームのみをサポートしており、JDK 1.6以上が必要です。 JDK 1.8を推奨します。
SDKを使用する前に、クラウドVoDサービスが利用可能であることを確認し、AccountIDとアクセスキーのシークレットを取得してください。
クラス ** CloudvUploadHandler** を介してアップロードできます。ここでは、このクラスの概要を説明します。
public String upload(String uploadFilePath, String userId, String secretKey, UploadObserver uploadObserver, UploadFileParam uploadFileParam)
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
uploadfilePath | 文字列 | はい | アップロードするファイルのフルパス。 |
userId | 文字列 | 必要な | アカウント ID。カスタマーサポートに連絡して、アカウント ID を取得することができます。 |
secretKey | 文字列 | はい | AccessKeyシークレットは、コンソールの**[セキュリティ設定]** > [アクセス制御] > [ユーザー情報管理] > [アクセスキー管理] でアクセスキーのシークレットを取得することができます。 |
uploadObserver | アップロードオブサーバー | いいえ | アップロードの開始、アップロードの成功、アップロードの失敗、アップロードの進行状況のコールバック通知を受信するために使用されるインターフェイスuploadObserverを実装する、クラスCustomUploadObserverのインスタンス。詳しくは、アップロードの進行状況の通知をご覧ください。 |
uploadFileParam | アップロードファイルパラメータ | いいえ | 以下で説明するように、アップロードプロセス中に、設定の様々なパラメータを設定するために使用されます。 |
UploadFileParamの説明
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
categoryNameBeanList | リスト | オプション | ビデオ カテゴリの場合、カテゴリとサブカテゴリの両方を一度に親に設定することができます。 例えば、 [{“childName”:“子カテゴリ1”,“parentName”:“親カテゴリ1”},{“childName”:“子カテゴリ2”,“parentName”:“親カテゴリ2” } ]。 |
transCodeCombineName | 文字列 | オプション | トランスコードテンプレート。指定した場合、ファイルがアップロードされた後、トランスコードが自動的に実行されます。 |
waterMarkName | 文字列 | オプション | ビデオに追加する透かし。このパラメータは、transCodeCombineNameで特定のトランスコードテンプレートが指定された場合のみ有効です。 transCodeCombineName のみが指定され、waterMarkName が指定されていない場合、ウォーターマークも機能しません。 |
domain | 文字列 | オプション | ドメイン名を再生する.ドメイン名を記入し、空欄またはドメイン名が存在しない場合は、ビデオオンデマンドのデフォルトのドメイン名が使用されます。 |
タイプ | 説明 |
---|---|
string | アップロードされたビデオの一意の識別情報であるビデオ ID。 |
public static void main(String[] args) {
try {
CloudvUploadHandler cloudvUploadHandler = new CloudvUploadHandler();
String filePath = "F:\\test.mp4";
String userId = "xxxxxx";
String secretKey = "xxxxxxxxxxxxxxxxxxxx";
CategoryNameBean categoryNameBean = new CategoryNameBean();
categoryNameBean.setParentName("Parent Category");
categoryNameBean.setChildName("Child Category");
List<CategoryNameBean> categoryNameBeanList = new ArrayList<CategoryNameBean>();
categoryNameBeanList.add(categoryNameBean);
String transCodeCombineName = "Transcoding Template Name";
String waterMarkName = "Watermark";
String domain = "Your domain";
UploadFileParam uploadFileParam = new UploadFileParam();
uploadFileParam.setCategoryNameBeanList(categoryNameBeanList);
uploadFileParam.setTransCodeCombineName(transCodeCombineName);
uploadFileParam.setWaterMarkName(waterMarkName);
uploadFileParam.setDomain(domain);
String videoId = cloudvUploadHandler.upload(filePath, userId, secretKey, null, uploadFileParam);
} catch (Exception e) {
e.printStackTrace();
}
}
一般的に、デフォルト設定で、満足のいくアップロード速度を実現できます。アップロードの速度や安定性がお客様の要件を満たしていない場合、アップロードパラメータを調整して追加の設定を行うと、一度にグローバルに有効になります。
パラメータ | 説明 | デフォルト | 構成例 |
---|---|---|---|
BLOCK_SIZE | マルチパートアップロードのブロックサイズ。値の範囲:4M-32M、4の倍数です。 | 4MB | BaseBlockUtil.BLOCK_SIZE = 32 * BaseBlockUtil.MB |
CHUNK_SIZE | マルチパートアップロードのチャンクサイズ。値の範囲:4M-32Mで、4の倍数です。この値は設定されたブロックサイズより大きくしないでください。 スライスサイズを適切に大きくすると、アップロード速度が向上する場合があります。 | 4MB | BaseBlockUtil.CHUNK_SIZE = 4 * BaseBlockUtil.MB |
THREAD_NUN | マルチパート uplaod を使用する場合のスレッド数。1-10 の範囲です。 | 5 | BaseBlockUtil。 THREAD_NUN = 5 |
FILE_BUFFER_SIZE | アップロードするファイルのコンテンツを読み込むためのバッファサイズ。バッファサイズを適切に大きくすると、アップロード速度が向上する場合がありますが、メモリ使用量が増加する可能性があります。値は 4 の倍数である必要があります。 | 4KB | BaseBlockUtil.FILE_BUFFER_SIZE = 1024 * BaseBlockUtil.KB |
TRIED_TIMES | アップロードに失敗した場合の自動再試行の数。 | 3 | BaseBlockUtil.TRIED_TIMES = 5 |
public static void main(String[] args) {
try {
//Set the block size
BaseBlockUtil.BLOCK_SIZE = 32 * BaseBlockUtil.MB;
//Set the chunk size
BaseBlockUtil.CHUNK_SIZE = 4 * BaseBlockUtil.MB;
//Set the number of threads
BaseBlockUtil.THREAD_NUN = 5;
//Set the buffer size
BaseBlockUtil.FILE_BUFFER_SIZE = 2 * BaseBlockUtil.MB;
//Set retry times
BaseBlockUtil.TRIED_TIMES = 5;
CloudvUploadHandler cloudvUploadHandler = new CloudvUploadHandler();
String filePath = "D:\\test.mp4";
String userId = "xxxxxx";
String secretKey = "xxxxxxxxxxxxxxxxxxxx";
String videoId = cloudvUploadHandler.upload(filePath, userId, secretKey, null);
} catch (Exception e) {
e.printStackTrace();
}
}
アップロードの開始、アップロードの進行状況、アップロードの成功、アップロードの失敗のアップロードの進行状況の取得など、アップロードの進行状況通知をカスタマイズすることができます。
public interface UploadObserver {
/**
* Call this function before upload
* @param id
* @param filePath
*/
void onBegin(String id, String filePath);
/**
* Call this function after upload success
* @param result
*/
void onSuccess(UploadResult result);
/**
* Call this function when there is an error
* @param ex
*/
void onFail(Exception ex);
/**
* Callback after multi-part upload
*
* @param uploaded
* @param total
*/
void onProcess(long uploaded, long total);
}
UploadObserverの実装方法:
public class CustomUploadObserver implements UploadObserver {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomUploadObserver.class);
private String videoId;
private String filePath;
@Override
public void onBegin(String videoId, String filePath) {
this.videoId = videoId;
this.filePath = filePath;
LOGGER.info("videoId:{}, filePath:{}, Start upload", videoId, filePath);
}
@Override
public void onSuccess(UploadResult result) {
LOGGER.info("videoId:{}, filePath:{}, Success upload", videoId, filePath);
}
@Override
public void onFail(Exception ex) {
String message = "videoId:" + videoId + "filePath:" + filePath + ",Error occurs during upload";
LOGGER.error("message:{}, error:", message, ex);
throw new RuntimeException(message, ex);
}
@Override
public void onProcess(long uploaded, long total) {
LOGGER.info("videoId:{},filePath:{}, Upload progress:{},", videoId, filePath, uploaded * 100 / total + "%");
}
}
呼び出し方法:
public static void main(String[] args) {
try {
CloudvUploadHandler cloudvUploadHandler = new CloudvUploadHandler();
String filePath = "D:\\test.mp4";
String userId = "xxxxxx";
String secretKey = "xxxxxxxxxxxxxxxxxxxx";
CustomUploadObserver uploadObserver = new CustomUploadObserver();
String videoId = cloudvUploadHandler.upload(filePath, userId, secretKey, uploadObserver);
} catch (Exception e) {
e.printStackTrace();
}
}