如何根据您所处的环境有条件地在亚马逊S3上存储文件

时间:2011-06-13 04:00:26

标签: ruby-on-rails ruby-on-rails-3 amazon-s3 paperclip development-environment

我正在使用Paperclip,此代码以及aws-s3 gem允许我使用Amazon S3存储文件上传:

has_attached_file :photo,
  :styles => {
    :tiny => "25x25#",
    :shown => "40x40#",
    :thumbnail => "50x50#",
    :small  => "150x150>",
    :medium => "300x300>" },
    :default_url => "/images/default_:style.jpg",
    :storage => :s3, 
    :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
    :path => "profile/:attachment/:style/:id.:extension"

但是,当我在开发环境中时,我不想在Amazon S3上存储文件。如何在我的应用程序中设置它?

2 个答案:

答案 0 :(得分:1)

你可能会做类似

的事情
:storage => Rails.env.production? ? :s3 : :whatever

答案 1 :(得分:1)

在environment.rb结束时:

APP_CONFIG = YAML.load_file("#{Rails.root.to_s}/config/config.yml")[Rails.env]

在config / config.yml中:

development:
  use_amazon: false

test:
  use_amazon: false

production:
  use_amazon: true

在你的控制器中:

if APP_CONFIG['use_amazon']
   #USING AMAZON S3
else
   #USING SOMETHING ELSE
end

这应该有效。 祝你好运!