Android Upload SDK

最終更新日:2023-02-02 14:07:44

クラウドVoDは、APPに埋め込むためのAndroidアップロードSDKを提供し、AndroidモバイルデバイスからクラウドVoDにファイルを簡単にアップロードできるようにします。

はじめに

SDKをダウンロード
ソースコードとインストールガイド

アップロードトークンとURLを取得する

詳細については、ビデオアップロードトークンを取得するをご覧ください。

初期化

初期化して、アップロードドメイン、タイムアウト、アップロードの並行処理、および再試行を設定します。

1. 設定ファイルを変更し、アップロードドメイン、管理ドミアンを設定します。

com.chinanetcenter.wcs.android.Config.java

public static final String PUT_URL = "upload.cloudv.haplat.net";

2. プロジェクトのパラメータを設定する

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);

3. フォームパラメータを設定する

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);

3. ブロックとチャンクサイズを設定する

デフォルトのブロックサイズは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));
          }
});