🤖
AWS S3とRailsの設定メモ
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