Javascript 未触发AWS S3上载进度回调

Javascript 未触发AWS S3上载进度回调,javascript,amazon-web-services,react-native,amazon-s3,aws-sdk,Javascript,Amazon Web Services,React Native,Amazon S3,Aws Sdk,我正在尝试从react本机应用程序获取文件上载到AWS S3的进度报告。如您所见,我正在侦听httpUploadProgress事件并试图打印进度。但是这个回调函数没有被调用。我错过了什么 AWS.config.update({ region: AWS_REGION, accessKeyId: user.credentials.AccessKeyId, secretAccessKey: user.credentials.SecretKey,

我正在尝试从react本机应用程序获取文件上载到AWS S3的进度报告。如您所见,我正在侦听
httpUploadProgress
事件并试图打印进度。但是这个回调函数没有被调用。我错过了什么

    AWS.config.update({
       region: AWS_REGION,
       accessKeyId: user.credentials.AccessKeyId,
       secretAccessKey: user.credentials.SecretKey,
       sessionToken: user.credentials.SessionToken
    });
    const imageArrayBuffer = decode(image.data);
    const s3 = new AWS.S3();
    const params = {
        Bucket: BUCKET_NAME,
        Key: photoKey,
        Body: imageArrayBuffer,
        ContentType: image.type
    };

    s3
        .upload(params)
        .on('httpUploadProgress', function(evt) {
            console.log(
                'Uploaded :: ' + parseInt(evt.loaded * 100 / evt.total) + '%'
            );
        })
        .send(function(err, data) {
            console.log(data);
        });

你有错误吗?如果evt.total为0,则有一个被零除的错误。根据流类型,evt.total可以是未定义的。另外,upload()将函数(err,data)作为第二个参数。它确实上载了文件吗?它很小吗?@JohnHanley该函数甚至没有被调用,因此显示时没有错误。@jarmod是的,文件已上载。我用3mb文件试过了。当通过缓冲区或ReadableStream选项上传不同大小的文件时,我确实看到了进度回调。我尝试了从10KB到30MB的文件,所有这些文件都导致了至少一次回调(100%)。您的AWS SDK是最新的吗?