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

ApsaraVideo VOD:クライアントアップロード

最終更新日:Aug 25, 2026

クライアントアップロードでは、モバイルアプリ、Web ページ、ミニプログラムからメディアファイルを ApsaraVideo VOD が管理する Object Storage Service (OSS) バケットに直接アップロードできます。ファイルはアプリケーションサーバーを完全にバイパスするため、サーバーの帯域幅コストが削減され、アーキテクチャが簡素化されます。永続的な AK/SK 認証情報をクライアントアプリケーションに埋め込むことはできないため、クライアントアップロード SDK は、バックエンド認証サービス (AppServer) が発行する短期間有効なアップロード認証情報を使用して、各アップロードセッションを認証します。

クライアントアップロードの仕組み

クライアントアップロード SDK は、OSS SDK をベースに構築されています。クライアントがファイルをアップロードする際、SDK は基盤となるマルチパートアップロードとレジュームアップロードのロジックをすべて処理します。ファイルは、クライアントデバイスから ApsaraVideo VOD OSS バケットに直接転送されます。AppServer は認証情報を発行するのみで、ファイルコンテンツには一切関与しません。

クライアントアップロードは、次の 3 段階のプロセスに従います。

  1. クライアントは、メディアメタデータ (TitleFileNameCateIdTags など) を含む HTTP リクエストを AppServer に送信します。

  2. AppServer は、ApsaraVideo VOD または STS からアップロード認証情報を取得し、それをクライアントに返します。

  3. クライアントは、認証情報を使用してファイルを OSS に直接アップロードします。アップロードが完了すると、SDK は成功コールバックをトリガーし、ApsaraVideo VOD は自動的にトランスコードと処理パイプラインを開始します。

認証方式

クライアントアップロード SDK は、2 つの認証方式をサポートしています。以下の比較表は、シナリオに適した方式を選択するのに役立ちます。各方式の詳細な手順は、表の後で説明します。

比較項目

アップロード URL と認証情報 (推奨)

STS トークン

認証フロー

AppServer が ApsaraVideo VOD API を直接呼び出してアップロード認証情報を取得します

AppServer が STS AssumeRole を呼び出し、その後クライアントが STS トークンを使用して ApsaraVideo VOD API を呼び出します

セキュリティ

動画ごとの認証情報によるきめ細かな制御

スコープがより広いロールベースの権限

設定の複雑さ

よりシンプルです。AppServer では ApsaraVideo VOD SDK のみが必要です。

AppServer で STS SDK が必要なことに加え、RAM ロールの設定も必要です

認証情報のスコープ

単一の動画 (VideoId) に紐付けられます

RAM ロールに紐付けられ、ロールポリシーで許可されたすべてのアクションに対して有効です

推奨されるケース

ほとんどのクライアントアップロードシナリオ

クライアントがより広範な ApsaraVideo VOD API アクセスを必要とするシナリオ

方式1:アップロード URL と認証情報 (推奨)

この方式は、よりシンプルな設定、動画ごとの権限制御による高いセキュリティ、より柔軟なレスポンスパラメータを提供します。大部分のクライアントアップロードシナリオに適しています。

ステージ1:アップロード URL と認証情報の取得

クライアントは、メディアメタデータ (TitleFileNameCateIdTags など) を含む HTTP リクエストを AppServer に送信します。AppServer は、AK/SK を使用して ApsaraVideo VOD の CreateUploadVideo API を呼び出し、3 つの主要な値を取得します:UploadAuth (一時的なアップロードトークン)、UploadAddress (Base64 でエンコードされた OSS のターゲットパス)、VideoId (一意のメディア識別子)。AppServer はこれらをクライアントに転送します。

ステージ2:アップロードパラメータの構築とOSSへの直接アップロード

クライアントは、UploadAuthUploadAddressVideoId、およびローカルファイルパスを使用してアップロード SDK を初期化します。SDK は自動的に UploadAddress を解析して OSS エンドポイントとオブジェクトキーを取得し、ファイルを OSS に直接アップロードします。このプロセスは、マルチパートアップロードとレジュームアップロードをサポートしています。ファイルは、サーバーを経由せずにクライアントから OSS に直接転送されます。

ステージ3:アップロード結果

OSS がアップロードを完了すると、SDK は VideoId を含む onUploadSucceed コールバックをトリガーします。ApsaraVideo VOD は、アップロードの完了を自動的に検出し、設定された TemplateGroupId または WorkflowId に基づいてトランスコードと処理パイプラインをトリガーします。また、イベントコールバック (HTTP または MNS) を設定して、FileUploadComplete イベント通知を受信することもできます。

方式2:STS トークン

ステージ1:STS一時認証情報の取得

クライアントは、AppServer に一時認証情報をリクエストします。AppServer は、AK/SK を使用して STS の AssumeRole API を呼び出し、期限付きの AccessKeyIdAccessKeySecretSecurityToken のセット (有効期限:900~3,600 秒) を取得し、それをクライアントに返します。

ステージ2:アップロード認証情報の取得とアップロード (SDKが自動処理)

クライアントは、STS トークンを使用してアップロード SDK を初期化します。SDK は自動的に STS トークンを使用して CreateUploadVideo (TitleFileName、その他のパラメータを含む) を呼び出し、UploadAuthUploadAddressVideoId を取得してから、マルチパートアップロードを自動的に実行します。このプロセス全体は開発者にとって透過的であり、手動で ApsaraVideo VOD API を呼び出す必要はありません。

ステージ3:アップロード結果

