学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Ruby on Rails | Amazon S3の利用

↓↓クリックして頂けると励みになります。


Amazon Simple Storage Service(Amazon S3)は、クラウドベースのオブジェクトストレージサービスです。


herokuにアプリケーションをデプロイすると画像をローカルに保存することができません。
それに対応するため、アップロードした画像を全てアマゾンS3に保存するよう設定します。


アマゾンS3のキーの取得方法は以下の手順でお願いします。
mrradiology.hatenablog.jp


GemFileに以下の記述を追加して下さい。


GemFile

gem "aws-sdk"



コマンド
bundle


バージョンが合わず、エラーが出る場合があります。
その時は落ち着いてbundle updateを行うとうまくいきます。


「config\environments\development.rb」ファイルの記述を更新します。


記述更新 config\environments\development.rb
32行目の「config.active_storage.service = :local」の記述を「:amazon」に変更します。

  # config.active_storage.service = :local
  config.active_storage.service = :amazon



「config\storage.yml」ファイルに以下の記述を追加します。


記述追加 config\storage.yml(9行目)
アクセスキー、シークレットキー、バケット名はご自分のものを入れて下さい。

amazon:
  service: S3
  access_key_id: 'ご自分のアクセスキーを入れてください'
  secret_access_key: 'ご自分のシークレットキーを入れてください'
  region: "ap-northeast-1"
  bucket: "ご自分のバケット名を入れてください"



config\storage.yml

test:
  service: Disk
  root: <%= Rails.root.join("tmp/storage") %>

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

amazon:
  service: S3
  access_key_id: 'ご自分のアクセスキーを入れてください'
  secret_access_key: 'ご自分のシークレットキーを入れてください'
  region: "ap-northeast-1"
  bucket: "ご自分のバケット名を入れてください"



ブラウザ確認を確認します。


ローカルにアップロードした画像は見えなくなっています。

画像が表示されない
画像が表示されない



画像をアップロードすると画像が表示されます。

画像表示成功
画像表示成功



アマゾンS3のバケットを見て画像がアップロードされているか確認して下さい。

画像アップロード成功
画像アップロード成功


↓↓クリックして頂けると励みになります。