すべてのプロダクト
Search
ドキュメントセンター

:ファイルのアップロード

最終更新日:Jun 23, 2022

ファイルをアップロードするには、クライアントからApsaraVideo VODにメディアファイルをアップロードします。 メディアファイルは、ローカルファイルまたはオンラインファイルとすることができる。 VODUploadClientは、Androidクライアントからメディアファイルをアップロードするために使用されるアップロードインスタンスです。 ビデオがアップロードされると、videoIdパラメーターが返されます。 videoIdパラメーターの値は、ビデオIDを示します。 次に、ビデオを再生するには、ビデオIDに基づいてストリーミングURLを取得する必要があります。 このトピックでは、Android用アップロードSDKを使用してメディアファイルをアップロードする方法について説明します。

前提条件

Android用アップロードSDKが統合されています。 詳細については、「Android用アップロードSDKの統合」をご参照ください。

ファイルのアップロード

Androidクライアントからファイルをアップロードするには、次の手順を実行します。

  1. アップロードURLとアップロード資格情報またはSecurity Token Service (STS) トークンを取得します。

  2. 取得したアップロード資格情報またはSTSトークンを使用して、アップロードインスタンスを初期化します。

  3. アップロード中にキーメッセージを受信するコールバックを設定します。

  4. アップロードするファイルのタイプに基づいて、アップロードパラメーターを作成します。 オーディオ、ビデオ、または画像をアップロードできます。

  5. アップロードを開始します。

説明

画像のアップロードパラメータは、オーディオおよびビデオファイルのアップロードパラメータとは少し異なります。 補助メディア資産はクライアントからアップロードできません。

ステップ1: アップロードの承認を取得する

ApsaraVideo VODのクライアントアップロードSDKには、アップロードURLとアップロード資格情報を使用する認証方法と、STSトークンを使用する認証方法の2つが用意されています。 詳細については、「資格情報とSTSの比較」をご参照ください。

実行結果

取得したアップロードURLと資格情報またはSTSトークンは、アップロードインスタンスを初期化するための入力パラメーターとして使用されます。

手順2: アップロードインスタンスの初期化

アップロードURLと資格情報またはSTSトークンを使用して、ビジネスニーズに基づいてアップロードインスタンスを初期化します。

アップロードURLと資格情報を使用してアップロードインスタンスを初期化する

1。 アップロードインスタンスVODUploadClientの初期化コールバックを宣言します。

uploader = new VODUploadClientImpl(getApplicationContext());

2. アップロードインスタンスVODUploadClientを初期化します。

説明
  • アップロードURLと資格情報を使用する場合は、initメソッドを呼び出してアップロードインスタンスを初期化します。

  • setUploadAuthAndAddress(uploadFileInfo, uploadAuth, uploadAddress) メソッドでアップロードURLと認証情報を指定し、アップロードの開始時に発生するonUploadStartedコールバックでメソッドを呼び出します。

  • アップロードURLと資格情報を使用してオーディオまたはビデオファイルをアップロードするときに有効期限が切れると、onUploadTokenExpiredコールバックが発生します。 resumeWithAuth(uploadAuth) メソッドを呼び出して、新しいアップロード資格情報を使用してアップロードを再開します。

