Как иметь низкий TTFB в запросе к nodejs и s3? - PullRequest
2 голосов
/ 05 июля 2019

У меня есть приложение nodejs.Я использую для обслуживания изображений из aws-s3, используя aws-sdk.

Проблема в том, что запрос изображения занимает слишком много времени (время ожидания на картинке - зеленая полоса)

enter image description here Вот моя функция обработчика для доступа S3 и отправки ответа:

router.get('/image/:fileKey', (req, res) => {
  const Key = req.params.fileKey;

  const options = {
    Bucket: config.bucket,
    Key,
  };

  s3.getObject(options)
    .on('httpHeaders', function(code, headers) {
      if (code < 300) {
        res.set(
          _.pick(headers, 'content-type', 'content-length', 'last-modified')
        );
      }
    })
    .createReadStream()
    .on('error', (err) => {
      console.log({ err });
      res.status(404).end();
    })
    .pipe(res);
});

Есть ли способ оптимизировать запрос, чтобы иметь меньшее время ожидания ?

...