【发布时间】: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