Обнаружение изменения файла на удаленном общем ресурсе SMB с помощью PHP

StackOverflow https://stackoverflow.com/questions/1660542

  •  11-09-2019
  •  | 
  •  

Вопрос

Я пишу PHP-процесс, который будет выполняться на компьютере Unix, которому необходимо будет отслеживать удаленный SMB-сервер и обнаруживать новые файлы, которые загружаются на этот ящик по FTP.Маловероятно, что я смогу это сделать

Ему нужно будет обнаружить:

  1. Создаются новые файлы
  2. Завершение загрузки файла
  3. Удаляемые файлы

Если бы это был общий ресурс NFS, я бы попробовал использовать FAM для обнаружения событий, но я не вижу способа сделать что-нибудь эквивалентное?

Это было полезно?

Решение

Это не похоже на то, что я бы использовал в производстве.Но вы могли бы попробовать что-то вроде этого:

  1. смонтируйте общий ресурс SMB с Samba на компьютере, на котором запущен PHP демон
  2. используйте SPL RecursiveIteratorIterator с DirectoryIterator для сбора и ведения списка всех файлов и папок на общем диске
  3. один раз в некоторое время обновить список папок и сравните это с нынешним состоянием, если файл не существует вы знаете, она была удалена, если есть новый файл, поместить его в очереди и пометить его как "существо загруженные"
  4. при следующем "запуске обновления" проверьте файл, поставленный в очередь, это файл размер файла не изменился загрузка файла вероятно, завершена, если размер файла изменился снова поместите его в очередь и пометьте его как "загружаемый".
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top