【问题标题】:Getting image from REST API and uploading it to Firebase Cloud Storage using Firebase Cloud Functions从 REST API 获取图像并使用 Firebase Cloud Functions 将其上传到 Firebase Cloud Storage
【发布时间】:2021-07-30 17:08:26
【问题描述】:

我需要完成什么

我需要从 REST API (base64) 获取图像并将单个图像写入 Firebase Cloud Storage。镜像写入成功后,将日志写入 Firebase 实时数据库。

有什么问题

好吧,我使用 AdminSDK 初始化了 Firebase 应用程序(Cloud Functions),因为我需要一些管理功能(例如绕过实时数据库规则)。根据 Firebase 文档,如果我使用 AdminSDK,那么为了操作 Cloud Storage,我必须使用“@google-cloud/storage”。

所以我在documentation 中查找“@google-cloud/storage”,发现要上传文件,我必须调用方法“.upload”并指定文件路径作为参数。

问题是我没有该文件的路径,因为我将它作为 base64 字符串。我无法为它生成路径,因为 nodeJS 没有方法 URL.createObjectURL 并且对该方法进行 polyfiling 是不可能的。将该图像写入文件系统也不是解决方案,因为 Cloud Functions 是只读环境。

我尝试过的事情

  • Polyfiling URL.createObjectURL,但是没有用

  • 使用nodeJS模块FS将图像从REST API写入文件系统,上传到云存储,然后删除。

有没有解决这个问题的方法,或者有什么推荐的方法来完成这种功能?

【问题讨论】:

  • 您好,可以分享您的代码吗?
  • Cloud Functions documentation#File System 提到环境提供了一个可写的/tmp 目录,为什么不直接把文件写在那里...?
  • @esqew,哦,谢谢,我忘了那个选项了。

标签: node.js rest firebase-realtime-database google-cloud-functions firebase-storage


【解决方案1】:

解决方案

我的第二个解决方案(使用 fs 写入临时文件)几乎是正确的,但我忘记将文件目标指定为 /tmp。在 Firebase Cloud Functions 中,除了 /tmp 只读存储之外的一切。

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 2017-09-04
    • 2021-07-25
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2017-12-17
    • 2020-11-12
    相关资源
    最近更新 更多