ruby-on-rails - 在 Paperclip 的开发/测试中防止图像上传到 AWS

标签 ruby-on-rails ruby ruby-on-rails-4 paperclip

我继承了一个使用Paperclip做图像处理的项目,它也上传到AWS bucket,通常我使用Carrierwave并在测试或开发环境中选择本地保存文件

CarrierWave.configure do |config|
  if Rails.env.test?
    config.storage = :file
    config.enable_processing = false
 else
    config.fog_credentials = {
      :provider              => 'AWS',
      :aws_access_key_id     => ENV['AWS_ACCESS_KEY_ID'],
      :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
      :region => 'eu-west-1'
   }

    config.fog_directory =  ENV['AWS_BUCKET']
    config.fog_public     = true
    config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}
 end
end

我怎样才能用回形针达到同样的效果?我读到你可以 Define Defaults 在初始化文件中。

但我不确定要传递哪些选项。

最佳答案

你可以像这样创建一个初始化器

# config/initializers/paperclip.rb
if Rails.env.development? || Rails.env.test? 
  Paperclip::Attachment.default_options[:storage] = 'filesystem'
else
  Paperclip::Attachment.default_options[:storage] = 's3'
  Paperclip::Attachment.default_options[:s3_credentials] = {
    bucket: ENV['AWS_BUCKET'],
    access_key_id: ENV['AWS_ACCESS_KEY_ID'],
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
  }
  # other config...
end

有关 S3 的更多选项,另请参阅 http://www.rubydoc.info/gems/paperclip/Paperclip/Storage/S3

只需将这些选项添加到 Paperclip::Attachment.default_options 哈希 :)

关于ruby-on-rails - 在 Paperclip 的开发/测试中防止图像上传到 AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33654477/

相关文章:

ruby-on-rails - 自动加载常量用户时检测到循环依赖

ruby - 无法将 Fixnum 转换为 String(类型错误)

ruby-on-rails - 如何在特定线路上运行 RSpec 测试?

css - 模态窗口出现在我的标题而不是主体中

ruby-on-rails - PG::UndefinedTable:错误:缺少 FROM 子句

ruby-on-rails - 如何通过rake任务导入CSV文件?

ruby-on-rails - 在 graphql-ruby 解析器中包含 url 帮助器

ruby-on-rails - 从 www 重定向到非 www 的 Nginx HTTPS 问题

ruby-on-rails - 安装 gitlab-5.0 时遇到问题 - rake 中止

ios - Facebook SDK iOS 连接的 Rails-api 身份验证?