2015-05-13 5 views
0

Итак, я пытаюсь загрузить изображение из Rails API на S3, используя Fog.Amazon S3 - Загрузка изображения Carrierwave

Всякий раз, когда я пытаюсь загрузить изображение, я получаю это:

Excon::Errors::Forbidden (Expected(200) <=> Actual(403 Forbidden) 
    (...) 
    All access to this object has been disabled 

Он работает в разработке, но когда я переключаюсь на производство, я получаю ошибку выше. Я использую ключи от созданного мной пользователя, который устанавливает полные административные разрешения.

Мой carrierwave.rb: требуют '' carrierwave

CarrierWave.configure do |config| 

    config.fog_credentials = { 
    :provider    => "AWS", 
    :region     => "us-east-1", 
    :aws_access_key_id  => ENV['AWS_ACCESS_KEY_ID'], 
    :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] 
    } 

    if Rails.env.production? 
    config.cache_dir = "#{Rails.root}/tmp/uploads" 
    end 

    config.fog_directory = ENV['AWS_BUCKET'] 
    config.fog_public  = false 
end 

Любые идеи? Заранее спасибо! :)

+0

Требуется полная backtrace для изучения проблемы. –

+1

Вы должны проверить, есть ли у ENV все ваши параметры, которые вам нужны в prodaction. Откуда вы получаете ENV? – denys281

+1

@ denys28, Dumb ошибка. Забыл добавить регион ENV на Heroku. Сейчас все работает нормально. Благодаря! – Sebyddd

ответ

0

В моем случае проблема была связана с ENV на Heroku. Я забыл добавить переменную REGION.

Итак, стоит проверить, правильно ли установлены все ваши переменные.

1

Всегда убедитесь, что у вас есть правильные переменные ENV и правильные ключи S3.

Это была проблема в моем случае.

Смежные вопросы