Ruby on Rails - Rails3 - 如何在应用程序中获取 AWS-S3 的 YML 配置数据?



具体来说,我有一个文件config/amazon_s3.yml,aws-s3 gem使用它来设置一些s3配置设置,如密钥等。我还将其中一些数据写入初始化器中不同文件中ENV中的var,以便在调用回形针使用的"has_attached_file"方法时引用它们。

更明智的做法是在初始化器中获取文件,以从s3配置yml或gem使用的类的一些配置设置中读取它们,例如AWS::S3::Base.connection.secret_access_key(这不起作用)。

有什么想法吗?

我在这里找到了答案如何在配置/初始化程序中使用YML值

首先,我加载yaml-in并将其固定为常数。

#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

相关内容

  • 没有找到相关文章

最新更新