npm i -s flamingo
npm i -s flamingo-s3
Booting a server with s3 route
- uses regular flamingo start sequence with the route provided by flamingo-s3
// my-flamingo.js
const Server = require('flamingo/src/model/server');
const Config = require('flamingo/config');
const AddonLoader = require('flamingo/src/addon/loader');
const profiles = require('flamingo/src/profiles/examples');
const S3Route = require('flamingo-s3/src/route');
Config.fromEnv().then(config => {
return new Server(config, new AddonLoader(__dirname, {}).load())
.withProfiles([profiles])
.withRoutes([new S3Route(config)])
.start()
.then(server => console.log(`server running at ${server.hapi.info.uri}`));
});
Bucket configuration
AWS.SECRET
= AWS secretAWS.REGION
= AWS regionAWS.S3.VERSION
= AWS S3 client versionAWS.S3.BUCKETS
= mapping for url params to s3 bucket path:- key delimiter:
-
- using the following configuration,
s3/cats/avatar-image/fixtures-fixture.jpg
maps to s3 pathcats/fixtures/fixture.jpg
- key delimiter:
AWS: {
REGION: 'eu-west-1',
ACCESS_KEY: '0!]FHTu)sSO&ph8jNJWT',
SECRET: 'XEIHegQ@XbfWAlHI6MOVWKK7S[V#ajqZdx6N!Us%',
S3: {
VERSION: '2006-03-01',
BUCKETS: {
cats: {
name: bucketName,
path: 'cats/'
}
}
}
}
Configuring via environment variables
See ENV for all existing environment mappings.
To start with custom environment variables, run i.e.
AWS_REGION="eu-central-1" AWS_SECRET="XEIHegQ@XbfWAlHI6MOVWKK7S[V#ajqZdx6N!Us%" AWS_ACCESS_KEY="0!]FHTu)sSO&ph8jNJWT" AWS_S3_BUCKETS={"pets":{"name":"my-pets","path":"my_pets/"}} node my-flamingo.js