s3 plugin for gulp
First, install gulp-s3
as a development dependency:
npm install --save-dev gulp-s3
Setup your aws.json file
{
"key": "AKIAI3Z7CUAFHG53DMJA",
"secret": "acYxWRu5RRa6CwzQuhdXEfTpbQA+1XQJ7Z1bGTCx",
"bucket": "dev.example.com",
"region": "eu-west-1"
}
Then, use it in your gulpfile.js
:
var s3 = require("gulp-s3");
aws = JSON.parse(fs.readFileSync('./aws.json'));
gulp.src('./dist/**')
.pipe(s3(aws));
Type: Array
Default: []
Headers to set to each file uploaded to S3
var options = { headers: {'Cache-Control': 'max-age=315360000, no-transform, public'} }
gulp.src('./dist/**', {read: false})
.pipe(s3(aws, options));
Type: Boolean
Default: false
Only upload files with .gz extension, additionally it will remove the .gz suffix on destination filename and set appropriate Content-Type and Content-Encoding headers.
var gulp = require("gulp");
var s3 = require("gulp-s3");
var gzip = require("gulp-gzip");
var options = { gzippedOnly: true };
gulp.src('./dist/**')
.pipe(gzip())
.pipe(s3(aws, options));
});
## Why is this forked?
There are some problems with this implementation, for example, the forceful remove of .gz, we would like to gz everything but allow the browsers to specify if they wish to retrieve a gz version, this doesnt quite allow this.