байтовые запросы в nestjs
Я часами искал в Интернете, надеясь найти какие-либо встроенные функции для поддержки запросов байтового диапазона (https://www.keycdn.com/support/byte-range-requests) в nestjs. Я пришел из мира.NET, где у нас есть что-то вроде этого:
[Route("/streams/{id}")]
public IActionResult Clip(string Id) {
... more code ...
return File(myDataStream, "video/mp4", enableRangeProcessing: true);
}
Есть ли какие-либо аналогичные, похожие или сопоставимые функции в nestjs, которые я тогда просто упустил из виду, или мне действительно нужно разработать этот довольно громоздкий, но довольно распространенный вариант использования самостоятельно?
С уважением, Самуэль
1 ответ
NestJS поддерживает стандартный запрос диапазона:
@Get()
@Header('Accept-Ranges', 'bytes')
async findOne(
@Query('key') filePath: string,
@Headers('Range') range: string,
@Res({ passthrough: true }) res: Response,
) {
console.log(range);
const fileName = this.s3FilesService.getFileNameFromPath(filePath);
const fileStream = await this.s3FilesService.findOne(filePath, range);
res.set({
'Content-Disposition': `attachment; filename="${fileName}"`,
});
return new StreamableFile(fileStream);
}
В этом случае мы передаем диапазон байтов (например, bytes=204993022- или аналогичный и т. д.) в запрос s3 getObject, который также поддерживает запросы диапазона. Но вы также можете вернуть диапазон байтов из запроса readStream узла:
/questions/60593205/kak-razbit-fajl-v-diapazone-bajtov-v-nodejs/61730868#61730868