Google App Engine中的Firebase存储触发器

时间:2018-03-13 00:43:25

标签: firebase google-app-engine firebase-storage

我正在尝试弄清楚如何将Google App Engine实例正确连接到Firebase存储触发器。在我的使用案例中,我希望每次将视频上传到Firebase存储,进行转码然后再读取到同一个数据库。

我无法弄清楚如何正确地将Firebase存储连接到Google App Engine(以及成功链接)。

我在Google App Engine中的计划,通过全新上传来触发简单的转码功能,并将其读取

def transcode():
    client = storage.Client(PROJECT_ID)
    bucket = client.bucket(PROJECT_ID)
    blob = bucket.blob('sample.mp4')
    with open('/tmp/sample2.mp4', 'w') as f:
        blob.download_to_file(f)
    os.system('rm /tmp/output.webm')
    ret = os.system('/usr/bin/avconv -i /tmp/sample2.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis /tmp/output.webm')
    if ret:
        sys.stderr.write("FAILED")
        return "Failed"
    blob = bucket.blob('output.webm')
    blob.upload_from_file(open('/tmp/output.webm'))
    sys.stderr.write("SUCCESS")
    return "SUCCESS"

我最后一次需要弄清楚如何在将新上传添加到Firebase存储时执行此操作。是否有正确的方法将谷歌应用引擎实例连接到Firebase云存储(并且每次上传只触发一个实例)

1 个答案:

答案 0 :(得分:2)

通常使用Cloud Pub/Sub在Google Cloud Platform中的组件之间传达工作项目。

在云功能中,您可以使用Cloud Pub/Sub SDK for node向在GAE中运行的应用程序发送消息。然后,在GAE中,你会listen and respond to messages

如何通过配置和代码实际执行此操作在很大程度上取决于您需要系统的工作方式。