【问题标题】:Upload files with Shrine through Listen gem通过 Listen gem 使用 Shrine 上传文件
【发布时间】:2017-12-13 09:22:55
【问题描述】:

我有一个问题,我正在使用 Listen gem 来跟踪文件夹中添加的新文件,添加一个新文件后,我想将其复制到带有 Shrine 的另一个存储中,但 Listen gem 在“添加”变量中返回我添加文件的路径,但 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

【问题讨论】:

    标签: listen shrine


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 2020-12-14
      • 1970-01-01
      • 2017-10-26
      • 2018-05-27
      • 2015-01-30
      • 2019-10-23
      • 2016-12-02
      • 2010-11-18
      相关资源
      最近更新 更多