Herokuについて(※重要) - Taisei20/its-movi GitHub Wiki

Herokuの仕様について

Herokuの仕様について一点みなさんに把握していただきたいことがあります!

Heroku上で画像をアップロードしても保存されない!?

はい、これです!!! Heroku上で画像をアップロードしたものは次回デプロイする際に消えてしまいます

問題

どういうことかというと、例えば映画作品の画像を追加するためにHeroku上で画像をアップロードします。一見通常通り画像はアップロードされているように見えますがこれは 一時的に保存されているに過ぎません!! なので次回Herokuにデプロイするときこの画像データは消えさってしまいます...orz

これはターミナル(ローカル環境)からデプロイする際にgit管理しているもののみHeroku上に反映されるためです。つまり、上記の例でいうとHeroku上では/aseets/images/sample.pngとなっているにも関わらずローカル環境で/assets/images/(sample.pngがない)となっている場合デプロイのタイミングでローカル環境のほうが反映されてしまうということです。

解決策

では、どうするのか!?ですが、通常Heroku上で画像ファイル等をアップロードする機能がついている場合、AWSが提供しているS3を使います。 これは、端的に言ってしまえばデータを保存するためのサーバーです。しかし、このサービスを利用するにはアカウント登録と共にクレジットカードが必要になります。今回は企業研修なのでみなさんのクレジットカードは登録しないのでこの解決策は使えません!!!

・・・

しかし、最終日の成果発表会では画像等が入っているべきです!!!なので事前に画像は/assets/images/の中に格納してgit管理を行ってください! 質問あれば、いつでも聞いてください〜!