FTP バッチ アップロードがいつ完了したかを確認する

Product
Video Cloud
対象となる役割
パブリッシャ
バージョン
Brightcove 5
エディション
Pro, Enterprise

FTP バッチ プロビジョニングを使用して、Brightcove に動画をアップロードする際に、アップロード完了後に通知を受け取ることができます。それには、電子メールによる通知や、指定された URL にアップロード通知を送信するコールバック機能を使用します。

コールバック機能を使用する

コールバック機能を使用するには、FTP バッチ アップロードのマニフェスト ファイルに <callback> 要素を含めます。<callback> 要素は、上位の publisher-upload-manifest 要素の子です。その唯一の属性が entity-url であり、その値は、アップロード状態を送信したい URL になります。

<callback entity-url="http://example.com/batch-callback.php"/>

デフォルトでは、電子メール通知はアップロード処理が失敗した場合にのみ送信されます。ただし、マニフェストの publisher-upload-manifest タグ内で report-success="true" 属性を設定すると、アップロード処理が成功した場合にも送信されます。

HTTP コールバック

フォームを提出して、マニフェストで指定された URL に送信する場合と同様に、タグがマニフェストで実行されるたびに、Brightcove システムは POST 要求を開始します。以下のキー/値(書式データ)が要求で送信されます。

キー
referenceId マニフェストで提供される参照 ID
id データベース内の動画、プレイリスト、またはアセットの ID
entity VIDEO、LINEUP(プレイリスト)、または ASSET
action CREATE、DELETE、または UPDATE
status FAILED または SUCCESS
error エラー メッセージ

POST 要求を処理する

データが到着すると、これらの値に何かを行う必要があります。任意のサーバー サイド言語が、これらの要求のリスナとして機能できます。

最も一般的なアクションは、ログ ファイルにこれらの値を追加する、データベースにこれらの値を列として挿入する、または、同じ情報を含む電子メールを送信することです。この例では、PHP スクリプトを使用して、これらの値をリスンし、ログ ファイルに書き込みます。この PHP スクリプトを含む zip ファイルをダウンロードすることができます。

その実際の動作を示すため、コードの一部を挙げます。

<?php

// 最初に「referenceId」が POST 要求に含まれるかどうかをチェックします。
// 含まれる場合、$referenceId 変数にその値を割り当てます。
// 含まれない場合、$referenceId に null 値を割り当てます。

if(isset($_POST["referenceId"])) {
    $referenceId = $_POST["referenceId"];
} else {
    $referenceId = null;
}

/* Repeat the same code for each key in the request */

// 次に、現在の日時および要求に含まれる各キーの値を含む文字列を構築します。
// CSV ファイルとして簡単にインポートできるように、
// これらの値はコンマで区切ります。
//
$logEntry = date("m-d-y H:i:s") . ": " .
            $referenceId . "," .
            $id . "," .
            $entity . "," .
            $action . "," .
            $status . "," .
            $error .
            "\n";

// 最後に PHP にどこでログ ファイルが見つけられるかを伝えて、
// そして PHP にログ ファイルを開けるように指示して先ほど作成
// したストリングをログ ファイルに追加するように伝えてください。

$logFileLocation = "log.txt";
$fileHandle = fopen($logFileLocation, 'a') or die("-1");
fwrite($fileHandle, $logEntry);
fclose($fileHandle);

?>

次のようなログ ファイルができます。

06-04-11 17:42:34: 123456789ref,123456789,VIDEO,CREATE,FAILED, (continued)
This failed because it was just a test
06-04-11 17:42:35: 123456790ref,123456790,VIDEO,CREATE,FAILED, (continued)
This failed because it was just a test
06-04-11 17:42:36: 123456791ref,123456791,VIDEO,CREATE,FAILED, (continued)
This failed because it was just a test
06-04-11 17:42:37: 123456792ref,123456792,VIDEO,UPDATE,SUCCESS,
06-04-11 17:42:40: 123456793ref,123456793,VIDEO,UPDATE,SUCCESS,
06-04-11 17:42:41: 123456794ref,123456794,VIDEO,DELETE,SUCCESS,
06-04-11 17:42:42: 123456795ref,123456795,VIDEO,DELETE,SUCCESS,

 

タグ
batch upload, callback, FTP, notice, success