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/**')
.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));
});
Type: String
Default: ''
S3 prefix to add to each uploaded file.
var options = { uploadPath: '/dev/assets/' }
gulp.src('./dist/**')
.pipe(s3(aws, options));
Type: Number
Default: 4
Limits the number of concurrent uploads to S3.
var options = { asyncLimit: 8 }
gulp.src('./dist/**')
.pipe(s3(aws, options));