Я пытаюсь загрузить двоичные данные, полученные из кеша Redis, в настоящее время это zip-файл. Я хотел использовать res.download () из expressjs, но мне нужен путь к файлу, которого у меня нет.
Кроме того, мне нужно знать, файл правильно загружен, чтобы недействительный кеш.
У кого-нибудь есть хорошее решение? Заранее спасибо
Лучшее решение для меня будет примерно таким: (Но у меня нет пути !!)
router.get("/:id", async (req, res) => {
const file = await getFileFromRedis(req.params.id); //file is a binary here
const filename = `${req.params.id}.zip`;
res.download(file, filename, function(err) {
if (err) {
res.status(400).send();
} else {
deleteFileFromRedis(req.params.id);
res.status(200).send();
}
});
});
Также я уже пробовал что-то вроде следующего, но похоже, мой файл поврежден после загрузки:
router.get("/:id", async (req, res) => {
const file = await getFileFromRedis(req.params.id); //file is a binary here
const filename = `${req.params.id}.zip`;
res.setHeader('Content-Length', file.length);
res.setHeader('Content-Type', 'application/zip');
res.setHeader('Content-Disposition', `attachment; filename=${filename}`);
res.write(file, 'binary');
res.end();
});