问题描述
我正在使用 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 (将#修改为@)