gpt4 book ai didi

node.js - crypto.decipher 导致流在 Node js 中无法关闭

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:04 30 4
gpt4 key购买 nike

我正在尝试解密文件并将其作为对客户端的响应发送。它只适用于下载文件,如下所示:

input.pipe(res);

但是当我将解密添加到管道中时,如下所示:

input.pipe(decipher).pipe(res);

它会导致文件下载在浏览器中保持打开状态。我需要关闭解密流什么的吗?完整的方法如下:

router.get('/', function(req, res, next) {
var filePath = 'C:\\Users\\Anthony\\test';
var stat = fs.statSync(filePath);

var key = '1234asdf';
var decipher = crypto.createDecipher('aes-256-cbc', key)

res.setHeader('Content-Length', stat.size);
res.setHeader('Content-disposition', 'attachment; filename=test.mp4');
var input = fs.createReadStream(filePath);

input.pipe(decipher).pipe(res);
});

最佳答案

最有可能发生的情况是您向浏览器提供了编码文件长度而不是解密文件长度,这可能会有所不同。您可以尝试完全省略 Content-Length header ,看看是否有效(这将导致使用分块编码)。

关于node.js - crypto.decipher 导致流在 Node js 中无法关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34734004/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com