从 Firebase/Google Cloud Storage 读取作为 Node.js 函数中的缓冲区

Bri*_*unt 8 node.js google-cloud-storage firebase firebase-storage

我正在使用 Node.js 8 版本的 Firebase 函数,并希望将文件从 Google Cloud Storage 检索到该函数作为Buffer.

这看起来很简单:

const admin = require('firebase-admin')
const getRawBody = require('raw-body')

async function myFunction (path) {
  const bucket = admin.storage().bucket()
  const file = await bucket.file(path).get()
  console.log("All good so far.")
  const buffer = await getRawBody(file.createReadStream()) // often fails.
}
Run Code Online (Sandbox Code Playgroud)

我正在阅读的文件很小(130kb)。

确实工作了一段时间,但现在始终因内存限制错误或超时错误而失败,这表明存在 Firebase/GCS 问题。

我知道我可以增加函数的内存限制,但是如果它在一个很小的文件上失败表明工作中存在更大的问题,并且它总是会在更大的文件上失败。

有没有更好的方法将 GCS 文件转换为Buffer.

如果不是,这个问题是可以解决的吗?

Bri*_*unt 0

问题显然不是 Google Storage 的问题,而是在其他地方使用数据导致了内存溢出。

结果,这些console.log语句没有被记录到函数日志中,从而混淆了原因。