如何在节点js中加密和解密流,而不在本地保存文件或将其转换为缓冲区。 如果没有办法,那么请提供高效的内存和较少的存储消耗方式来加密和解密节点js中的流,以便我可以直接通过api将流上传到google驱动器。
答案 0 :(得分:0)
最后,我得到了这个问题的解决方案。我在这里为所有需要此答案的人发布答案
我正在使用一个名为aes-encrypt-stream的图书馆
或者您也可以使用crpto库或任何其他库。
在这里
使用stream.PassThrough
这里 file.stream 是我的输入流
流是我的输出流
通过此代码,我可以减少用于加密的服务器的内存消耗
const { createEncryptStream, createDecryptStream, setPassword } = require('aes-encrypt-stream');
setPassword(Buffer.from('your key here', 'hex'));
PassThroughStream = require('stream').PassThrough,
stream = new PassThroughStream();
await createEncryptStream(file.stream).pipe(stream);
现在流已加密