アーカイブ機能を使うことで、HLSプレイリストを外部のストレージ (Amazon S3・さくらのオブジェクトストレージ・Google Cloud Storage・Azure Blob Storage)に対して保存できます。 ストレージに保存できるのはアダプティブストリーミングのファイルではなく、指定した単一解像度のプレイリストとその動画セグメントファイルです。
この機能はHLS変換を行うときだけ利用できます。
アーカイブ保存先を設定するにはCreateArchiveDestination APIを利用します。 CreateArchiveDestination APIには保存先のバケットURI(Azure Blob Storageの場合はコンテナURI)と、保存に必要な認証情報を指定します。 Amazon S3・さくらのオブジェクトストレージの場合はAccess Key IDとSecret Access Key、GCSの場合はJSON形式のサービスアカウントの認証情報、Azure Blog Storageの場合はストレージアカウント名とそれに対応したアカウントアクセスキーが必要です。 JSON形式の認証情報はJSONオブジェクトではなく、文字列形式で指定する必要があります。
curl -H "Content-Type: application/json" \
-H "X-Sora-Target: ImageFlux_20190205.CreateArchiveDestination" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d '{
"bucket_uri": "gs://<my-bucket-name>",
"gcp_credential_json": "{...}",
}' https://live-api.imageflux.jp/
アーカイブの保存が完了した場合、イベントWebhook通知が送られます。
イベントWebhook通知はファイルがストレージ上に作成されるたび通知されます。
動画の再生に必要なプレイリストが作成された場合、 file_type
パラメータが m3u8
になります。
{
"channel_id": "<channel_id>",
"type": "imageflux.archive_created",
"data": {
"dest_uri": "<dest_uri>",
"file_path": "<file_path>",
"size": "<size>",
"file_type": "<file_type>"
}
}
imageflux.archive_created
ファイルの保存に失敗した場合、以下のイベントWebhookが通知されます。
{
"channel_id": "<channel_id>",
"type": "imageflux.archive_failed",
"data": {
"dest_uri": "<dest_uri>",
"file_path": "<file_path>",
"absolute_url": "<absolute_url>"
}
}
imageflux.archive_failed