【发布时间】:2019-12-29 20:10:51
【问题描述】:
我正在使用 aws-sdk 中的 upload 方法将文件从浏览器中的 React 应用程序上传到 S3 存储桶。
original callback based upload method 如下:
var params = {Bucket: 'bucket', Key: 'key', Body: stream};
s3.upload(params, function(err, data) {
console.log(err, data);
});
我用promisify 将它包裹起来,就像下面的 Async-await 一样工作:
const AWS = require('aws-sdk');
const { promisify } = require('es6-promisify');
... <in my React component> ...
async uploadFile() {
try {
var params = {
Bucket: <BucketName>,
Key: <KeyName>,
Body: <File Stream>
};
const res = await uploadToS3Async(params);
console.log(res);
} catch (error) {
console.log(error);
}
}
现在,当我在某个触发的事件上调用 uploadFile 函数时,它会产生以下错误:
TypeError: service.getSignatureVersion is not a function
at ManagedUpload.bindServiceObject
at ManagedUpload.configure
at new ManagedUpload
at upload
at new Promise (<anonymous>)
【问题讨论】:
-
您提供的代码中没有
getSignatureVersion。 -
甚至没有
service
标签: javascript amazon-web-services amazon-s3 promise aws-sdk