// VODUploadClientの作成
final VODUploadClient uploader = new VODUploadClientImpl(getApplicationContext());
// setup callback
VODUploadCallback callback = new VODUploadCallback() {
            public void onUploadSucceed(UploadFileInfo info) {
                OSSLog.logDebug("onsuccess" + info.getFilePath());
            }
            public void onUploadFailed(UploadFileInfo info, String code, String message) {
                OSSLog.logError("onfailed ------------------" + info.getFilePath() + "" + code + "" + message);
            }
            public void onUploadProgress(UploadFileInfo info, long uploadedSize, long totalSize) {
                OSSLog.logDebug("onProgress ------------------" + info.getFilePath() + "+ uploadedSize +" "+ totalSize);
                    }
                }
            }
            public void onUploadTokenExpired() {
                OSSLog.logError("onExpired ------------");
                    // RefreshUploadVideo操作を呼び出して、アップロード資格情報を更新します。 
                    uploadAuth = "新しいアップロード資格情報";
                    uploader.resumeWithAuth(uploadAuth);
            }
            public void onUploadRetry (文字列コード, 文字列メッセージ) {
                OSSLog.logError("onUploadRetry -----------");
            }
            public void onUploadRetryResume() {
                OSSLog.logError("onUploadRetryResume -----------");
            }
            public void onUploadStarted(UploadFileInfo uploadFileInfo) {
                OSSLog.logError("onUploadStarted ------------");
                // uploadAuthパラメーターの値はアップロード資格情報で、uploadAddressパラメーターの値はアップロードURLです。 
                uploader.setUploadAuthAndAddress(uploadFileInfo, uploadAuth, uploadAddress);
            }
        };
// アップロードインスタンスを初期化します。
uploader.init (コールバック); 

STSトークンを使用してアップロードインスタンスを初期化する

1。 アップロードインスタンスVODUploadClientの初期化コールバックを宣言します。

uploader = new VODUploadClientImpl(getApplicationContext());

2. アップロードインスタンスVODUploadClientを初期化します。

説明
  • STSトークンを使用する場合は、init(accessKeyId, accessKeySecret, secretToken, expireTime, callback) メソッドを呼び出して、アップロードインスタンスを初期化します。

  • 取得したSTSトークンに初期化パラメーターsecretTokenを設定します。

  • STSトークンの有効期限が切れると、OnUploadTokenExpiredコールバックが発生します。 resumeWithToken(accessKeyId, accessKeySecret, secretToken, expireTime) メソッドを呼び出して、新しいSTSトークンを使用してアップロードを再開します。

// VODUploadClientオブジェクトの作成
uploader = new VODUploadClientImpl(getApplicationContext());
// setup callback
// setup callback
VODUploadCallback callback = new VODUploadCallback() {
            public void onUploadSucceed(UploadFileInfo info) {
                OSSLog.logDebug("onsuccess" + info.getFilePath());
            }
            public void onUploadFailed(UploadFileInfo info, String code, String message) {
                OSSLog.logError("onfailed ------------------" + info.getFilePath() + "" + code + "" + message);
            }
            public void onUploadProgress(UploadFileInfo info, long uploadedSize, long totalSize) {
                OSSLog.logDebug("onProgress ------------------" + info.getFilePath() + "+ uploadedSize +" "+ totalSize);
                    }
                }
            }
            public void onUploadTokenExpired() {
                OSSLog.logError("onExpired ------------");
                    // 新しいSTSトークンが取得されたら、resumeWithTokenメソッドを呼び出します。
                    uploader.resumeWithToken(accessKeyId、accessKeySecret、secretToken、expireTime);
            }
            public void onUploadRetry (文字列コード, 文字列メッセージ) {
                OSSLog.logError("onUploadRetry -----------");
            }
            public void onUploadRetryResume() {
                OSSLog.logError("onUploadRetryResume -----------");
            }
            public void onUploadStarted(UploadFileInfo uploadFileInfo) {
                OSSLog.logError("onUploadStarted ------------");
            }
        };
// アップロードインスタンスを初期化します。 STSトークンの有効期限が切れると、onUploadTokenExpiredコールバックが発生します。 resumeWithTokenメソッドを呼び出して、新しいSTSトークンを使用してアップロードを再開します。 デフォルトでは、再開可能なアップロードがサポートされています。
uploader.init(accessKeyId、accessKeySecret、secretToken、expireTime、コールバック); 

手順3: アップロード状態コールバックのクラスを設定する

VODUploadCallbackオブジェクトを設定します。 オブジェクトは、アップロード状態コールバックのクラスに属します。 次のコールバックメソッドを設定する必要があります。

