Как хранить файлы на Amazon S3 условно в зависимости от того, в какой среде вы находитесь - PullRequest
2 голосов
/ 13 июня 2011

Я использую Paperclip, и этот код, наряду с гемом aws-s3, позволяет мне сохранять загружаемые файлы с помощью 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 ]

1 голос
/ 13 июня 2011

В конце среды. 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

Это должно работать. Удачи!

1 голос
/ 13 июня 2011

вы, вероятно, могли бы сделать что-то вроде

:storage => Rails.env.production? ? :s3 : :whatever
...