Я пытаюсь загрузить изображение base_64 в облачные функции Firebase, используя Sharp. У меня есть следующий код:
// Create image of question
export async function drawQuestionImage(question: any): Promise<any> {
const canvas = createCanvas(200, 200)
const ctx = canvas.getContext('2d')
// Write "Awesome!"
ctx.font = '30px Impact'
ctx.rotate(0.1)
ctx.fillText('Awesome!', 50, 100)
// Draw line under text
const text = ctx.measureText('Awesome!')
ctx.strokeStyle = 'rgba(0,0,0,0.5)'
ctx.beginPath()
ctx.lineTo(50, 102)
ctx.lineTo(50 + text.width, 102)
ctx.stroke()
// Draw cat with lime helmet
await loadImage(`${process.cwd()}/backgrounds/bg.jpg`).then(async (image) => {
ctx.drawImage(image, 50, 0, 70, 70)
//console.log('<img src="' + canvas.toDataURL() + '" />')
const base64 = canvas.toDataURL().replace(/^data:image\/\w+;base64,/, "");;
if (!base64 || !question) {
return null;
}
const filePath = `questions/${question.id}`;
const filename = `${question.id}.png`;
// Resize source image
await sharp(Buffer.from(base64.toString(), 'base64'))
//.resize(size, size)
.toFile(filePath);
// Upload to GCS
return bucket.upload(filePath, {
destination: join(dirname(filePath), filename)
});
});
}
После запуска функции я получаю сообщение об ошибке:
Ошибка: vips_realpath: невозможно сформировать имя файла Unix Ошибка: Нет такого файлаили каталог vips__file_open_write: невозможно открыть файл "questions / zv872JxW" для записи ошибки Unix: такого файла или каталога нет: 1007 *
Что я делаю не так?