123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import os
- import time
- from watchdog.observers import Observer
- from watchdog.events import FileSystemEventHandler
- from tools.logger_handle import logger
- from tools.oss_client import MinioClient, oss_handle
- class FileSaveHandler(FileSystemEventHandler):
- def __init__(self, serve_client):
- self.serve_client = serve_client
- super().__init__()
- def on_modified(self, event):
- ext = os.path.splitext(event.src_path)[-1]
- if '~$' in event.src_path:
- return
- if ext in ['.docx', '.doc', '.ppt', '.pptx', '.xls', '.xlsx']:
- logger.info(f"[文件修改] 文件已保存: {event.src_path}, 执行上传操作。")
- res = self.serve_client.upload_file(event.src_path)
- if res:
- logger.info(f'文件{event.src_path}上传成功')
- else:
- logger.info(f'文件{event.src_path}上传失败')
- def start_watchdog(serve_client, work_path):
- event_handler = FileSaveHandler(serve_client)
- observer = Observer()
- observer.schedule(event_handler, work_path, recursive=True)
- observer.start()
- logger.info('watch dog start')
- try:
- while True:
- time.sleep(1)
- except KeyboardInterrupt:
- observer.stop()
- observer.join()
- if __name__ == '__main__':
- start_watchdog()
- # print(os.listdir('../test/'))
|