railsでDBに画像データを入れる
DBに投稿される画像データを入れることにした。
以前↓こんな記事を紹介したが
http://neta.ywcafe.net/000774.html
とりあえずの理由は以下
利点
・SQLにまとまっているのでバックアップが楽
・マシン増設が楽
・データベースにデータがまとまってるのが気持ちいい
不利点
・半静的なコンテンツに対するリクエストがかさむ
なので、不利点を解消すべく、DBに画像を登録し、画像が最初に読み込まれたときのみDBにアクセスと同時にローカルファイルに保存するようにした。
なので、DBに対するバイナリリクエストは変更があったときのみになる。
まあ、めっちゃ単純なことなんですけどねw
以下acts_as_atachmentとペアで使用。
if(FileTest.exist?(path )) send_file path ,:type => @img.content_type, :disposition => 'inline' else File.open(path,'wb') do |f| f.write(@img.db_file.data) end send_data @img.db_file.data, :filename => @img.filename,:type => @img.content_type, :disposition => 'inline' end