CastMatrix

Cloudflare について

Feature Toggle(画像・動画)

概要

CastMatrix は、Cloudflare の有料サービス(Images / Stream)を環境変数で ON/OFF できます。
同じソースコードで、コスト重視の最小構成とリッチな動画・画像構成の両方に対応します。

フラグ一覧

ENABLE_CLOUDFLARE_IMAGES

設定 挙動 Cast_Images.image_url
ON Cloudflare Images で WebP 変換・リサイズ Images の配信 URL
OFF R2 に直接保存、変換なし 本番: R2 公開 URL / ローカル・未設定時: /api/public/media/*

ENABLE_CLOUDFLARE_STREAM

設定 挙動 Casts.profile_video_url
ON HLS/DASH エンコード・ストリーミング Stream の動画 ID
OFF R2 に生ファイル保存、HTML5 <video> 再生 本番: R2 URL / ローカル・未設定時: /api/public/media/*

構成の選び方

構成 Images Stream 想定
最小(コスト優先) OFF OFF インフラ無料枠中心。動画はそのまま R2 配信
画像リッチ ON OFF サムネイル最適化重視
フルリッチ ON ON iPhone 撮影動画の自動エンコード・高速再生

コスト目安は 01-infrastructure-costs.md を参照してください。

注意事項

  • Toggle を途中で切り替えた場合、既存メディアの URL 形式が変わるため、再アップロードや移行手順が必要になる場合があります。
  • OFF 時も R2 のストレージ・転送料は発生します(無料枠内で収まることが多いです)。
  • 実装では 両方の分岐がコードに含まれている必要があります(片方のみの実装は不完全です)。

Toggle 切替時の手順

OFF → ON に切り替える場合

  1. wrangler.toml の対象変数を "true" に変更する
  2. CF_IMAGES_TOKEN / CF_STREAM_TOKEN シークレットを設定する(未設定の場合)
  3. wrangler deploy で Workers を再デプロイする
  4. 新規アップロード分から新形式の URL が保存される
  5. 既存メディアは古い URL のまま — 必要に応じて管理画面で再アップロードする

ON → OFF に切り替える場合

  1. 既存のメディア URL(CF Images / Stream の URL)を引き続き参照するキャストが存在する場合は、先に再アップロードを完了させる
  2. wrangler.toml"false" に戻して再デプロイする

切替前後でデータベースのマイグレーション変更は不要です(DB に保存する URL の形式が変わるだけです)。