Detectando alterações de arquivo no diretório sincronizado com armazenamento em nuvem externo no Ubuntu 16.04 LTS

0

Estou criando um software que detecta se um novo arquivo é carregado no armazenamento em bloco do Google Cloud Platform a partir da instância de máquina virtual. Um diretório de arquivos chamado images foi montado no bucket usando o Cloud Storage Fuse por esse comando

gcsfuse cloud-storage-bucket ~/mystuff/images

Sempre que um arquivo é carregado no armazenamento do bucket, o arquivo também aparecerá no diretório de imagens. Estou usando o pacote Watchdog do Python para detectar se um novo arquivo é criado

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

O problema é que o watchdog não detectou nada, mesmo quando há um novo arquivo criado no diretório de imagens toda vez que eu fiz o upload de algo no armazenamento do bucket. Eu também tentei usar inotify, mas o resultado também é o mesmo. O código é executado sem nenhum problema quando eu tentei localmente na plataforma Windows. Na verdade sou bem novo no Ubuntu. Alguém poderia me ajudar a resolver esse problema?

    
por kamal samsudin 25.08.2017 / 04:23

0 respostas