node.js - 将数据从firebase函数上传到firebase存储?
问题描述
我有一个使用 node.js 运行的网站,后端运行在 Firebase Functions 上。我想将一堆 JSON 存储到 Firebase 存储。当我在 localhost 上运行时,下面的代码片段工作得很好,但是当我将它上传到 Firebase 函数时,它会显示Error: EROFS: read-only file system, open 'export-stock-trades.json
. 有谁知道如何解决这个问题?
fs.writeFile(fileNameToReadWrite, JSON.stringify(jsonObjToUploadAsFile), function(err){
bucket.upload(fileNameToReadWrite, {
destination: destinationPath,
});
res.send({success: true});
});
解决方案
我无法确定,因为您的函数的大部分上下文都丢失了,但看起来您的函数正在尝试先将文件写入本地磁盘(fs.writeFile
),然后上传(bucket.upload
)。
os.tmpdir()
在 Cloud Functions 上,您编写的代码仅对节点中的 /tmp 具有写入权限。在文档中阅读更多相关信息 :文件系统中唯一可写的部分是 /tmp 目录,您可以使用它在函数实例中存储临时文件。这是一个本地磁盘挂载点,称为“tmpfs”卷,其中写入该卷的数据存储在内存中。请注意,它将消耗为该功能提供的内存资源。
这可能是导致您的代码失败的原因。
顺便说一句,如果您要上传的数据在内存中,您不必像现在这样先将其写入文件。您可以改为使用file.save()。
推荐阅读
- javascript - 蹦床功能操作原理
- ios - 如何使用 swift 4.2 在泛型类中创建单例?
- c++ - 一个使用 QtUdpSocket 的简单通信 c/s 应用程序
- android - 反应原生滚动视图不在android上滚动
- laravel - 如何在 laravel 5.7 中从 mandrill 获得邮件回复?
- android - 我无法使用 setDataSource 播放媒体文件
- c# - 如何在每一页上为表格的第一行应用相同的格式?
- python - 在 Python 中加载两个动态库实例
- javascript - 如何使用来自rest api json的jQuery Datatable插件?
- python - 尝试使用 VGG16 模型进行训练时出现“检查目标时出错”消息