我正在尝试创建一个函数,该函数返回来自 AWS 的错误数据或来自回调的 { ETag: '"74..."' } 数据响应。此代码当前会将我的缓冲区文件写入 s3 存储桶。但是我想从函数返回我的 etag 号或错误数据,但我一直未定义。任何帮助,将不胜感激。
function aws(file, name) {
var s3 = new AWS.S3();
s3.putObject({
Bucket: 'Bucket-Name',
ACL: 'public-read',
Key: name,
Body: file
}, function(err, data) {
if (err) {
console.log('Something went wrong')
return err;
} else {
console.log('Successfully uploaded image');
console.log(data);
return data;
}
});
}
var response = aws(buffer, 'file.png');
用 Promise 解决了我的问题。希望有一天这对其他人有帮助:)
const aws = function (file, name) {
return new Promise((resolve, reject) => {
let s3 = new AWS.S3();
s3.putObject({
Bucket: 'Bucket-Name',
ACL: 'public-read',
Key: name,
Body: file
}, function (err, data) {
if (err) {
console.log('Something went wrong')
reject(err);
} else {
console.log('Successfully uploaded image');
resolve(data);
}
});
});
}
aws(buffer, 'file.png')
.then(response => {
res.set({ 'Content-Type': 'application/json' });
res.status(200);
res.send(response);
})
.catch(console.error);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句