Как бы я справился с необработанным исключением, которое возникает из s3.getObject () - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь получить изображение от 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...