问题描述
我正在使用节点/表达式查询静态端点,这些端点返回二进制数据,例如图像文件或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 (将#修改为@)