Перемещение файла SFTP не вызывает событие

Я установил 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-сервер для сервера

0 ответов

Другие вопросы по тегам