bragg middleware to process s3 triggers
$ npm install bragg-s3
The routing is decided based on the event type
| Event name | Method |
|---|---|
| ObjectCreated:* | post |
| ObjectCreated:Put | post |
| ObjectCreated:Post | post |
| ObjectCreated:Copy | post |
| ObjectCreated:CompleteMultipartUpload | post |
| ObjectRemoved:* | delete |
| ObjectRemoved:Delete | delete |
| ObjectRemoved:DeleteMarkerCreated | delete |
| ObjectRestore:Post | post |
| ObjectRestore:Completed | post |
| ReducedRedundancyLostObject | post |
const app = require('bragg')();
const router = require('bragg-router')();
const s3 = require('bragg-s3');
// Listen for events in the `TopicName` topic
router.post('s3:triggerName', ctx => {
ctx.body = ctx.request.body; // [{bucket: 'someBucket', key: 'foo.jpg', eventName: 'ObjectCreated:Put'}]
});
app.use(s3());
app.use(router.routes());
exports.handler = app.listen();The s3: prefix is added before the name of the S3 trigger. The bucket, key and eventName are provided in the body of the request object. Routing is decided by the configurationId provided in the request. This can be a UUID when the trigger is created using AWS CloudFormation.
Add the bragg S3 middleware to the middleware pipeline.
MIT © Simon