我有一个问题,我正在使用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
答案 0 :(得分:0)
您可以使用路径作为参数调用File.open
,以便从路径创建IO对象。
added.each { |path| Shrine.new(:store).upload(File.open(path)) }