我正在尝试创建一个类似于 Dropbox 的文件观察器,用于跟踪文件更改并在发生更改时更新服务器。不幸的是,我正在使用的 Watchdog 的 fileSystemHandler 的实现无法检测到文件的删除。这是观察者代码
class MyHandler(FileSystemEventHandler):
def on_any_event(self, event):
message = dict()
try:
index = event.src_path.index('onedir')
message['filename'] = str(event.src_path[index+7:])
except:
print "NoneType error, could not update"
message['timestamp'] = str(datetime.datetime.now())
message['username'] = str(self.username)
message['password'] = str(self.password)
messageStr = json.dumps(message)
print messageStr
print event.event_type
urlExtension = ""
if event.event_type == "created":
urlExtension = '/userfile/newfile'
elif event.event_type == 'modified':
urlExtension = '/userfile/updatefile'
elif event.event_type == 'deleted':
urlExtension = '/userfile/deletefile'
else:
return
self.sendJson(urlExtension, message)
这是启动 FileSystemHandler 的代码
def run(self):
event_handler = MyHandler()
event_handler.username = self.username
event_handler.password = self.password
self.observer.schedule(event_handler, self.path, recursive=True)
self.observer.start()