Javascript 未触发AWS S3上载进度回调
我正在尝试从react本机应用程序获取文件上载到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,
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是最新的吗?