ikeblo

smalllightで動的画像配信

06 May 2014

ユーザーによる画像の投稿を扱うWebサービスでは、cookpadのmod_tofu のような仕組みがあると画像運用がすごく楽になる。
ただ、残念ながら現時点でmod_tofuはOSSではないため、他のOSSを探すか自分で作るかする必要がある。
とりあえず類似のOSSがないか探すといくつか見つかるが、Apache前提だとlivedoorのラボで開発されたmod_small_lightが候補として有力だと思う。

smalllightはURIのパターンを正規表現で定義でき、
マッチしたリクエストで指定されたパラメータに応じた画像を生成して返してくれる。

ドキュメントも整理されていて簡単に導入・動作させることができた。 ただ、smalllight単体では、画像サイズ・品質指定のルールに気づいた悪意あるユーザーがあらゆるパターンでリクエストしてくるような攻撃を防ぐことができない。

そこで、実際のサービスで利用する際には、アプリケーション側で画像URIに秘密のハッシュ値をつけ、 smalllightでの処理の前に自作のApacheモジュールを嚙ませてハッシュ値を検証し、必要に応じて403を返すようにした。

これらを導入したサービスではXslateを利用しているが、
<img src="[% model.image(w => 320, h => 280, quality => 80) %]"/> という感じのインターフェースで利用できるようにしたらいい感じだった。

このエントリーをはてなブックマークに追加