const download_file_s3 = function(bucket,key) {
  var params = {
    'Key' : key,
    'Bucket' : bucket
  };
  return s3.getObject(params).promise();
};
 return s3.listObjects(params).promise().then(function(result) {
   var params = {Bucket: bucket_name, Delete: { Objects: [] }};
   params.Delete.Objects = result.Contents.map(function(content) { return { Key: content.Key }; });
   if (params.Delete.Objects.length < 1) {
     return Promise.resolve({"data" : { "Deleted" : [] }});
   }
   return s3.deleteObjects(params).promise();
 }).then(function(result) {
var refreshMetadata = function() {
  var s3 = new AWS.S3();
  var params = {
    Bucket: bucket_name,
    Prefix: "uploads/"
  };
  return s3.listObjectsV2(params).promise().then(function(result) {
    let messages = result.Contents.map( (dataset) => { return { "path" : dataset.Key, "offset" : "dummy", "byte_offset" : dataset.Size > (1024*50) ? dataset.Size - (1024*50) : 0 }; } );
    messages = messages.filter( (message) => message.path.indexOf('o_man') >= 0 );
    console.log(messages);
    return messages;
  }).then((messages) => {
    let queue = new Queue(split_queue);
    Promise.all(messages.map( message => queue.sendMessage(message) ))
  }).then( () => {
    return require('lambda-helpers').lambda_promise(runSplitQueue)({'time' : 'triggered'});
  });
};
const retrieve_file_s3 = function retrieve_file_s3(bucket,filekey) {
  var params = {
    'Key' : filekey,
    'Bucket' : bucket
  };
  let stream = s3.getObject(params).createReadStream();
  stream.source = params.Key;
  return stream;
};
 let written_promise = new Promise(function(resolve,reject) {
   s3.upload(params, options,function(err,data) {
     if (err) {
       console.log("Writing error for ",taxid,params.Bucket,params.Key);
       reject(err);
       return;
     }
     resolve(data);
   });
 });
const get_interpro_set_keys = function(bucket,release) {
  var params = {
    Bucket: bucket,
    Prefix: interpro_bucket_prefix+"/InterPro"+(release ? ("-"+release) : "")
  };
  return s3.listObjects(params).promise().then(function(result) {
    let keys = result.Contents.map(function(content) { return content.Key; });
    return keys;
  });
};
var upload_data_record_s3 = function upload_data_record_s3(key,data) {
  if ( ! key ) {
    return Promise.resolve(true);
  }
  var params = {
    'Bucket': bucket_name,
    'Key': key,
    'ContentType': 'application/json'
  };
  var datablock = JSON.stringify(data);
  params.Body = datablock;
  params.ContentMD5 = new Buffer(crypto.createHash('md5').update(datablock).digest('hex'),'hex').toString('base64');
  var options = {partSize: 15 * 1024 * 1024, queueSize: 1};
  return s3.upload(params, options).promise();
};
var retrieve_file_s3 = function retrieve_file_s3(filekey,md5_result,byte_offset) {
  var params = {
    'Key' : filekey,
    'Bucket' : bucket_name,
    'IfNoneMatch' : md5_result.old+"",
  };
  if (byte_offset) {
    params.Range = 'bytes='+byte_offset+'-'
  }
  var request = s3.getObject(params);
  var stream = request.createReadStream();
  stream.on('finish',function() {
    md5_result.md5 = request.response.data.ETag;
  });
  return stream;
};
var remove_folder_s3 = function remove_folder_s3(setkey) {
  var params = {
    Bucket: bucket_name,
    Prefix: "data/latest/"+setkey+"/"
  };
  console.log(params);
  return s3.listObjects(params).promise().then(function(result) {
    var params = {Bucket: bucket_name, Delete: { Objects: [] }};
    params.Delete.Objects = result.Contents.map(function(content) { return { Key: content.Key }; });
    if (params.Delete.Objects.length < 1) {
      return Promise.resolve({"data" : { "Deleted" : [] }});
    }
    return s3.deleteObjects(params).promise();
  }).then(function(result) {
    if (result.Deleted.length === 1000) {
      return remove_folder(setkey);
    }
    return true;
  });
};
Exemple #10
0
const get_session = function(session_id) {
  return s3.getObject({Bucket: bucket, Key: 'sessions/'+session_id }).promise()
  .then( result => result.Body.toString() );
};
Exemple #11
0
const upload_session = function(session_id,final_token) {
  return s3.putObject({Bucket: bucket, Key: 'sessions/'+session_id, Body: final_token }).promise();
};