プチゆる週末PJT

外資系企業で働きながら、プログラミング学習者の「作ってみた」を応援するサイト「Eggineer」の開発・運営を行なっています

CarrierWaveでアップロードした画像を本番環境でS3に保存する

Railsチュートリアルをした事ある人は、画像アップロードに関して、本番環境ではS3に保存すべきという記述を目にした事があるかもしれません。

railstutorial.jp

というのも、Herokuに画像ファイルを置いておく事はできなくて、一日一回再起動される時に、ファイルを削除してしまうとの事。

teratail.com

そのため、Rails+Heroku+S3という組み合わせはポピュラーなようです。

(ちなみに、自分はS3に画像だけでなくサイトマップも保存しています。)

という事で、その他画像アップロード関して、Railsチュートリアルには書いていない、注意すべき点をメモしました。

f:id:YO37377306:20180329173302j:plain

Photo by Carlotta Dal Santo | Flickr

拡張子の設定と画像のリサイズ

拡張子の設定と画像のリサイズをするのは結構ポピュラーだと思います。

こちらを参照しました。

blog.otsukasatoshi.com

ファイルサイズのvalidation

大きいファイルサイズの画像を上げれるようにしておくと、あとで通信料が大変な事になってしまうため、制限します。

blog.hello-world.jp.net

先程と同じブログにも書いています。

blog.otsukasatoshi.com

自分は2MBまでアップできるようにしていますが、おそらくこの2MBは圧縮(リサイズ)されてからの容量なので、ファイルサイズがもう少し大きいものも画像アップロードできるようになっているみたい。

最後に

S3周辺は一年間無料ですが、慣れていないと扱いに緊張するもの。

そして、無料なのを良い事にファイルサイズを制限しておかないと、後ですごい請求がきてしまうかもしれないので、早めに対処しておいた方が良さそうです。