/**
 このコールバックは、アップロードが成功すると発生します。
 @ param infoアップロードしたファイルに関する情報。
 * /
void onUploadSucceed(UploadFileInfo info);
/**
 このコールバックは、アップロードが失敗すると発生します。
 @ param infoアップロードしたファイルに関する情報。
 @ param codeエラーコード。
 @ paramメッセージエラーメッセージ。
 */
 void onUploadFailed(UploadFileInfo info、文字列コード、文字列メッセージ);
/**
 このコールバックは、デフォルトまたはカスタムアップロードの進行状況に達すると発生します。
 @ param fileInfoアップロードするファイルに関する情報。
 @ param uploadedSizeアップロードされたパーツのサイズ。
 @ param totalSizeアップロードしたファイルの合計サイズ。
 */
 void onUploadProgress(UploadFileInfo info, long uploadedSize, long totalSize);
/**
 このコールバックは、アップロードURLと資格情報の有効期限が切れると発生します。
 アップロードURLと資格情報を使用してファイルをアップロードする場合は、resumeWithAuthメソッドを呼び出してアップロードを再開します。
 STSトークンを使用してメディアファイルをアップロードする場合は、resumeWithTokenメソッドを呼び出してアップロードを再開します。
 */
 void onUploadTokenExpired();
/**
 このコールバックは、システムがアップロードを再試行すると発生します。
 */
 void onUploadRetry (文字列コード、文字列メッセージ);
/**
 このコールバックは、アップロードの再試行が完了した後にシステムがアップロードを再開すると発生します。
 */
 void onUploadRetryResume ();
/**
 このコールバックは、アップロードの開始時に発生します。
 アップロードURLと資格情報を使用してファイルをアップロードする場合は、setUploadAuthAndAddress:uploadAuth:uploadAddress: メソッドを呼び出して、アップロードURLと資格情報を指定します。
 @ param fileInfoアップロードするファイルに関する情報。
 */
  void onUploadStarted(UploadFileInfo uploadFileInfo); 

ステップ4: アップロード要求関数を作成する

オーディオまたはビデオファイルのパラメータ

アップロードリストにオーディオまたはビデオファイルを追加するアップロード要求関数を作成します。

String filePath = "ファイルのパス";
VodInfo vodInfo=新しいVodInfo();
vodInfo.setTitle("タイトル" + インデックス);
vodInfo.setDesc("説明" + インデックス);
vodInfo.ca teId (19);
vodInfo.tags("スポーツ");
uploader.addFile(filePath,vodInfo); 

画像ファイルのパラメータ

画像ファイルをアップロードリストに追加するアップロード要求関数を作成します。

javaString filePath = "イメージのパス";
VodInfo vodInfo=新しいVodInfo();
vodInfo.setTitle("タイトル" + インデックス);
vodInfo.setDesc("説明" + インデックス);
vodInfo.ca teId (19);
vodInfo.tags("スポーツ");
uploader.addFile(filePath,vodInfo); 

vodInfoの説明

// タイトル。
文字列タイトル;
// タグ。
リストタグ;
// 説明。
文字列desc;
// カテゴリID。
idInteger cateId;
// サムネイルのURL。 値は、https:// で始まる完全なURLである必要があります。
文字列coverUrl; 
説明

アップロードするファイルを追加すると、SDKは次の構造を持つUploadFileInfoオブジェクトにファイルをカプセル化します。

// ファイルのローカルパス。
文字列filePath;
// OSSエンドポイント。
文字列エンドポイント;
// OSSバケット。
文字列バケット;
// OSSオブジェクト。
String object;
//VodInfo
VodInfo vodInfo;

