Example #1
0
    }, function(err, data) {
        if (err) {
          util.logger.error(err, 'failed on S3.deleteObjects()');
          next.ifError(new restify.InternalServerError('failed while deleting S3 objects'));
        }

        return next(res.send({ success: true }));
    });
Example #2
0
  File.count({ randomness: random, name: name, ext: ext }, function(err, count) {
    if (err) {
      util.logger.error(err, 'failed on File.count()');
      next.ifError(new restify.InternalServerError('failed while reading from database'));
    }

    callback(count !== 0);
  });
Example #3
0
    file.save(function(err) {
      if (err) {
        util.logger.error(err, 'failed on File.save()');
        next.ifError(new restify.InternalServerError('failed while saving to database'));
      }

      callback();
    });
Example #4
0
  util.s3.getSignedUrl(operation, options, function(err, data) {
    if (err) {
      util.logger.error(err, 'failed on S3.getSignedUrl()');
      next.ifError(new restify.InternalServerError('failed while signing S3 operation'));
    }

    return next(res.send({ signedUrl: data }));
  });
Example #5
0
  User.count({ name: name }, function(err, count) {
    if (err) {
      util.logger.error(err, 'failed on User.count()');
      next.ifError(new restify.InternalServerError('failed while reading from database'));
    }

    callback(count !== 0);
  });
Example #6
0
  User.findOne({ name: name }, function(err, user) {
    if (err) {
      util.logger.error(err, 'failed on User.findOne()');
      next.ifError(new restify.InternalServerError('failed while reading from database'));
    }

    callback(user);
  });
Example #7
0
    util.s3.createBucket({Bucket: util.getBucket(one.name)}, function(err) {
      if (err) {
        util.logger.error(err, 'failed on S3.createBucket()');
        next.ifError(new restify.InternalServerError('failed while creating S3 object'));
      }

      return next(res.send({ success: true }));
    });
Example #8
0
module.exports.read = function(bucket, random, key, next, res) {
  util.logger.info('reading [%s]/%s', random, key);

  util.s3.headObject({ Bucket: bucket, Key: random + '/' + key }, function(err, data) {
    if (err) {
      util.logger.error(err, 'failed on S3.headObject()');
      next.ifError(new restify.NotFoundError('file not found inside S3'));
    }
  });

  util.s3.getObject({ Bucket: bucket, Key: random + '/' + key }).createReadStream().pipe(res);
};
Example #9
0
  File.findOne({ randomness: random, name: name, ext: ext }, function(err, file) {
    if (err) {
      util.logger.error(err, 'failed on File.findOne()');
      next.ifError(new restify.InternalServerError('failed while reading from database'));
    }

    file.lastUpdate = new Date;
    file.save(function(err) {
      if (err) {
        util.logger.error(err, 'failed on File.save()');
        next.ifError(new restify.InternalServerError('failed while saving to database'));
      }

      callback();
    });
  });
Example #10
0
module.exports.transform = function(bucket, random, key, extra, next, res) {
  var functions;
  try {
    var decoded = decodeURIComponent(extra);
    if (decoded.indexOf('"image_identifier"') === -1) throw new Error('image_identifier missing');

    functions = JSON.parse(decoded);

    util.logger.info('reading [%s]/%s with extrargs %s', random, key, decoded);
  } catch (err) {
    next.ifError(new restify.BadRequestError('x=BLITLINE_FUNCTIONS_BAD'));
  }

  util.blitline.addJob({
    application_id: process.env.BLITLINE || config.blitline,
    src: 'http://s3-' + config.awsRegion + '.amazonaws.com/' + bucket + '/' + random + '/' + key,
    postback_url: config.host + '/blitline',
    functions: [functions]
  });

  util.blitline.postJobs(function(blitline) {
    if (Boolean(blitline.results[0].error)) {
      next.ifError(new restify.BadRequestError(blitline.results[0].error));
    }

    var pending = blitline.results[0].job_id;
    var ws = wsClient(process.env.BACK_WSS || config.backwss);

    ws.on('success', function(job) {
      if (pending === job) {
        http.get(blitline.results[0].images[0].s3_url, function(response) {
          response.on('error', function(err) {
            util.logger.error(err, 'failed on retrieving the transformed result');
            next.ifError(new restify.InternalServerError('failure during file\'s transformation'));
          });

          response.pipe(res);
        });
      }
    });

    ws.on('failure', function(error) {
      if (pending === error.job) next.ifError(new restify.BadRequestError(error.reason));
    });
  });
};
Example #11
0
  File.remove({ randomness: random, name: name, ext: ext }, function(err, file) {
    if (err) {
      util.logger.error(err, 'failed on File.remove()');
      next.ifError(new restify.InternalServerError('failed while saving to database'));
    }

    util.s3.deleteObjects({
      Bucket: bucket,
      Delete: { Objects: [{ Key: random + '/' + key }] }
    }, function(err, data) {
        if (err) {
          util.logger.error(err, 'failed on S3.deleteObjects()');
          next.ifError(new restify.InternalServerError('failed while deleting S3 objects'));
        }

        return next(res.send({ success: true }));
    });
  });
Example #12
0
 util.s3.headObject({ Bucket: bucket, Key: random + '/' + key }, function(err, data) {
   if (err) {
     util.logger.error(err, 'failed on S3.headObject()');
     next.ifError(new restify.NotFoundError('file not found inside S3'));
   }
 });
Example #13
0
 response.on('error', function(err) {
   util.logger.error(err, 'failed on retrieving the transformed result');
   next.ifError(new restify.InternalServerError('failure during file\'s transformation'));
 });