最終更新日:2023-02-02 14:07:44
クラウドVoDは、APPに埋め込むためのAndroidアップロードSDKを提供し、AndroidモバイルデバイスからクラウドVoDにファイルを簡単にアップロードできるようにします。
詳細については、ビデオアップロードトークンを取得するをご覧ください。
初期化して、アップロードドメイン、タイムアウト、アップロードの並行処理、および再試行を設定します。
com.chinanetcenter.wcs.android.Config.java
public static final String PUT_URL = "upload.cloudv.haplat.net";
FileUploader.setUploadUrl("upload.cloudv.haplat.net");
ClientConfig config = new ClientConfig();
// Set multi-part upload concurrency at 10,default at 5.
config.setMaxConcurrentRequest(10);
FileUploader.setClientConfig(config);
import com.chinanetcenter.wcs.android.api.ParamsConf;
conf = new ParamsConf();
conf.fileName = '<Name of the file to be uploaded>';
conf.keyName = <File name to be displayed on console>;
conf.mimeType = '<mimeType>';
FileUploader.setParams(conf);
デフォルトのブロックサイズは4Mで、4Mの倍数である必要があり、最大100Mを超えることはできません。デフォルトのチャンクサイズは4Mで、64Kの倍数である必要があり、ブロックサイズの最大値を超えることはできません。
FileUploader.setBlockConfigs(8, 512); //Set the block size at 8MB and the chunk size at 512KB
/**
* Example
*/
private void uploadFile(File srcFile) {
/**
* UPLOADER_TOKEN--upload token, which can be retrieved from Get Upload Token API.
* srcFile-content to be uploaded
*/
FileUploader.upload(UPLOADER_TOKEN, srcFile, new FileUploaderListener() {
/** Callback for upload success **/
@Override
public void onSuccess(int status, JSONObject responseJson) {
Log.d(TAG, "responseJson : " + responseJson.toString());
}
/** Callback for upload fail **/
@Override
public void onFailure(OperationMessage operationMessage) {
Log.e(TAG, "errorMessage : " + operationMessage.toString());
}
/** Callback for upload progress **/
@Override
public void onProgress(int bytesWritten, int totalSize) {
Log.d(TAG, String.format("Progress %d from %d (%s)", bytesWritten, totalSize, (totalSize > 0) ? ((float) bytesWritten / totalSize) * 100 : -1));
}
});
}
モバイル端末では大容量のファイルをアップロードするのに時間がかかり、何らかの異常でファイルのアップロードが停止した場合、すべてのコンテンツの再アップロードが必要であり、ユーザーエクスペリエンスに影響を与えます。そのため、大きなファイルをアップロードする場合は、マルチパートアップロードを使用することをお勧めします。
マルチパートアップロードとは、大きなファイルを複数のブロックとカスタムサイズのチャンクにカットし、これらのブロックを並行してアップロードすることです。ブロックのアップロードに失敗した場合、クライアントはこのブロックを再アップロードするだけです。
private static final long DEFAULT_BLOCK_SIZE = 1 * 1024 * 1024;
/**
* context--relevant information
* uploadToken--upload token
* ipaFile--content to be uploaded
* DEFAULT_BLOCK_SIZE--block size
*/
FileUploader.sliceUpload(context, uploadToken, ipaFile, DEFAULT_BLOCK_SIZE, new SliceUploaderListener() {
/** Callback for upload success **/
@Override
public void onSliceUploadSucceed(JSONObject jsonObject) {
Log.d("CNCLog", "slice upload succeeded.");
}
/** Callback for upload fail **/
@Override
public void onSliceUploadFailured(OperationMessage operationMessage) {
Log.d("CNCLog", "slice upload failured.");
}
/** Callback for upload progress **/
@Override
public void onProgress(long uploaded, long total) {
Log.d("CNCLog", String.format(Locale.CHINA, "uploaded : %s, total : %s", uploaded, total));
}
});