前提・実現したいこと
現在intagramのような画像投稿サイトを作成しています。
activestorageで画像を保存してローカル上で画像を表示することが出来たのですが、
AWSのS3を使用して画像の保存をしようと実装していたところ、
投稿したimageを保存出来ないとエラーが出てしまいました。
発生している問題・エラーメッセージ
Aws::Sigv4::Errors::MissingCredentialsError in ItemsController#create Cannot load `Rails.config.active_storage.service`: missing credentials, provide credentials with one of the following options: - :access_key_id and :secret_access_key - :credentials - :credentials_provider
該当のソースコード
Rubyonrails
1 2 def create 3 Item.create(item_params) 4 # アイテムモデル保存する 5 # praivateでitem_paramsで引用してくるものを指定 6 @item.image.attach(params[:image]) 7 end 8 9 private 10 def item_params 11 params.require(:item).permit(:text, :image ).merge(user_id: current_user.id) 12 #アイテムの名前と写真だけを許可 13 #mergeメソッドとは2つのハッシュを1つにする 14 end 15
試したこと
def create
Item.create(item_params)
ここのコードを追記➡︎@item.image.attach(params[:image])
end
➡︎のコードを記述する前もNoMethodErrorが発生
補足情報(FW/ツールのバージョンなど)
config/enviroments/development.rb
config.active_storage.service = :amazon
config/envilorments/production.rb
config.active_storage.service = :amazon
➡︎localから保存先をamazonに変更
config/storage.yml
amazon:
service: S3
access_key_id: ”<%= ENV['AWS_ACCESS_KEY_ID'] %>”
secret_access_key: ”<%= ENV['AWS_SECRET_ACCESS_KEY'] %>”
region: ap-northeast-1
bucket: nostalgia2020
環境変数はターミナルで
vim ~/.zshrc
source ~/.zshrc
source ~/.bash_profile
上記を実装し整えました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。