Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

AWS wrapping module

This module is a wrapper for the official aws-sdk module. It incapsulates all routines, and exposes some simple straight-forward methods. Currently it wraps some methods only for S3 and SQS services. More methods and services will be added in the future.

Note: The module has been developed while working for Trendalytics.

API

After instantiating aws-wrapper, it will contain 2 objects - s3 and sqs. Below is the API for each of them.

S3

/** * Get S3 url based on S3 full path * * @param {String} s3Path - full S3 path, including bucket name and the path itself * * @return {String} s3Url */aws.s3.getUrl(s3Path);/** * Upload file to S3 * * @callback uploadCallback * @param {Object} error * @param {String} s3Url * @param {Object} extraInfo - contains extra info, such as bucket and key * * * @param {String} s3Path - S3 file path, including bucket name. E.g. myBucket/path/to/folder/file.txt * @param {String|Object} dataSource - local file path to be uploaded, or a ReadableStream object * @param {uploadCallback} callback */aws.s3.upload(s3Path,dataSource,callback);/** * Get S3 file contents * * @callback methodCallback * @param {Object} error * @param {String} fileContents * * @param {String} s3Path - S3 file path, including bucket name. E.g. myBucket/path/to/folder/file.txt * @param {methodCallback} callback*/aws.s3.getFileContents(s3Path,callback);

SQS

/** * Push a message to SQS * * @callback pushCallback * @param {Object} error * @param {Object} result - contains result object: { ResponseMetadata: { <meta data> }, MD5OfMessageBody: '<hash>', MessageId: '<id> } * * * @param {String} queueName * @param {Object} msgObj * @param {pushCallback} callback */aws.sqs.pushMessage(queueName,msgObj,callback);/** * Get a message from SQS * * @callback getCallback * @param {Object} error * @param {Object} message - contains all data related to message. Most useful properties - message.Obj and message.MessageId * * * @param {String} queueName * @param {getCallback} callback */aws.sqs.getMessage(queueName,callback);/** * Delete a message from SQS by Receipt Handler * * @callback deleteCallback * @param {Object} error * @param {Object} result - contains metadata * * * @param {String} queueName * @param {String} receiptHandler * @param {deleteCallback} callback */aws.sqs.deleteMessage(queueName,receiptHandler,callback);/** * Purge a queue by name * * @callback methodCallback * @param {Object} error * @param {Object} result - metadata * * * @param {String} queueName * @oaram {methodCallback} callback */aws.sqs.purgeQueue(queueName,callback);

Usage

varawsConfig={"accessKeyId": "<access key id>","secretAccessKey": "<secret access key>","region": "<region>"};varaws=require('aws-wrapper')(awsConfig);// Upload an Image to S3aws.s3.upload('my-bucket','path/to/a/folder/filename.png','/tmp/some-file.png',function(err,s3Url){if(err){throwerr;}console.log('Image url is',s3Url);});/*** Manage SQS ***/// Message obj to push to queuevarmsgObj={action: 'do-some-action',params: {param1: 'value1',param2: 'value2'}};// Push to SQSaws.sqs.pushMessage('my-queue',msgObj,function(err,data){if(err){throwerr;}// Make use of `data` object// ...});// Get a message from SQSaws.sqs.getMessage('my-queue',function(err,data){if(err){throwerr;}if(data&&data.Obj){// Make use of `data.Obj`// ...}});// Purge a SQS queueaws.sqs.purgeQueue('my-queue',function(err,data){if(err){throwerr;}});

About

A wrapper for the official aws-sdk for Node.js

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages