gulp-awspublish
![Dependency Status](https://david-dm.org/pgherveou/gulp-awspublish.png)
awspublish plugin for gulp
Usage
First, install gulp-awspublish
as a development dependency:
npm install --save-dev gulp-awspublish
Then, add it to your gulpfile.js
:
var es = require('event-stream'),
awspublish = require('gulp-awspublish'),
publisher = awspublish({ key: '...', secret: '...', bucket: '...'}),
headers = { 'Cache-Control': 'max-age=315360000, no-transform, public' };
var js = gulp.src('./public/*.js')
.pipe(publisher.publish(headers));
var jsgz = gulp.src('./public/*.js')
.pipe(awspublish.gzip())
.pipe(publisher.publish(headers));
publisher
.sync(es.merge(js, jsgz))
.pipe(publisher.reporter());
API
awspublish.gzip()
create a gzip through stream, that gzip files and add Content-Encoding headers
awspublish.create(options)
Create a Publisher
Options are passed to knox to create a s3 client
create a through stream, that push files to s3.
Publish take a header hash as argument to override or add other s3 headers.
Files that get out of the stream get extra properties
s3.path: s3 path of this file
s3.state: publish state (add, update or skip)
s3.headers: s3 headers for this file
Defaults headers are
- x-amz-acl (default to public-read)
- Content-Type
- Content-Length
Publisher.sync(stream)
Take a stream of files and sync the content of the s3 bucket with these files.
It return a readable stream with both input files and deleted files
deleted file will have s3.state set to delete
awspublish.reporter()
create a reporter that logs to console each file state (delete, add, update, skip) and s3 path
License
MIT License