байтовые запросы в 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

Другие вопросы по тегам