2017-06-22 69 views
0

有时我远离互联网,仍然需要在上传页面上工作。 Carrierwave Direct似乎强制储存:雾;无法在开发中重写。
是否可以告诉Carrierwave Direct使用本地存储(:file)并简单回退到Carrierwave的开发配置设置?运营商可以直接上传到本地存储吗?

设置存储:在开发配置设置下的carrierwave初始值设定中的文件不起作用...“<%= direct_upload_form_for @uploader do | f |%>”的carrierwave_direct错误与“不是公认的提供者”。

我试图解决carrierwave直接,但强制之间:雾,期待重定向url和期待direct_upload_form_for表单方法... carrierwave_direct是非常多的负责。

使用存储:开发中的文件将是carrierwave_direct gem的一个受欢迎的功能。有谁知道如何干净地做到这一点?

回答

1

我认为它可以如下进行:

CarrierWave.configure do |config| 
    if Rails.env.development? || Rails.env.test? 
    config.storage = :file 
    config.asset_host = ENV["dev_url"] 
    else 
    config.fog_provider = 'fog/aws'      # required 
    config.fog_credentials = { 
     provider:    'AWS',      # required 
     aws_access_key_id:  ENV["aws_id"],      # required 
     aws_secret_access_key: ENV["aws_key"],      # required 
     region:    ENV["aws_zone"]     # optional, defaults to 'us-east-1' 
    } 
    config.fog_directory = ENV["aws_bucket"]       # required 
    config.max_file_size = 600.megabytes # defaults to 5.megabytes 
    config.use_action_status = true 
    config.fog_public  = false          # optional, defaults to true 
    config.fog_attributes = { cache_control: "public, max-age=#{365.day.to_i}" } # optional, defaults to {} 
    end 

end 

而在你上传加入:

class SomeUploader < CarrierWave::Uploader::Base 
    if Rails.env.development? || Rails.env.test? 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
    end 
end 
相关问题