ファイルをアップロードするには、クライアントからApsaraVideo VODにメディアファイルをアップロードします。 メディアファイルは、ローカルファイルまたはオンラインファイルとすることができる。 VODUploadClientは、Androidクライアントからメディアファイルをアップロードするために使用されるアップロードインスタンスです。 ビデオがアップロードされると、videoIdパラメーターが返されます。 videoIdパラメーターの値は、ビデオIDを示します。 次に、ビデオを再生するには、ビデオIDに基づいてストリーミングURLを取得する必要があります。 このトピックでは、Android用アップロードSDKを使用してメディアファイルをアップロードする方法について説明します。
前提条件
Android用アップロードSDKが統合されています。 詳細については、「Android用アップロードSDKの統合」をご参照ください。
ファイルのアップロード
Androidクライアントからファイルをアップロードするには、次の手順を実行します。
アップロードURLとアップロード資格情報またはSecurity Token Service (STS) トークンを取得します。
取得したアップロード資格情報またはSTSトークンを使用して、アップロードインスタンスを初期化します。
アップロード中にキーメッセージを受信するコールバックを設定します。
アップロードするファイルのタイプに基づいて、アップロードパラメーターを作成します。 オーディオ、ビデオ、または画像をアップロードできます。
アップロードを開始します。
画像のアップロードパラメータは、オーディオおよびビデオファイルのアップロードパラメータとは少し異なります。 補助メディア資産はクライアントからアップロードできません。
ステップ1: アップロードの承認を取得する
ApsaraVideo VODのクライアントアップロードSDKには、アップロードURLとアップロード資格情報を使用する認証方法と、STSトークンを使用する認証方法の2つが用意されています。 詳細については、「資格情報とSTSの比較」をご参照ください。
認証サービスをデプロイし、アップロードURLとアップロード資格情報を取得する方法の詳細については、「アップロードURLと資格情報を使用してメディアファイルをアップロードする」をご参照ください。
STSのデプロイ方法とSTSトークンの取得方法の詳細については、「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: アップロードを開始する
start()
メソッドを呼び出して、アップロードを開始します。void start();
このメソッドが呼び出されると、
onUploadStarted
コールバックが発生します。 アップロードURLと資格情報を使用してファイルをアップロードする場合は、このコールバックでアップロードURLと資格情報を指定します。 次のサンプルコードに例を示します。void setUploadAuthAndAddress(UploadFileInfo uploadFileInfo, String uploadAuth, String uploadAddress)
ファイルのアップロードが開始されると、
onUploadProgress
コールバックが起動され、アップロードの進行状況が同期されます。ファイルがアップロードされると、
onUploadSucceed
コールバックが起動され、アップロード結果が返されます。 コールバックパラメーターには、videoId
とimageUrl
が含まれます。
実行結果
ビデオがアップロードされると、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);