【问题标题】:Carrierwave on Rails with ActiveDirectory adds tmp folder in store_dir带有 ActiveDirectory 的 Carrierwave on Rails 在 store_dir 中添加 tmp 文件夹
【发布时间】:2016-07-25 10:31:43
【问题描述】:

我正在尝试使用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

【问题讨论】:

标签: ruby-on-rails carrierwave


【解决方案1】:

您可以指示 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 阅读有关此内容的信息

【讨论】:

  • 什么文件夹是空的?你能发布你的上传器配置吗?
  • 我应该说它添加了文件,但不是:public/uploads/filename.mp4 它是public/uploads/tmp/1469257810-5440-0001-0417/filename.mp4
  • 哇,我超级笨。用工作代码修复了上面的问题。将其标记为答案。谢谢!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
相关资源
最近更新 更多