Saturday, 21 July 2012

Sinatra で拡張子ごとにMIME-Type (と対応するContent-Type) を設定する

*.bin 拡張子のファイルを"audio/mpeg"としてサーバからヘッダを返さないとiOSで動画が再生されないという仕様のサービスがあり、Sinatraとthinで動かしているシステムの調整が必要になりました。

結論としては

configure do
  mime_type :bin, 'audio/mpeg'
end

と書けば解決しました。書式は

mime_type :<extension name>, '<mime type name>'

のようです。

Middlewareを間に挟んで調整するかthinもしくは.ruファイルを編集する必要があるかと考えたのですが、現在Sinatraはモジュールタイプで動かしていないので面倒です。しかし、とても簡単にSinatra上でメソッドが提供されていました。SinatraはMiddlewareとしても利用できるという話ですが、さすが httpヘッダ を調整するのは簡単にできるようです。

No comments:

Post a Comment