Nodejs S3 上传列表[0]" 参数必须是 Buffer 或 Uint8Array 的实例

问题描述

我正在使用 openpgp.js 来加密 s3 getobject 流。加密后,我尝试使用 s3.upload() 上传加密流,这导致错误

S3 上传列表[0]" 参数必须是 Buffer 或 Uint8Array 的实例

仅当我在加密流中使用选项 armor: true(我想要的)时才会出现错误。 以下是代码的相关摘录:

let encryptionStream = await openpgp.encrypt({        
        message: pgpMessage,publicKeys: publicKey,privateKeys: privateKey,streaming: 'node',armor: true  
});

var uploadobjectAsync = async (s3Params) => new Promise((resolve,reject) => {
        s3.upload(s3Params,(err,data) => {
            if(err) reject(err);
            resolve(data);
        });
});

await uploadobjectAsync({'Bucket': 'test-upload','Key': 'encrypted_file','Body': encryptionStream,});

我也查看了这个 github 问题,但使用 encryptionStream.setEncoding(null) 仍然会导致相同的错误 https://github.com/aws/aws-sdk-js/issues/2081

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...