🤖

AWS S3とRailsの設定メモ

2023/09/30に公開

AWSS3にバケットを作成し画像を保存したあとのRailsとの連携設定についての備忘録です。

credentials.ymlにAWS認証情報を設定

まずAWSのアクセスキー、シークレットアクセスキーをcredentials.ymlに追加します。

エディターを開きます。

docker-compose run --rm -e EDITOR="vi" コンテナ bin/rails credentials:edit

iキーで編集モードにして、AWSのアクセスキー、シークレットアクセスキーを入力します。

aws:
  access_key_id: " "
  secret_access_key: " "

入力できたらescキーで編集モードを終了し、:wqで保存しエディターを閉じます。

ちなみに、AWSのアクセスキー、シークレットアクセスキーの情報は下記のコマンドで確認することができました。

cat ~/.aws/credentials
[default]
aws_access_key_id = 〜〜〜〜〜〜〜
aws_secret_access_key = 〜〜〜〜〜〜〜

storage.ymlを編集する

次にstorage.ymlを下記のように編集して(元々コメントアウトされていました)、credentials.ymlからAWS認証情報を参照するようにします。

config/storage.yml
amazon:
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
  region: ap-northeast-1
  bucket: 自分のバケット名

S3に保存した画像を現在作成しているWEBアプリのデモデータとしてテーブルに投入したかったのですが、こちらの設定を行うことで無事に実行ができました。

Discussion