_downloadManifest()

in source/resources/helper/lib/s3-helper.js [249:307]


  _downloadManifest(s3Bucket, s3Key) {
    let _self = this;
    return new Promise((resolve, reject) => {
      let params = {
        Bucket: s3Bucket,
        Key: s3Key,
      };

      Logger.log(
        Logger.levels.ROBUST,
        `Attempting to download manifest: ${JSON.stringify(params)}`
      );

      // check to see if the manifest file exists
      let s3 = new AWS.S3();
      s3.headObject(params, function (err, metadata) {
        if (err) {
          Logger.error(
            Logger.levels.INFO,
            `${err}`
          );
          // Handle no object on cloud here
          if (err.code === 'NotFound') {
            Logger.error(
              Logger.levels.INFO,
              `manifest file doesn't exist`
            );
            reject('Manifest file was not found.');
          } else {
            reject(err);
          }
        } else {
          Logger.log(
            Logger.levels.ROBUST,
            `manifest file doesn't exist`
          );
          Logger.log(
            Logger.levels.ROBUST,
            `${metadata}`
          );
          let file = require('fs').createWriteStream(_self.downloadLocation);

          s3.getObject(params)
            .on('httpData', function (chunk) {
              file.write(chunk);
            })
            .on('httpDone', function () {
              file.end();
              Logger.log(
                Logger.levels.ROBUST,
                `manifest downloaded for processing...`
              );
              resolve('success');
            })
            .send();
        }
      });
    });
  }