Состояние выполнения загрузки изображения с использованием узла и как передать статус события во Fronthend - PullRequest
0 голосов
/ 24 июня 2019

Хотите загрузить файл на S3, необходимо получить статус прогресса и отправить данные о прогрессе в пользовательский интерфейс.

Привет, Гики,

Я загружаю файл на S3, используя Node Js, и я также хочу получить статус прогресса, который необходимо отправить в пользовательский интерфейс для заполнения индикатора выполнения. Но я не могу получить правильный статус, вместо этого я получаю одни и те же данные о прогрессе каждый раз, и я не могу отправить данные в UI

function UploadMultiple(req, res, next) {
  const s3 = new AWS.S3({
    accessKeyId: 'AKIAIU7MBIZKRXF7ISMQ',
    secretAccessKey: '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'
  });
  const data = req.body;
  if (!data.imageUrl) {
    return next('wro');
  }
  // if (!(isBase64(data.imageUrl, { mime: true }))) {
  //   const error = getError(httpStatusCode.BAD_REQUEST, responseMessage.INVALID_IMAGE_FORMAT);
  //   deferred.reject(error);
  //   return deferred.promise;
  // }
  const buf = Buffer.from(data.imageUrl.replace(/^data:image\/\w+;base64,/, ''), 'base64');
  const type = data.imageUrl.split(';')[0].split('/')[1];
  const s3Data = {
    Bucket: `loyal-zoom-staging/${data.folder}`,
    Key: `${data.id}.${type}`,
    Body: buf,
    ContentEncoding: 'base64',
    ContentType: `image/${type}`
  };
  s3.putObject(s3Data).on('httpUploadProgress', function (progress) {
    console.log(progress.loaded + " of " + progress.total + " bytes");
    // res.send(progress.loaded + " of " + progress.total + " bytes");
  })
    .send((err, result) => {
      if (err) {
        // infoLog('Failed to save image in S3', null, null, null);
        return next(err);
      }
      data.imageUrl = `https://s3.ap-south-1.amazonaws.com/loyal-zoom-staging/${data.folder}/${data.id}.${type}`;
      // infoLog('Image Uploaded sucessfully on S3', null, null, null);
      console.log(result);
    });
}

28568 из 28568 байт master.js: 648 28568 из 28568 байт

Не могли бы вы помочь получить это работает ???

версия узла Js: 8.10.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...