Перемещение файла SFTP не вызывает событие - PullRequest
0 голосов
/ 08 февраля 2019

Я установил SFTP-сервер и некоторые триггеры, которые я хочу запустить, когда файл будет готов.

В случае, если я запустил до того, как он был завершен, или в случае ошибки соединения, я пишусначала в папку tmp (с использованием протокола SFTP) и после ее копирования я перемещаю ее в папку new.

Я отслеживаю все события в одной папке, а другая с помощью inotify:

inotifywait -m --format '%:e %f' new
inotifywait -m --format '%:e %f' tmp

События для записи файла в папку tmp:

CREATE newFile
OPEN newFile
ATTRIB newFile
MODIFY newFile
MODIFY newFile
MODIFY newFile

Я заметил, что если я переместу файл из одной папки в другую из bash:

mv tmp/newFile new

Событие MOVE_TO вызвано.В папке tmp:

CLOSE_WRITE:CLOSE newFile
MOVED_FROM newFile

В новой папке:

MOVED_TO newFile

Однако, если я перемещаю файл методом RENAME через SFTP, это не так.Это все запущенные события:

В папке tmp:

CLOSE_WRITE:CLOSE newFile
DELETE newFile

В новой папке:

CREATE newFile
OPEN newFile
ACCESS newFile
CLOSE_NOWRITE:CLOSE newFile

Является ли эта часть протокола SFTP?Можно ли переместить файл в sftp и вызвать событие MOVED_TO?

Это реализация для клиента sftp, который я использую: https://github.com/mscdex/ssh2-streams/blob/55fd9c36b6dca8dbf0588a1d6f450b85c784dc72/lib/sftp.js Я использую openssh-sftp-сервер для сервера

...