質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

312閲覧

carrierwaveを用いて画像をs3にアップしようとしたら、Missing required arguments: aws_access_key_id, aws_secret_accessとなった

kobaryo04ysh

総合スコア29

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/03/18 08:52

編集2022/01/12 10:55

##実現したいこと

作成しているブログアプリに画像アップ機能を搭載しようとしています。
初期段階として、画像をアップする機能は開発、本番環境共に作れたのですが、s3に保存をしようとしてもできなくなりました。

【AWS】ローカル環境の画像保存先をS3に変更する方法を1から解説を参考にまずは開発環境で画像の保存先をs3に変更したいと考えています。

##エラー
localhost:3000などアプリケーションの大半のページは問題なく動作するのですが、記事投稿画面で投稿の送信をしようとすると下記のエラーが発生します。

chrome

1ArgumentError in PostsController#create 2 3Missing required arguments: aws_access_key_id, aws_secret_access_key

##原因になってそうな?コード

PostsController

1def create 2 post = Post.new(post_params) 3 post.user_id = current_user.id 4 if post.save 5 flash[:success] = '投稿が送信されました' 6 redirect_to post 7 else 8 redirect_to new_post_path, flash: { 9 post: post, 10 error_messages: post.errors.full_messages 11 } 12 end 13 14 end

postModel

1class Post < ApplicationRecord 2 belongs_to :user 3 4 has_many :comments, dependent: :delete_all 5 6 validates :body, presence: true 7 8 attachment :image 9 10 mount_uploader :image, ImageUploader 11end 12

carrierwave

1 2require 'carrierwave/storage/abstract' 3require 'carrierwave/storage/file' 4require 'carrierwave/storage/fog' 5 6 7CarrierWave.configure do |config| 8 9 config.storage = :fog 10 config.fog_provider = 'fog/aws' 11 config.fog_credentials = { 12 provider: 'AWS', 13 aws_access_key_id: Rails.application.secrets.aws_access_key_id, 14 aws_secret_access_key: Rails.application.secrets.aws_secret_access_key, 15 region: 'ap-northeast-1' 16 } 17 18 19 config.fog_directory = 'バケット名' #実際にちゃんと記載しています。 20 config.asset_host = 'バケットURL' #実際にちゃんと記載しています。 21end 22

ImageUploader

1class ImageUploader < CarrierWave::Uploader::Base 2 if Rails.env.development? 3 storage :fog 4 elsif Rails.env.test? 5 storage :file 6 else 7 storage :fog 8 end 9 10 def store_dir 11 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 12 end 13 14 def extension_whitelist 15 %w(png jpg) 16 end 17 18 def filename 19 original_filename if original_filename 20 end 21end

secrets

1# Be sure to restart your server when you modify this file. 2 3# Your secret key is used for verifying the integrity of signed cookies. 4# If you change this key, all old signed cookies will become invalid! 5 6# Make sure the secret is at least 30 characters and all random, 7# no regular words or you'll be exposed to dictionary attacks. 8# You can use `rails secret` to generate a secure secret key. 9 10# Make sure the secrets in this file are kept private 11# if you're sharing your code publicly. 12 13development: 14 secret_key_base: 文字列・・・・・ 15 aws_access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %> 16 aws_secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %> 17 18test: 19 secret_key_base: 文字列・・・・・ 20 21 # Do not keep production secrets in the repository, 22 # instead read values from the environment. 23production: 24 secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 25

また、gemfileにはgem 'carrierwave'とgem 'fog-aws'を記述の上でbundle installも行っています。

##環境
ruby 2.5.0
rails 5.2.4.1

gemをfog-awsからfogにしてみたり、試してみたのですがうまく行きませんでした。

何か心当たりがあったら、なんでも構いませんので、ご教示願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問