Контрольная сумма каталога с python? - PullRequest
3 голосов
/ 16 марта 2009

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

Я бы хотел, чтобы пользователи как-то уведомлялись об изменениях каталога. То есть, когда кто-то загружает новый файл через FTP, определенные пользователи должны получать правильное сообщение. Не требуется, чтобы сообщение было более подробным, мне не нужно показывать точный измененный ресурс. Имя родительского каталога должно быть достаточно.

Какой подход вы бы порекомендовали?

Ответы [ 3 ]

2 голосов
/ 16 марта 2009

Если ваш сервер Linux, вы можете сделать это с помощью inotify

Если единственные обновления приходят с FTP, то другое решение, которое я использовал в прошлом, - это запись дополнительного модуля в ProFTPD , который выполняет «уведомление» после завершения загрузки. 1007 *

1 голос
/ 16 марта 2009

См. Этот вопрос: Как быстро найти добавленные / удаленные файлы?

Но если вы можете каким-либо образом контролировать загрузку (т.е. использовать HTTP POST вместо FTP), вы можете просто отправить уведомление после завершения загрузки. Это дает дополнительное преимущество, так как было бы просто убедиться, что пользователи никогда не увидят частичный файл.

0 голосов
/ 16 марта 2009

Простой подход состоит в том, чтобы отслеживать / проверять дату последнего изменения рабочего каталога (например, с помощью os.stat ()).

При каждом изменении файла в каталоге также изменяется и дата последнего изменения рабочего каталога (каталога, в котором находится файл).

По крайней мере, это работает на файловых системах, над которыми я работаю (ufs, ext3). Я не уверен, что все файловые системы делают это таким образом.

...