CloudFront + 署名付きURL でFlashのcrossdomain.xml制限を回避した話
JWPlayer + CloudFrontで動画配信しようとした時に悩んだのでメモ。
前提
- 動画ファイルはS3に配置(直接アクセスは不許可)
- CloudFront は署名付きURLのアクセスのみ許可し、
- JWPlayer(Flashモード)で再生
問題
このとき、
となり再生できない。
参考
CloudFront+S3で署名付きURLでプライベートコンテンツを配信する
Flashで別ドメインから署名付きURLでCloudFrontにアクセスするときの問題
でもどうしても、CloudFrontから配信したい・・・!
対処
かなり無理矢理ですが、2013年9月にサポートの発表のあった、カスタムエラーページ機能で回避しました。
【AWS発表】 Amazon CloudFrontがカスタムエラーページとレスポンスをサポート
やったことは
- Distributionのカスタムエラーページで、403エラーの場合に、
/crossdomain.xml
を200 OK
で返すように設定 /crossdomain.xml
をアップロード
/crossdomain.xml以外にも200を返してしまうのが問題ですが、ひとまずFlashから署名付きURLのメディアファイルを読み込むことができるようになりました。
本来はエラーであるべきところを200を返すようなことは絶対にすべきではないと考えていますが、他に手を思い付かず・・・
他に良い方法があれば教えてください。