Rails3 - как получить данные конфигурации yml в aws-s3 в приложении? - PullRequest
2 голосов
/ 10 июня 2011

В частности, у меня есть файл config / amazon_s3.yml, который используется гемом aws-s3 для настройки некоторых параметров конфигурации s3, таких как секретные ключи и т. Д. Я также записываю некоторые из этих данных в переменную ENV в другомфайл в инициализаторах, чтобы я мог ссылаться на них в вызовах метода has_attached_file, используемого paperclip.

Было бы разумнее получить файл в инициализаторах для чтения их из конфигурационного yml s3 или некоторых настроек конфигурациидля классов, используемых гемом, например что-то вроде AWS::S3::Base.connection.secret_access_key (это не работает).

Есть идеи?

1 Ответ

9 голосов
/ 10 июня 2011

Я нашел ответ здесь Как использовать значения YML в конфиге / инициализаторе

Сначала я загружаю в yaml и вставляю его в константу.

#config/initializers/constants.rb
S3_CONFIG = YAML.load_file("#{::Rails.root}/config/amazon_s3.yml")

Затем, когда я настрою скрепку для модели, извлеките эти значения, убедившись, что я ссылаюсь на текущую среду:

class Entry < ActiveRecord::Base
  has_attached_file :media,
    :styles => { 
      :medium => "300x300>", 
      :thumb => "110x110>" 
    },
    :storage => :s3,
    :bucket =>S3_CONFIG[::Rails.env]["bucket"],
    :s3_credentials => {
      :access_key_id => S3_CONFIG[::Rails.env]["access_key_id"],
      :secret_access_key => S3_CONFIG[::Rails.env]["secret_access_key"]
    }        
end
...