ruby on rails - Carrierwave Upload with Amazon S3 - 403 Forbidden Error -
i attempting use carrierwave amazon s3 in rails app, , keep getting error
"excon::errors::forbidden (expected(200) <=> actual(403 forbidden)." <error><code>signaturedoesnotmatch</code><message>the request signature calculated not match signature provided. check key , signing method.
i receive warning
"[warning] fog: specified s3 bucket name() not valid dns name, negatively impact performance. details see: http://docs.amazonwebservices.com/amazons3/latest/dev/bucketrestrictions.html"
config/initializers/carrierwave.rb:
carrierwave.configure |config| config.fog_credentials = { provider: 'aws', aws_access_key_id: env["aws_access_key_id"], aws_secret_access_key: env["aws_access_key"] } config.fog_directory = env["aws_bucket"] end
my bucket name "buildinprogress"
i've double checked access key id , access key correct.
how can fix error??
it problem fog/excom kept throwing random errors me too.
my fix remove gem 'fog' , replace gem 'carrierwave-aws' instead.
then, in *_uploader.rb change
storage :fog ---> storage :aws
and update carrierwave.rb file ex.:
carrierwave.configure |config| config.storage = :aws # required config.aws_bucket = env['s3_bucket'] # required config.aws_acl = :public_read config.aws_credentials = { access_key_id: env['s3_key'], # required secret_access_key: env['s3_secret'] # required } config.aws_attributes = { 'cache-control'=>"max-age=#{365.day.to_i}", 'expires'=>'tue, 29 dec 2015 23:23:23 gmt' } end
for more info check out carrierwave-aws github page
Comments
Post a Comment