问题描述
我正在使用Browserify将Node.js代码转换为可由Chrome扩展程序加载的单个文件。
这是我的代码:
const Stream = require('stream');
var inputBytesReadable = new Stream.Readable();
// add data to the Stream
var s3 = new AWS.S3({
params: {Bucket: bucketName}
});
var params = {
Bucket: bucketName,Key: fileName,PartNumber: partNumber,UploadId: uploadId,Body: inputBytesReadable
};
s3.uploadPart(params,function(err,data) {
if (err)
{
appendMessage("Error in uploading "+fileName+"part "+partNumber);
console.log(err,err.stack); // an error occurred
}
});
但是,这会导致错误: InvalidParameterType:预期的params.Body是字符串,Buffer,Stream,Blob或键入的数组对象
我做错了什么?有什么方法可以在客户端JavaScript中将Stream传递给S3?
解决方法
AWS JavaScript SDK似乎不支持流输入,除非在Node.js环境中使用它。需要进行特定的环境检查才能启用此验证。
因此,似乎无法在前端使用AWS开发工具包中的流。