Max*_*ams 2 yaml ruby-on-rails amazon-s3 ruby-on-rails-3
具体来说,我有一个文件config/amazon_s3.yml,由aws-s3 gem用来设置一些s3配置设置,比如密钥等.我还将一些这样的数据写入ENV中的var中,在初始化程序的不同文件中所以我可以通过调用回形针使用的"has_attached_file"方法来引用它们.
在初始化器中获取文件以从s3配置yml中读取它们,或者为gem使用的类的一些配置设置,例如类似的东西AWS::S3::Base.connection.secret_access_key(这不起作用)会更聪明.
有任何想法吗?
我在这里找到了答案如何在config/initalizer中使用YML值
首先我加入yaml并将其粘在一个常数中.
#config/initializers/constants.rb
S3_CONFIG = YAML.load_file("#{::Rails.root}/config/amazon_s3.yml")
Run Code Online (Sandbox Code Playgroud)
然后,当我为模型设置回形针时,请拉入这些值,确保我参考当前环境:
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
Run Code Online (Sandbox Code Playgroud)