Flowise

Форк
0
33 строки · 1.2 Кб
1
import { Request, Response, NextFunction } from 'express'
2
import fs from 'fs'
3
import contentDisposition from 'content-disposition'
4
import { streamStorageFile } from 'flowise-components'
5
import { StatusCodes } from 'http-status-codes'
6
import { InternalFlowiseError } from '../../errors/internalFlowiseError'
7

8
const streamUploadedFile = async (req: Request, res: Response, next: NextFunction) => {
9
    try {
10
        if (!req.query.chatflowId || !req.query.chatId || !req.query.fileName) {
11
            return res.status(500).send(`Invalid file path`)
12
        }
13
        const chatflowId = req.query.chatflowId as string
14
        const chatId = req.query.chatId as string
15
        const fileName = req.query.fileName as string
16
        res.setHeader('Content-Disposition', contentDisposition(fileName))
17
        const fileStream = await streamStorageFile(chatflowId, chatId, fileName)
18

19
        if (!fileStream) throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, `Error: streamStorageFile`)
20

21
        if (fileStream instanceof fs.ReadStream && fileStream?.pipe) {
22
            fileStream.pipe(res)
23
        } else {
24
            res.send(fileStream)
25
        }
26
    } catch (error) {
27
        next(error)
28
    }
29
}
30

31
export default {
32
    streamUploadedFile
33
}
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.