方式1と同様に、SDK は VideoId を含む onUploadSucceed をトリガーし、ApsaraVideo VOD はファイルを自動的に処理します。

主な機能

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

マルチパートアップロードは、大きなファイルを小さなパートに分割し、並行してアップロードします。これにより、大きなメディアファイルのアップロード速度と信頼性の両方が向上します。ネットワーク障害が発生した場合でも、ファイル全体を再アップロードする必要はなく、失敗したパートのみを再試行すればよいためです。マルチパートアップロードは、すべてのクライアントアップロード SDK でデフォルトで有効になっており、追加の設定は必要ありません。

レジュームアップロード

レジュームアップロードを使用すると、SDK は、中断されたアップロードを最初から再開するのではなく、最後に正常にアップロードされたパートから続行できます。ネットワークの切断、アプリのバックグラウンド化、またはデバイスのスリープによってアップロードが中断された場合、SDK はチェックポイントデータを内部に保存します。接続が復元されてアプリが再開されると、SDK は開発者の介入なしにチェックポイントから自動的に再開します。

アップロード制御

アップロード SDK は、個々のアップロードを開始、停止、一時停止、再開するためのプログラムから制御するための API を提供します。これは、ユーザーが開始したアクション (ユーザーが別の画面に移動したときにアップロードをキャンセルするなど) に対応する必要がある場合や、バッチシナリオでアップロードの同時実行数を管理する場合に役立ちます。アップロードのライフサイクルは、SDK のメソッド呼び出しによって完全に制御できます。

進捗コールバック

SDK は、各ファイルのアップロード済みデータの割合を報告する詳細な進捗コールバックを公開します。これらのコールバックを使用して、プログレスバーの更新、アップロード速度の表示、またはアップロード中に特定の UI 要素を無効にするなどの条件付きロジックをトリガーできます。進捗コールバックは、アップロード中に定期的に実行され、転送ステータスをリアルタイムで確認できるようになります。

ネットワーク切り替え

モバイルクライアントは、Wi-Fi とモバイルネットワークの間を頻繁に切り替えます。SDK は、これらの切り替えを処理するために、アップロードの一時停止と再開をサポートしています。モバイルデータの消費を避けるために、デバイスがモバイルネットワークに切り替わったときに一時停止メソッドを呼び出し、Wi-Fi 接続が復帰したときに再開メソッドを呼び出します。アプリケーションは、ネットワーク切り替え検出ロジックを実装する必要があります。

一括アップロード

SDK は、複数のファイルの追加、削除、キャンセル、再開、走査をサポートするアップロードキューを管理します。キュー全体をクリアしたり、個々のエントリを操作したりできます。一括アップロードは、ユーザーが複数のメディアファイルを一度に選択するシナリオ (フォトギャラリーのアップロードなど) で役立ち、SDK は利用可能なリソースに基づいて、それらを順次または並行してスケジュールします。

メタデータサポート

アップロード認証情報を取得する際に、アップロードするメディアアセットにメタデータを付加できます。サポートされているメタデータフィールドには、TitleTagsCateIdCoverURLTemplateGroupIdWorkflowId が含まれます。認証情報を取得する段階でメタデータを設定することで、アップロード完了時にメディアアセットが正しいカテゴリ、タグ、処理ワークフローに即座に関連付けられ、メディアプロパティを更新するための個別の API 呼び出しが不要になります。

対応プラットフォームとバージョン

プラットフォーム

現在のバージョン

最小システム要件

Web (JavaScript)

JavaScript SDKを使用したファイルのアップロードをご参照ください。

モダンブラウザ (Chrome、Safari、Firefox、Edge)

Android

Android SDKを使用したファイルのアップロードをご参照ください。

Android 5.0 以降

iOS

iOS SDKを使用したファイルのアップロードをご参照ください。

iOS 12.0 以降

WeChat ミニプログラム

WeChatミニプログラム用アップロードSDKをご参照ください。

WeChat 基礎ライブラリ 2.x 以降

最新のバージョン番号とダウンロードリンクについては、アップロードSDKのリリースノートをご参照ください。

プライバシーコンプライアンスと課金

プライバシーコンプライアンス

クライアントアップロード SDK は、アプリストアを通じて配布されるアプリケーションに組み込まれるように設計されています。SDK は個人データを一切収集しません。SDK を組み込んだアプリを配布する際のコンプライアンス要件については、サービス契約をご参照ください。

課金

クライアントアップロード SDK 自体の使用は無料です。コストは、アップロード中および後に消費される ApsaraVideo VOD リソースに対して発生します。

課金項目

説明

ストレージ料金

アップロードされたメディアファイルのストレージ容量とストレージ期間に基づいて課金されます。

トラフィック料金

アップロードトラフィック (クライアントから OSS へのインバウンドトラフィック) は無料です。ダウンストリーム再生トラフィックは別途課金されます。

トランスコード料金

アップロード後にトランスコードがトリガーされた場合、出力ファイルの長さとトランスコード仕様に基づいて課金されます。トランスコードが実行されない場合、料金は発生しません。

アップロードアクセラレーション料金

アップロードアクセラレーションが有効になっている場合、アクセラレーション対象のデータ量に基づき、従量課金で請求されます。料金の詳細については、課金の概要をご参照ください。ご相談は、営業担当者にお問い合わせください。

説明

アップロードトラフィック (クライアントから OSS へのインバウンドトラフィック) は課金されません。ApsaraVideo VOD の課金の詳細については、課金の概要をご参照ください。