Обнаружение изменений файлов в каталоге, синхронизированном с внешним облачным хранилищем в Ubuntu 16.04 LTS

Я создаю программное обеспечение, которое определяет, загружен ли новый файл в хранилище корзины Google Cloud Platform с экземпляра виртуальной машины. Этой командой каталог файлов с именем images был смонтирован в корзину с помощью Cloud Storage Fuse.

gcsfuse cloud-storage-bucket ~/mystuff/images

Каждый раз, когда файл загружается в хранилище, этот файл также появляется в каталоге изображений. Я использую пакет Python Watchdog, чтобы определить, создан ли новый файл

# -*- coding: utf-8 -*-
#!/bin/bash
import time
import TextDetector
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

DIR="~/mystuff/images"

class ExampleHandler(FileSystemEventHandler):
    def on_created(self, event): # when file is created
        # do something, eg. call your function to process the image       
        print("Got event for file %s" % event.src_path)
        TextDetector.detect_text(event.src_path)

observer = Observer()
event_handler = ExampleHandler() # create event handler
# set observer to use created handler in directory
observer.schedule(event_handler, path=DIR)
observer.start()

# sleep until keyboard interrupt, then stop + rejoin the observer
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()

observer.join()

Проблема в том, что сторожевой таймер ничего не обнаружил, даже если в каталоге с изображениями создается новый файл каждый раз, когда я загружаю что-то в хранилище. Я также пытался использовать inotify, но результат также тот же. Код работает без проблем, когда я попробовал локально на платформе Windows. Я на самом деле совсем новичок в Ubuntu. Может ли кто-нибудь помочь мне решить эту проблему?

1 ответ

Решение

Возможно, вы захотите посмотреть на следующие варианты:

Я бы не советовал строить поверх FUSE-коннектора и использовать встроенные функции, предоставляемые платформой.

Другие вопросы по тегам