1

我正在制作一个软件,用于检测是否有新文件从虚拟机实例上传到 Google Cloud Platform 的存储桶存储中。此命令使用 Cloud Storage Fuse 将名为 images 的文件目录挂载到存储桶

gcsfuse cloud-storage-bucket ~/mystuff/images

每当一个文件被上传到存储桶中时,该文件也会出现在 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 很陌生。谁能帮我解决这个问题?

4

1 回答 1

2

您可能需要查看以下选项:

我建议不要在 FUSE 连接器之上构建并利用平台提供的本机功能。

于 2017-08-26T10:48:46.867 回答