Ruby копирование файла в другое место после завершения загрузки - PullRequest
0 голосов
/ 16 января 2020

Я начал загружать большой файл (НЕ через ruby), а затем понял, что загружаю в неправильное место. Я не буду за компьютером, когда загрузка будет завершена, поэтому есть ли способ ruby зарегистрировать, что файл загружен, и скопировать этот файл в другую папку за ночь?

Я понимаю, как скопируйте файл, но можно ли Ruby запускать тест так часто или запускать процесс по завершении процесса на компьютере?

1 Ответ

1 голос
/ 16 января 2020

Может быть, камень слушает может помочь вам. Вам просто нужно прослушать каталог, в котором находится загруженный файл, при желании указать имя файла, который вы хотите отслеживать, отследить временную метку каждой модификации, и, если последняя модификация, скажем, 10 минут go, скопировать файл в новый каталог.

require 'listen'
require 'fileutils'
require 'time'

modified_at = Time.now

listener = Listen.to('/path/to/download/dir', only: /^downloaded-file$/) do |modified|
  modified && (modified_at = Time.now)
end

listener.start

loop do
  if Time.now - modified_at > 600
    listener.stop
    FileUtils.cp('/path/to/download/dir/downloaded-file', '/path/to/new/dir')
    break
  end
  sleep 60
end
...