railsのgemのCarrierwaveで画像をアップロードして、その保存先をAmazon S3にしようとしています。
設定方法
initializers/carrierwave.rb
ruby
1CarrierWave.configure do |config| 2 config.fog_credentials = { 3 :provider => 'AWS', 4 :aws_access_key_id => ENV['S3_KEY_ID'], 5 :aws_secret_access_key => ENV['S3_SECRET_KEY'], 6 :region => ENV['S3_REGION'] 7 } 8 config.storage = :fog 9 config.fog_directory = ENV['AWS_S3_BUCKET_NAME'] 10 config.cache_dir = "#{Rails.root}/tmp/uploads" #for Heroku 11end
uploaders/image_uploader.rb
# encoding: utf-8 class ImageUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick storage :fog def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end process :resize_to_limit => [400, 400] def extension_white_list %w(jpg jpeg gif png) end def filename super.chomp(File.extname(super)) + '.jpg' if original_filename.present? end def filename name = 'image' + '.jpg' name.downcase end end
コンソール上で環境変数の設定
heroku config:add S3_KEY_ID="************" S3_SECRET_KEY="************" AWS_S3_BUCKET="*******.com"
で環境変数もちゃんと登録できたのですが、実際にherokuにPushして、画像をアップロードしても、internal serverエラーの500が表示されてしまいます。
この原因はなんでしょうか?
そもそも設定方法が間違っているのでしょうか?
どなたか、ご存知でしたらご教示下さい!
よろしく御願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。