ステップ5: アップロードを開始する

  1. start() メソッドを呼び出して、アップロードを開始します。

    void start();

    このメソッドが呼び出されると、onUploadStartedコールバックが発生します。 アップロードURLと資格情報を使用してファイルをアップロードする場合は、このコールバックでアップロードURLと資格情報を指定します。 次のサンプルコードに例を示します。

    void setUploadAuthAndAddress(UploadFileInfo uploadFileInfo, String uploadAuth, String uploadAddress)

  2. ファイルのアップロードが開始されると、onUploadProgressコールバックが起動され、アップロードの進行状況が同期されます。

  3. ファイルがアップロードされると、onUploadSucceedコールバックが起動され、アップロード結果が返されます。 コールバックパラメーターには、videoIdimageUrlが含まれます。

実行結果

  • ビデオがアップロードされると、videoIdパラメーターが返されます。 videoIdパラメーターの値は、ビデオIDを示します。 次に、ビデオを再生するためのストリーミングURLを取得する必要があります。 詳細については、「再生資格情報を使用したビデオの再生」をご参照ください。

  • イメージがアップロードされると、imageUrlパラメーターが返されます。 The value of the imageUrl parameter indicates the image URL. URL署名が有効になっている場合、イメージURLは特定の期間後に期限切れになります。 詳細については、「URL認証の設定」をご参照ください。

アップロードリストの管理

アップロードインスタンスVODUploadClientを使用すると、アップロードする複数のファイルを順番に追加できます。 次の方法を使用して、アップロードリストを管理できます。

説明

VODUploadClientオブジェクトを使用すると、一度に複数のファイルをアップロードできます。 ただし、アップロードURLと資格情報を使用してメディアファイルをアップロードする場合は、各ファイルの構成を個別に設定する必要があります。 一度に複数のファイルをアップロードするためのコードは複雑です。 そのため、一度に1つのファイルをアップロードリストに追加することをお勧めします。

  • アップロードリストからファイルを削除します。 削除するファイルがアップロード中の場合、システムはアップロードをキャンセルし、リスト内の次のファイルのアップロードを自動的に開始します。

    void deleteFile(int index)
  • アップロードリストをクリアします。 リスト内のファイルがアップロードされている場合、システムはアップロードをキャンセルします。

    void clearFiles()
  • アップロードリストを照会します。

    リスト <UploadFileInfo> listFiles()
  • アップロードリストから削除せずに、アップロードリスト内のファイルをキャンセル済みとしてマークします。 キャンセルするファイルがアップロード中の場合、システムはアップロードをキャンセルし、リスト内の次のファイルのアップロードを自動的に開始します。

    cancelFile(int index)
  • キャンセルされたファイルを再開し、自動的にファイルのアップロードを開始します。

    resumeFile(intインデックス)

アップロードの制御

次の方法を使用して、アップロードインスタンスVODUploadClientのアップロードを制御できます。

  • アップロードを停止します。 ファイルがアップロードされている場合、システムはアップロードをキャンセルします。

    void stop();
    説明

    アップロードを停止した後にアップロードを再開する必要がある場合は、resumeFileメソッドを呼び出して、アップロードするファイルを再開します。 または、アップロードリストをクリアし、ファイルを再度追加してアップロードします。

  • アップロードを一時停止します。

    void pause();
  • アップロードを再開します。

    void resume();

コールバックの処理

アップロードインスタンスVODUploadClientに対して、次のコールバックが発生する可能性があります。

  • onUploadFailed

    アップロードが失敗すると、onUploadFailedコールバックが発生します。 codeおよびmessageコールバックパラメーターに基づいて、障害の原因を確認できます。 さらに、プロンプトがwebページに表示されます。 エラーコードの詳細については、「エラーコード」および「例外処理」をご参照ください。

  • onUploadTokenExpired

    onUploadTokenExpiredコールバックは、アップロード資格情報の有効期限が切れると発生します。 AppServerにリクエストを送信して、新しいアップロード資格情報を取得し、新しいアップロード資格情報を使用してアップロードを再開するメソッドを呼び出します。

説明

コールバックで新しいアップロード資格情報を指定する必要があります。

  • onSTokenExpired

onSTSTokenExpriedコールバックは、STSトークンの有効期限が切れると発生します。 AppServerにリクエストを送信して新しいSTSトークンを取得し、次のメソッドを呼び出してアップロードを再開できます。

