2014-02-20 5 views
0

Я использую localhost прямо сейчас и установил драгоценный камень Figaro, чтобы помочь мне протестировать с помощью Paperclip с моим ведром S3. Когда я пытаюсь загрузить что-то, я получаю сообщение:Ruby on Rails with Figaro and Paperclip

missing required :bucket option 

В development.rb я вставил следующий код:

config.paperclip_defaults = { 
storage: :s3, 
s3_credentials: { 
    bucket: :ENV['AWS_BUCKET'], 
    access_key_id: :ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: :ENV['AWS_SECRET_ACCESS_KEY'] 
    } 
} 

И затем я поместил следующий код в Figaro сгенерированного приложения. YML файл:

development: 
    AWS_BUCKET: (the actual name of my bucket) 
    AWS_ACCESS_KEY_ID: (the actual access key) 
    AWS_SECRET_ACCESS_KEY: (etc) 

Я скажу, что, когда я заявляю, что ведро непосредственно в модели я использую для этого, это не похоже на работу (новая папка создается в моем ведре), но я Маг никогда не появляется в месте назначения (возможно, отдельный вопрос или, возможно, нет).

Я знаю, что мне не хватает чего-то очевидного здесь, я, вероятно, ничего не делаю правильно. Использование Rails v4 с aws-sdk v1.34 и Figaro v0.7.0. Спасибо всем, кто может мне помочь.

ответ

1

Я думаю, что есть только опечатка синтаксиса. ENV - переменная; это хэш, а не символ. Просто удалите : от ENV. Оно должно быть:

config.paperclip_defaults = { 
storage: :s3, 
    s3_credentials: { 
    bucket: ENV['AWS_BUCKET'], 
    access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] 
    } 
} 
+0

Да, это все. Хмм, файл все еще не заканчивается в ведро (в браузере отсутствует сообщение об ошибке). Папка создана, но нет файла. Не уверен, что там происходит. Посмотрите на это завтра и проверьте это как ответ, возможно, задайте новый вопрос, если я не смогу его решить. – Rachel9494

1

Далее на ваш комментарий, это живой код, который 100% работает на нас прямо сейчас:

config.paperclip_defaults = { 
    storage: :s3, 
    s3_host_name: 's3-eu-west-1.amazonaws.com', 
    s3_credentials: { 
     access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
     secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] 
    }, 
    bucket: ENV['S3_BUCKET_NAME'] 
} 

Также убедитесь, что вы перезагрузите рельсы сервер каждый раз, когда вы меняете эти Детали. Причина, по которой файлы конфигурации загружаются при инициализации и поддерживаются для сеанса сервера

+0

Спасибо большое. Я положил имя хоста для хорошей меры, но я думаю, что мой недостающий файл больше связан с тем фактом, что мне нужно было настроить мой путь: И мне нужно было обновить мою страницу S3 больше, чем то, что я делал. – Rachel9494