Callback Notification

最終更新日:2025-05-29 14:58:53

本ドキュメントでは、メディア処理タスクに関するセキュアな通知送信方法と、通知の真正性を保証する検証メカニズムについて説明します。処理結果の詳細情報を含む通知を安全に配信します。

セキュリティ検証メカニズム

通知リクエストにはAuthorizationヘッダーを付与し、通知の正当性を検証可能にします。

Authorizationヘッダー形式

<AccessKey>:URLSAFE_BASE64(HMAC_SHA1(NotifyUrlWithOutQuery + "\n" + NotifyBody, SecretKey))

パラメータ説明:

  • AccessKey:アカウントアクセスキー
  • NotifyBody:通知内容本体
  • SecretKey:アカウントシークレットキー

重要:通知生成時にアカウント内の有効なAK/SKペアからランダムに選択されます。すべてのAccessKeyとAccessKey Secretを適切に管理し、リクエスト内のAccessKeyを照合して検証してください。


通知内容仕様

NotifyUrl設定後、メディア処理完了時にJSON形式の通知を送信します。通知内容はURLセーフBase64エンコードされ、処理タスクの詳細情報を含みます。

コールバック要件

コールバックURLは以下を満たす必要があります:

  • パブリックインターネットからアクセス可能
  • 通知受信後HTTP/1.1 200 OKステータスを返却

通知フィールド

フィールド名 タイプ 説明
id string メディア処理タスク固有ID persistentId
code int タスクステータスコード:
• 1 - 一部タスク実行中
• 2 - 一部タスク失敗
• 3 - 全タスク成功
desc string ステータス説明
separate string 通知タイプ:
• 0 - 単回通知
• 1 - 分割複数通知
inputkey string オリジナルファイル名
inputbucket string オリジナルファイル格納バケット
inputfsize int オリジナルファイルサイズ(バイト)
items array 各操作ステータス情報

items配列フィールド

フィールド名 タイプ 説明
cmd string 処理コマンド(fops)
code string 処理結果コード:
• 2 - 失敗
• 3 - 成功
costTime int トランスコード時間(秒、デフォルト0)
desc string 処理結果説明
error string エラー詳細(失敗時)
fsize int 出力ファイルサイズ(バイト)
hash string ファイルハッシュ値
key string 出力ファイル識別子(形式:bucketName:key
url string トランスコード結果アクセスURL
duration double メディア再生時間(秒)
bit_rate string メディアビットレート
resolution string 動画解像度
detail array マルチ出力時の詳細情報

detail配列フィールド

フィールド名 タイプ 説明
fsize int 出力ファイルサイズ(m3u8形式時はマニフェストファイルサイズ)
tssize int m3u8出力時のtsファイル総サイズ(他形式は0)
hash string ファイルハッシュ値
key string 出力識別子(形式:bucketName:key
url string アクセスURL
duration double メディア再生時間(秒)
bit_rate string メディアビットレート
resolution string 動画解像度

通知サンプル

{
    "id": "2c90802745ee87870145ef1430f90006",
    "code": 3,
    "desc": "operate [\"avthumb/flv\"] is finish",
    "separate": 0,
    "inputkey": "aaa.flv",
    "inputbucket": "chenqltesttwo",
    "inputfsize": 20000,
    "items": [
        {
            "cmd": "avthumb/flv",
            "code": "3",
            "costTime": 0,
            "desc": "finish",
            "error": null,
            "fsize": 20000,
            "hash": "FlWvHsc-CK6miygKCcLjCaQ5csNO",
            "key": "chenqltesttwo:aaa.flv",
            "url": "http://chenqltesttwo.com/aaa.flv",
            "duration": 198.083,
            "bit_rate": "1288025",
            "resolution": "1280X720",
            "detail": [
                {
                    "fsize": 20000,
                    "tssize": 1024,
                    "hash": "FlWvHsc-CK6miygKCcLjCaQ5csNO",
                    "key": "chenqltesttwo:aaa.flv",
                    "url": "http://chenqltesttwo.com/aaa.flv",
                    "duration": 198.083,
                    "bit_rate": "1288025",
                    "resolution": "1280X720"
                }
            ]
        }
    ]
}