带有ActiveDirectory的Rails上的Carrierwave在store_dir中添加了tmp文件夹

时间:2016-07-23 05:00:38

标签: ruby-on-rails carrierwave

我正在尝试使用carrierwave,它正在上传文件,但我希望我的mp4文件位于public / uploads目录中。它将它添加到那里,但将其放入tmp / some-weird-id文件夹中。我想在公共/上传中使用mp4文件。这可能吗?如果是这样,怎么样?我已经尝试编辑cache_dir,但它仍然添加了奇怪的id文件夹。

以下是目前的代码:

class VideoUploader < CarrierWave::Uploader::Base

  # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  # include CarrierWave::MiniMagick

  # Choose what kind of storage to use for this uploader:
  storage :file
  # storage :fog

  def store_dir
    "uploads" # This saves to Rails_Root/public/uploads
  end

  def move_to_cache
    true
  end

  def move_to_store
    true
  end

这是控制器

 def create
    @file = params["video"][:file].original_filename
    @video = Video.new({ :upload_file_name => @file, :user_id => current_user.id})
    @video.file = params["video"][:file]

    respond_to do |format|
      if @video.save!
        format.json { render json: {files: [@video.id]}, status: :created }
      end
    end
 end

1 个答案:

答案 0 :(得分:0)

您可以指示Carrierwave 文件移动到您的存储目录,而不是通过覆盖上传器中的move_to_cachemove_to_store方法来复制它。

class MyUploader < CarrierWave::Uploader::Base
  def move_to_cache
    true
  end

  def move_to_store
    true
  end
end

您可以在Carrierwave documentation about large files

中了解相关信息