クライアントアップロードでは、モバイルアプリ、Web ページ、ミニプログラムからメディアファイルを ApsaraVideo VOD が管理する Object Storage Service (OSS) バケットに直接アップロードできます。ファイルはアプリケーションサーバーを完全にバイパスするため、サーバーの帯域幅コストが削減され、アーキテクチャが簡素化されます。永続的な AK/SK 認証情報をクライアントアプリケーションに埋め込むことはできないため、クライアントアップロード SDK は、バックエンド認証サービス (AppServer) が発行する短期間有効なアップロード認証情報を使用して、各アップロードセッションを認証します。
クライアントアップロードの仕組み
クライアントアップロード SDK は、OSS SDK をベースに構築されています。クライアントがファイルをアップロードする際、SDK は基盤となるマルチパートアップロードとレジュームアップロードのロジックをすべて処理します。ファイルは、クライアントデバイスから ApsaraVideo VOD OSS バケットに直接転送されます。AppServer は認証情報を発行するのみで、ファイルコンテンツには一切関与しません。
クライアントアップロードは、次の 3 段階のプロセスに従います。
クライアントは、メディアメタデータ (
Title、FileName、CateId、Tagsなど) を含む HTTP リクエストを AppServer に送信します。AppServer は、ApsaraVideo VOD または STS からアップロード認証情報を取得し、それをクライアントに返します。
クライアントは、認証情報を使用してファイルを OSS に直接アップロードします。アップロードが完了すると、SDK は成功コールバックをトリガーし、ApsaraVideo VOD は自動的にトランスコードと処理パイプラインを開始します。
主な機能
マルチパートアップロード
マルチパートアップロードは、大きなファイルを小さなパートに分割し、並行してアップロードします。これにより、大きなメディアファイルのアップロード速度と信頼性の両方が向上します。ネットワーク障害が発生した場合でも、ファイル全体を再アップロードする必要はなく、失敗したパートのみを再試行すればよいためです。マルチパートアップロードは、すべてのクライアントアップロード SDK でデフォルトで有効になっており、追加の設定は必要ありません。
レジュームアップロード
レジュームアップロードを使用すると、SDK は、中断されたアップロードを最初から再開するのではなく、最後に正常にアップロードされたパートから続行できます。ネットワークの切断、アプリのバックグラウンド化、またはデバイスのスリープによってアップロードが中断された場合、SDK はチェックポイントデータを内部に保存します。接続が復元されてアプリが再開されると、SDK は開発者の介入なしにチェックポイントから自動的に再開します。
アップロード制御
アップロード SDK は、個々のアップロードを開始、停止、一時停止、再開するためのプログラムから制御するための API を提供します。これは、ユーザーが開始したアクション (ユーザーが別の画面に移動したときにアップロードをキャンセルするなど) に対応する必要がある場合や、バッチシナリオでアップロードの同時実行数を管理する場合に役立ちます。アップロードのライフサイクルは、SDK のメソッド呼び出しによって完全に制御できます。
進捗コールバック
SDK は、各ファイルのアップロード済みデータの割合を報告する詳細な進捗コールバックを公開します。これらのコールバックを使用して、プログレスバーの更新、アップロード速度の表示、またはアップロード中に特定の UI 要素を無効にするなどの条件付きロジックをトリガーできます。進捗コールバックは、アップロード中に定期的に実行され、転送ステータスをリアルタイムで確認できるようになります。
ネットワーク切り替え
モバイルクライアントは、Wi-Fi とモバイルネットワークの間を頻繁に切り替えます。SDK は、これらの切り替えを処理するために、アップロードの一時停止と再開をサポートしています。モバイルデータの消費を避けるために、デバイスがモバイルネットワークに切り替わったときに一時停止メソッドを呼び出し、Wi-Fi 接続が復帰したときに再開メソッドを呼び出します。アプリケーションは、ネットワーク切り替え検出ロジックを実装する必要があります。
一括アップロード
SDK は、複数のファイルの追加、削除、キャンセル、再開、走査をサポートするアップロードキューを管理します。キュー全体をクリアしたり、個々のエントリを操作したりできます。一括アップロードは、ユーザーが複数のメディアファイルを一度に選択するシナリオ (フォトギャラリーのアップロードなど) で役立ち、SDK は利用可能なリソースに基づいて、それらを順次または並行してスケジュールします。
メタデータサポート
アップロード認証情報を取得する際に、アップロードするメディアアセットにメタデータを付加できます。サポートされているメタデータフィールドには、Title、Tags、CateId、CoverURL、TemplateGroupId、WorkflowId が含まれます。認証情報を取得する段階でメタデータを設定することで、アップロード完了時にメディアアセットが正しいカテゴリ、タグ、処理ワークフローに即座に関連付けられ、メディアプロパティを更新するための個別の 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 の課金の詳細については、課金の概要をご参照ください。