Как проверить наличие изменений в каталоге на FTP-сервере? - PullRequest
0 голосов
/ 08 ноября 2018

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

Я знаю, что изменения в каталоге на локальном компьютере можно увидеть с помощью сторожевого наблюдателя.

Но я хочу проверить изменения в каталоге (добавление нового файла, удаление в файле) на FTP-сервере.

Как этого добиться?

код, который я использую для проверки изменений в каталоге на локальной машине: -

    from watchdog.observers import Observer
    from watchdog.events import FileSystemEventHandler
    import ftplib
    import time

    class ExampleHandler(FileSystemEventHandler):
          def on_created(self, event): 
                print "Got event for file %s" % event.src_path 

    session = ftplib.FTP('address','username','password')
    path='/directory/to/check'
    session.cwd(path) 
    observer = Observer()
    event_handler = ExampleHandler() 
    observer.schedule(event_handler, path_of_the_directory)
    observer.start()
    try:
       while True:
          time.sleep(1)
    except KeyboardInterrupt:
          observer.stop()

    observer.join()

1 Ответ

0 голосов
/ 08 ноября 2018

Протокол FTP не имеет API для уведомления клиента об изменениях.

Если FTP является единственным интерфейсом к удаленной файловой системе, единственным решением является периодический опрос папки FTP на предмет изменений.

См., Например, Мониторинг удаленного каталога FTP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...