Моя цель - извлечь файл из Google Storage, а затем отправить его обратно в ответ.Проблема в том, что, когда я запускаю эту функцию в первый раз, она падает с Error [ERR_STREAM_WRITE_AFTER_END]: write after end
.Следующие исполнения работают нормально.
exports = module.exports = region(defaultRegion).https.onRequest(async (req, res): Promise<void> => {
const [authError] = await to(handleAuth(req, res));
if (authError) {
res.status(500).send(authError.message);
return;
}
const { assetId, contentType, path } = req.query;
const file = bloqifyStorage.bucket().file(`assets/${assetId}/${path}`);
const fileExists = (await file.exists())[0];
if (!fileExists) {
res.status(404).send(`${path} was not found`);
return;
}
const fileStream = file.createReadStream();
fileStream.pipe(res).on('end', (): void => {
res.setHeader('content-type', contentType);
});
});
Что мне здесь не хватает?
Редактировать: удаление установленного заголовка не решает проблему.Пример:
const fileStream = file.createReadStream();
// res.setHeader('content-type', contentType);
fileStream.pipe(res).on('error', (e): void => {
console.log(e);
});
Будет напечатано то же сообщение об ошибке.