PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Monday, August 1, 2022

[FIXED] How to check for change in the directory at FTP server?

 August 01, 2022     ftp, ftplib, python, python-watchdog     No comments   

Issue

I want to get the file from FTP server to local as soon as new file is added in directory on FTP.

I know changes in the directory at local machine can be seen using watchdog observer.

But I want to check for the change in the directory (addition of new file, deletion on file) at FTP server.

How to achieve this?

Code I am using to check change in the directory on local machine:

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()

Solution

The FTP protocol has no API to notify a client about changes.

If FTP is your only interface to the remote file system, the only solution is polling the FTP folder for changes periodically.

See for example Monitor remote FTP directory.



Answered By - Martin Prikryl
Answer Checked By - Marie Seifert (PHPFixing Admin)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing