@searchkings/gulp-gcs-upload
v1.0.6
Published
Gulp plugin to upload to Google Cloud Storage
Downloads
39
Readme
Gulp Google Cloud Storage Upload
Upload files to Google Cloud Storage with Gulp
To generate GCS credentials:
$ gcloud auth application-default login --project <PROJECT_ID>
Install
npm install @searchkings/gulp-gcs-upload
Usage Example
import { Uploader } from '@searchkings/gulp-gcs-upload';
const bucketName: string = 'cdn-bucket';
const uploader = new Uploader({
bucketName,
cacheFilePath: path.resolve(homedir(), `.gcsupload-${bucketName}`),
createOnly: true,
uploadConcurrency: 20
});
return gulp
.src(`${GLOBALS.CDN_COMMON_PATH}/**`)
.pipe(uploader.upload())
.pipe(uploader.report());
API
Uploader
constructor(pluginOptions: PluginOptions, storageOptions?: StorageOptions)
Create a new uploader with a set of plugin options and storage options.
Note: If you are not using Application Default Credentials (ADC), you must specify your preferred authentication method inside of the storage options.
interface PluginOptions {
// Name of the bucket you wish to upload files to
bucketName: string;
// Local directory and file to store a cache of previously-uploaded files
cacheFilePath?: string;
// If true, files are considered immutable once uploaded, and will not be overwritten if a file with the same name exists. Default: false
createOnly?: boolean;
// Number of simultaneous file uploads. Default: 1
uploadConcurrency?: number;
}
.upload(uploadOptions?: UploadOptions)
Uploads your stream of files to the GCS bucket with optional upload options you define.
.report(reportOptions?: ReportOptions)
Outputs a report with the state of each file that passed through the .upload()
stream.
export type FileState = 'cache' | 'skip' | 'update' | 'create';
interface ReportOptions {
// List of states you wish to see included in the output
states?: FileState[];
}
Development
$ npm install
$ npm start