Я использую 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.
}
Файл, который я читаю, очень мал (130 КБ).
Это некоторое время работало , но теперь постоянно происходит сбой либо из-за ошибки ограничения памяти, либо из-за ошибки тайм-аута, что указывает на проблему Firebase / GCS.
Мне известно, что я мог бы увеличить ограничение памяти для функции, но если она не удалась из-за банально небольшого файла, это может привести к более серьезным проблемам на работе и что она неизменно завершится сбоем при работе с большими файлами.
Есть ли лучший способ преобразовать файл GCS в Buffer
?
Если нет, можно ли обойти эту проблему?