Upload files to Google Cloud Storage with Gulp
npm install --save-dev gulp-gcloud-publish
First, you need to create your Google Cloud API credentials. Official Docs.
The plugin takes a configuration object with the following keys:
- bucket
String
: Name of the bucket where we want to upload the file - gzip
Boolean
(optional): Let Google automatically gzip and mark metadata of your file. Regardless of this setting, already-gzipped files will have metadata properly set. - keyFilename
String
: Full path to the Google Cloud API keyfile (docs) - projectId
String
: Google Cloud Project ID (docs) - base
String
: base path to use in the bucket, default to/
- public
Boolean
(optional): If set to true, marks the uploaded file as public - resumable
Boolean
(optional): Should be set to true for large files (>10Mb). Default isfalse
. - transformDestination
Function
(optional): Manipulates the final destination of the file in the bucket.
If you would like to gzip
the files, the plugin works best with gulp-gzip.
var gulp = require('gulp');
var gcPub = require('gulp-gcloud-publish');
var gzip = require('gulp-gzip'); // optional
gulp.task('publish', function() {
return gulp.src('public/css/example.css')
.pipe(gzip()) // optional
.pipe(gcPub({
bucket: 'bucket-name',
keyFilename: 'path/to/keyFile.json',
projectId: 'my-project-id',
base: '/css',
public: true,
transformDestination: function(path) {
return path.toLowerCase();
},
metadata: {
cacheControl: 'max-age=315360000, no-transform, public',
}
})); // => File will be uploaded to /bucket-name/css/example.css
});