Я пытаюсь получить изображение от 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.