Socket
Socket
Sign inDemoInstall

@digitregroup/s3-event-parser

Package Overview
Dependencies
5
Maintainers
2
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @digitregroup/s3-event-parser

Parse AWS S3/SNS events


Version published
Weekly downloads
3
increased by50%
Maintainers
2
Created
Weekly downloads
 

Changelog

Source

1.0.0

24 April 2018

Readme

Source

S3 Event Parser

npm version CircleCI Coverage Status

Parse AWS S3/SNS events from your Lambda function.

Notes:

  • This only work for single file S3 events. (One event per file).
  • Work only in nodeJS v8.10 (because of JOI requirement)

Install

npm i @digitregroup/s3-event-parser
# Or
yarn add @digitregroup/s3-event-parser

Usage

In your handler:

const S3EventParser = require('@digitregroup/s3-event-parser')

module.exports.run = (event, context, callback) => {

  const parsedS3Event = new S3EventParser(event).parse();
  
  console.log(
    parsedS3Event.filePath,   // Cleaned full file path
    parsedS3Event.key,        // Raw file path
    parsedS3Event.filePrefix, // Key prefix (file path dirname)
    parsedS3Event.bucketName, // Bucket name
    parsedS3Event.fileSize    // File size in kb
    
    // Raw S3 event with all parsed and unparsed data
    parsedS3Event.rawS3Notification
  );
};

In you serverless.yml:

functions:
  myFunction:
    handler: src/handlers/index.run
    events:
    
      # 1/ If you already have a S3 event subscriber in a SNS topic
      - sns:
          arn: arn:aws:sns:eu-west-1:0000000000:my-topic
          
      # 2/ If you want to create a S3 bucket and attach an event to this function
      - s3:
          bucket: photos
          event: s3:ObjectCreated:*
          
      # 3/ If already have a S3 bucket and just want to attach an event to this function
      - existingS3:
          bucket: photos
          event: s3:ObjectCreated:*

# Case 3/ requirement       
plugins:
 - serverless-external-s3-event
 

Unit tests

This project aim to keep 100% code coverage. Tests are performed via Mocha/ChaiJS (Expect version).

  yarn lint

Code style

This project should respect the linting configured in @digitregroup/eslint-config.

  yarn lint

DevOps

CI pipelines are performed in CircleCI for every single push in any branch. CI is composed of Linting and Unit Testing with coverage requirement (specified in package.json)

CD pipeline is perfomed on git tag creation and release in NPM registry if the CI passed.

Note pipelines automaticaly check the package.json's version to match with the git tag (or release/hotfix branch).

Contributing

PR are welcome! We use gitflow :)

Keywords

FAQs

Last updated on 24 Apr 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc