34
31

More than 5 years have passed since last update.

Herokuでアップロードした画像が時間経つと消える問題

Last updated at Posted at 2018-06-06

問題

フォームで画像を投稿できる機能を作って、
画像を投稿した直後は普通に表示されるけど、
一定時間が経つとなぜか画像が消えてしまう。

原因

一定時間が経つと、Heroku上のリポジトリ (Dyno) が最後のコミットの状態にリセットされるから。

対処法

①クラウドストレージ

もっとも一般的なのは、AWS Amazon S3などのクラウドストレージに画像を保存する方法。
クラウドストレージとは、プログラムを通して画像を外部のサーバ(クラウド)にアップロードし、そのURLを取得できるサービス。
比較的簡単に実装できますが、画像の量によってはお金がかかります。

Railsの場合:
https://qiita.com/hmmrjn/items/479c9e9ce82771f1b6d7

②データベースに保存

データベースに画像のバイナリデータを保存し、画像を表示するための関数などを用意する方法もあります。
こちらはお金はかかりませんが、画像のURLの扱い方などが少し複雑です。

Railsの例:
https://sha.ngri.la/index.php/Railsで画像をデータベースに登録し表示する%E3%80%82

34
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
31