Heroku and carrier wave do not load my s3 configuration

I have an application on Heroku that uses the Carrierwave gem to upload images to S3.

I set the s3 configuration in the initializer named carrierwave.rb

CarrierWave.configure do |config| config.s3_access_key_id = 'XXXXXXXXXXXXXXXXXXXX' config.s3_secret_access_key = 'XXXXXXXXXXXXXXXXX' config.s3_bucket = 'XXXXX' config.storage = :s3 end 

This works fine when developing on my local machine, however, after deploying to Heroku, I get the following error:

 A Errno::EACCES occurred in events#update: Permission denied - /app/public/uploads /usr/ruby1.8.7/lib/ruby/1.8/fileutils.rb:243:in `mkdir' 

Obviously, he is trying to write a heroku server that only reads and does not type s3 settings.

Does anyone know how I can get a hero to send my files to s3?

+3
source share
2 answers

You watched this demo application.

In particular, the loaded class here

+6
source

From CarrierWave wikki:

 Heroku has a read-only filesystem, so uploads must be stored on S3 and cannot be cached in the public directory. You can work around this by setting the cache_dir in your Uploader classes to the tmp directory: 

Check https://github.com/jnicklas/carrierwave/wiki and scroll to the bottom section labeled "CarrierWave on Heroku" to find out how they set it up. Hope this helps someone.

+7
source

Source: https://habr.com/ru/post/1339329/