refreshSTSToken(accessKeyId、accessKeySecret、securityToken、expriedTime);
  • uploadRetry

    アップロードがタイムアウトすると、uploadRetryコールバックが発生し、システムは自動的にファイルのアップロードを再試行します。 webページでプロンプトを受け取るか、cancelメソッドを呼び出してアップロードをキャンセルできます。 さらに、maxRetryCountパラメーターを設定して、再試行の最大数を指定できます。 再試行の結果、アップロードを再開できることが示された場合、uploadRetryResumeコールバックが起動され、アップロードが再開されます。

高度な機能

タイムアウト処理

アップロードインスタンスVODUploadClientを使用すると、アップロードがタイムアウトしたときの最大再試行回数を設定できます。

/**
アップロードがタイムアウトしたときの再試行の最大回数を設定します。 デフォルト値はINT_MAXです。これは、再試行の最大回数がタイムアウト期間に等しいことを意味します。
 * /
void setVodHttpClientConfig(VodHttpClientConfig var); 

マルチパートアップロード

アップロードインスタンスVODUploadClientでは、マルチパートアップロードのしきい値としてファイルサイズを指定できます。 アップロードするファイルのサイズがpartSizeパラメーターに指定された値を超える場合、マルチパートアップロードが有効になります。

/**
 マルチパートアップロードの各パーツのサイズを指定します。 デフォルト値: 1024 × 1024。 単位:バイト アップロードするファイルのサイズがpartSizeパラメーターに指定された値を超える場合、マルチパートアップロードが有効になります。 
* /
void setPartSize (長いpartSize); 

特定の保存場所へのアップロード

アップロードインスタンスVODUploadClientを使用して、特定の保存場所にファイルをアップロードできます。 保存場所が指定されていない場合、ファイルはデフォルトの保存場所にアップロードされます。 特定の保存場所にファイルをアップロードする必要がある場合は、事前に保存場所を有効にして設定する必要があります。 詳細については、「概要」をご参照ください。

/**
* ファイルの保存場所を指定します。 ApsaraVideo VODコンソールにログインします。 左側のナビゲーションウィンドウで、構成管理> メディア管理> ストレージを選択します。 [ストレージ] ページで、ストレージの場所を表示できます。 
* /
void setStorageLocation (文字列storageLocation); 

トランスコードの設定

アップロードインスタンスVODUploadClientでは、コード変換テンプレートグループのIDを指定してコード変換を設定できます。

/**
* コード変換テンプレートグループのIDを指定します。 ApsaraVideo VODコンソールにログインします。 左側のナビゲーションウィンドウで、[構成管理]> [メディア処理]> [トランスコードテンプレートグループ] を選択します。 [トランスコードテンプレートグループ] ページで、トランスコードテンプレートグループのIDを表示できます。 
* /
void setTemplateGroupId (文字列templateGroupId); 
注意

クライアントアップロードSDKを使用してファイルをアップロードする場合、ワークフローを使用してトランスコードを設定することはできません。

再開可能なアップロード

クライアントのアップロードSDKは再開可能なアップロードをサポートします。 次のメソッドの値がYESであることを確認するだけです。

/**
 * 再開可能なアップロードのアップロードの進行状況を記録するかどうかを指定します。 デフォルト値: YES。 アップロードSDKは、パラメーターがYESに設定されている場合にのみ、中断されたアップロードを自動的に再開します。 パラメーターをNOに設定すると、再開可能アップロード機能は無効になります。 
 * /
void setRecordUploadProgressEnabled (ブールvar1); 

ApsaraVideo VODサービスのリージョンを設定する

アップロードインスタンスVODUploadClientでは、ApsaraVideo VODサービスのリージョンを設定できます。

/**
 ApsaraVideo VODサービスのリージョンを指定します。 デフォルト値: cn-shanghai。 
 * /
void setRegion(String var);