node.js - 通过外部链接下载 Node.js 服务器文件
问题描述
我正在尝试 node.js 服务器(Express.js)通过外部链接下载文件。但是当文件没有完全下载时,连接会关闭。所以文件大小为0byte。
// Express.js route
axios({
method: 'GET',
url: `externalLink`,
responseType: 'stream',
headers: {
'Content-Type': 'application/octet-stream',
},
})
.then(function(response) {
res.writeHead(200, {
'Content-Type': EXCEL_MIME_TYPE,
'Content-disposition': 'attachment;filename=' + response.headers['content-disposition'],
'Content-Length': response.data.length,
})
res.end(Buffer.from(response.data, 'binary'))
})
结果是 0kb 的 excel 文件。当 console.log on then 阻塞时,内容长度为 0。
但是如果我通过浏览器下载文件,则文件下载成功。在 Chrome 检查中,文件的 Transfer-Encoding: 分块。
我认为在将完整字节传输到 node.js 服务器之前连接已关闭。如何通过 node.js 服务器传输外部链接文件?
谢谢你。
解决方案
推荐阅读
- logging - 设置日志级别对scrapy没有任何影响
- android - 如何在 Android 中将文件写入我的 SD 卡?
- html - 使用谷歌外卖导出被阻止的博主,有什么方法可以将 ATOM 文件转换为可读格式或在浏览器中使用它?
- python - 是否有 python 函数来计算 procrustes 以对齐两个 3D 矩阵
- java - FireBase onDataChange 未启动
- c# - 球在 Unity 中增加速度时抖动
- reactjs - 我可以使用 redux 工具包访问带有 axios 的 createAsyncThunk 中的状态吗?
- gtsummary - 如何删除 gtsummary 回归表的参考组行中的问号符号?
- html - 如果包含在 html 角度中,则将值传递给模板
- python - 在 python 中测试两个条件。一个条件总是为真,即使它不应该是