通过Listen gem上传Shrine文件

时间:2017-12-13 09:22:56

标签: listen shrine

我有一个问题,我正在使用Listen gem跟踪文件夹中添加的新文件,添加新文件后我想用Shrine将其复制到其他存储,但是Listen gem返回“添加”变量a添加文件的路径,但是Shrine需要一个运行正确的对象,如果我有这个文件的路径,我怎么能得到对象?有人能帮助我吗?

load './config/initializers/shrine.rb'

module FileTracker

  file_dir = "./public/uploads/cache"

  listener = Listen.to(file_dir) do |modified, added, removed|
    puts "modified absolute path: #{modified}"
    puts "added absolute path: #{added}"
    puts "removed absolute path: #{removed}"
  FileUtils.cp_r added, './public/uploads/store' # this code is copy files, but i need do it with Shrine
  #added.each { |file| p Shrine.new(:store).path(file) } #this code is return error
  end

   listener.start 
   sleep
end

1 个答案:

答案 0 :(得分:0)

您可以使用路径作为参数调用File.open,以便从路径创建IO对象。

added.each { |path| Shrine.new(:store).upload(File.open(path)) }