如何使用流从Node / Express中的URL重定向二进制数据

问题描述

我正在使用节点/表达式查询静态端点,这些端点返回二进制数据,例如图像文件或PDF(不是下载)。

我想将这些文件提供给客户端,有时以下载的形式,有时以在浏览器中显示文件的形式提供给客户端,但是我不想向它们公开静态终结点。与服务器的连接受速率限制,而与静态端点的连接则不受限制。

我要完成的工作是使用管道和/或缓冲区,在从外部端点到客户端的拉取方案下创建可读流。我对在节点中处理文件或流不是很熟悉,但是我对服务器上或服务器上的流文件的工作方式有基本的了解。

我将如何直接流式传输?什么是最佳做法,我需要注意哪些安全风险?我将从哪里开始?

我试图在网上或这里四处看看,但是没有找到我可以使用的东西。部分原因是,我不知道要搜索什么。

例如,我研究了this个问题。

到目前为止,我已经使用核心https模块将其用于我的代码

res.on("error",() =>
            {
                return res.end(UNKNowN_ERROR);
            });

const fileRequest = https.get(CLOUDFRONT_ROOT + CLOUDFRONT_DOWNLOADS_STATIC + identifier,response =>
                {
                    response.pipe(res);

                    response.on("error",() =>
                    {
                        return res.end(UNKNowN_ERROR);
                    });
                });

fileRequest.on("error",error =>
            {
                logger.error("UnkNown error in obtaining file for identifier " + identifier,error);
                return res.status(500).json({ message: "UNKNowN_ERROR" });
            });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)