ApsaraVideo VOD の API または SDK でユーザーデータパラメーターを設定して、複数の HTTP または Simple Message Queue (formerly MNS) のコールバック URL を指定できます。これは、複数のサーバーにイベント通知を送信したり、開発、テスト、本番などの異なる環境にコールバックメッセージを配信したりする場合に役立ちます。
概要
ApsaraVideo VOD では、リージョンごとに設定できるコールバック方法とコールバック URL は 1 つのみで、その設定は全世界で有効になります。複数のサービスが同じ ApsaraVideo VOD インスタンスを共有する場合、サービスごとにユーザーデータの MessageCallback で異なるコールバック URL を指定できます。これらのコールバックは互いに影響しません。複数環境のサービスに対して複数のコールバック URL を指定するには、ユーザーデータパラメーターを使用します。
グローバルイベント通知の設定
制限
Simple Message Queue (formerly MNS) のコールバックを使用する場合は、ページに移動して、ApsaraVideo VOD による Simple Message Queue (formerly MNS) へのアクセスを承認する必要があります。
注意事項
ApsaraVideo VOD は、グローバルイベント通知のために HTTP コールバックと Simple Message Queue (formerly MNS) コールバックをサポートしています。リージョンごとに設定できるコールバック方法とコールバック URL は 1 つのみです。オーディオ、ビデオ、または画像ファイルのアップロード、あるいはトランスコードや監査などのメディア処理ジョブの送信といったイベントがトリガーされると、ApsaraVideo VOD はそのリージョンのコールバック設定に基づいてイベント通知を送信します。

設定方法
ApsaraVideo VOD コンソール、SDK、または API を使用して、グローバルイベント通知を設定できます。手順と制限の詳細については、「HTTP コールバック」および「Simple Message Queue コールバック」をご参照ください。コンソールで設定するには、ApsaraVideo VOD コンソールにログインし、[設定管理] > [メディア処理設定] > [コールバック設定] を選択します。次に、コールバック方法を選択し、コールバック URL とイベントタイプを設定します。
アップロード時のユーザーデータでのコールバック URL の指定
制限
-
ApsaraVideo VOD SDK または API を使用してのみ、ユーザーデータパラメーターを指定できます。
-
グローバル通知機能を有効にし、コールバックを設定するイベントを指定する必要があります。そうしないと、ユーザーデータで指定したコールバック URL は有効になりません。
注意事項
サーバー操作 SDK またはアップロード SDK を使用して ApsaraVideo VOD にアップロードされたメディアファイルに対して、ユーザーデータでコールバック URL を指定できます。コールバック URL はメディアソースファイルにバインドされ、トランスコードや監査ジョブなどのメディア処理ジョブを送信すると、イベント通知がこの URL に送信されます。コールバックが設定されているイベントは、グローバルコールバック設定で指定されます。メディアソースファイルを削除すると、後続のイベント通知はグローバルコールバック設定で指定されたコールバック URL に送信されます。

関連操作
サーバー操作 SDK またはアップロード SDK の使用方法の詳細については、「注意事項」および「概要」をご参照ください。
メディアファイルをアップロードするために次の API を呼び出す際に、ユーザーデータパラメーターを指定できます。
メディア処理時のユーザーデータでのコールバック URL の指定
制限
-
ApsaraVideo VOD SDK または API を使用してのみ、ユーザーデータパラメーターを指定できます。
-
グローバル通知機能を有効にし、コールバックを設定するイベントを指定する必要があります。そうしないと、ユーザーデータで指定したコールバック URL は有効になりません。
注意事項
ApsaraVideo VOD SDK または API を使用して、トランスコードジョブなどのメディア処理ジョブを送信する際に、ユーザーデータでコールバック URL を指定できます。
メディア処理時に ユーザーデータで指定されたコールバック URL は、1 回のイベントに対してのみ有効です。メディア処理時にコールバック URL を指定しない場合、アップロード時に ユーザーデータで指定されたコールバック URL が、グローバルコールバック設定で指定されたコールバック URL よりも優先的に使用されます。

関連操作
メディア処理ジョブを送信するために次の API を呼び出す際に、ユーザーデータパラメーターを指定できます。
サンプルコード
ユーザーデータパラメーターの構造の詳細については、「リクエストパラメーター」をご参照ください。以下にユーザーデータの構造の例を示します:
{
"Extend":{
"width":1280,
"id":"028a8e56b*****1ebf6bb7afc74",
"height":720
},
"AccelerateConfig":{
"Type":"oss",
"Domain":"https://oss-accelerate.aliyuncs.com"
},
"MessageCallback":{
"CallbackURL":"https://xxxxx.com/2016-08-15/proxy/httpcallback/testcallback/",
"CallbackType":"http",
"EventTypeList":["TranscodeComplete","StreamTranscodeComplete"]
}
}
以下にユーザーデータを構築する方法の例を示します:
public static String buildUserData() {
JSONObject userData = new JSONObject();
// メッセージコールバックを設定します。
JSONObject messageCallback = new JSONObject();
messageCallback.put("CallbackType", "http");
messageCallback.put("CallbackURL", "https://xxxxx.com/2016-08-15/proxy/httpcallback/testcallback/");
messageCallback.put("EventTypeList", new JSONArray().put("TranscodeComplete").put("StreamTranscodeComplete"));
userData.put("MessageCallback", messageCallback);
// ユーザーデータに渡すフィールドです。カスタムパラメーターを渡すことができます。
JSONObject extend = new JSONObject();
extend.put("id", "028a8e56b*****1ebf6bb7afc74");
extend.put("width", 1280);
extend.put("height", 720);
userData.put("Extend", extend);
// 高速化サービスが必要な場合は、アップロードアクセラレーションを設定します。アップロードアクセラレーションを使用する前に、アクセラレーション機能の有効化を申請する必要があります。
JSONObject accelerateConfig = new JSONObject();
accelerateConfig.put("Type", "oss");
accelerateConfig.put("Domain", "https://oss-accelerate.aliyuncs.com");
userData.put("AccelerateConfig", accelerateConfig);
return userData.toJSONString();
}