我正在尝试使用以下后端功能从S3获取图像:
exports.getImage = function (req, res) {
let request = req.query;
let key = request.key;
let bucket = request.bucket;
if (!key) {
return res.status(400).end("missing key");
}
if (!bucket) {
return res.status(400).end("missing bucket name");
}
let options = {
Bucket: bucket,
Key: key
};
res.setHeader('Content-Type', content_map['jpg']);
let nimage = null;
try {
nimage = await s3.getObject(options).createReadStream().pipe(res);
}
catch (err) {
console.log(err);
}
};
可以看到,有一些措施可以防止请求中缺少key
或bucket
,将status 400
发送回去。但是,我要处理指定了错误的key
或错误的bucket
的情况。上面的代码中错误地处理了将错误的密钥添加到请求的情况。
我也使用下面的代码来处理它,但最终没有得到任何结果:
s3.getObject(options, function(err, data) {
if (err) {
return res.status(400).end(err);
}
}).createReadStream().pipe(res);
弹出的错误是:
4:15:32 PM - error: caught an unhandled exception! NoSuchKey: The specified key does not exist.
NoSuchKey: The specified key does not exist.