Chrome扩展程序上传流到S3

问题描述

我正在尝试使用S3分段上传通过客户端的流将数据上传到S3。

我正在使用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开发工具包中的流。