有时我远离互联网,仍然需要处理上传页面。 Carrierwave Direct似乎强制存储:雾;在开发中没有压倒一切的方式 是否有可能告诉Carrierwave Direct使用本地存储(:文件)并简单地回退到Carrierwave的开发配置设置?
设置存储:在开发配置设置下的carrierwave初始化程序中的文件不起作用..."的carrierwave_direct错误不是公认的提供商"来自"<%= direct_upload_form_for @uploader do | f | %GT;"
我试图直接解决carrierwave,但强迫:雾,期待重定向网址并期望使用direct_upload_form_for表单方法... carrierwave_direct非常负责。
使用存储:开发中的文件将是carrierwave_direct gem的一个受欢迎的功能。有谁知道如何干净利落地做到这一点?
答案 0 :(得分: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