Gofer is a file abstraction library written in Node. It aims to have one consistent API for multiple different storage solutions, called Adapters. This is the Adapter for Google Cloud Storage.
Notice: Due to an upstream issue with grpc (used by google-cloude-node), this may not work on Node 7... See googleapis/google-cloud-node#1753
First, install Gofer and this Adapter:
npm install goferfs goferfs-adapter-gcs
To create an adapter, you need to provide your Project ID, a bucket name, and your authentication from https://console.cloud.google.com/storage.
You must create the bucket ahead of time, this adapter assumes one already exists.
Google Cloud supports 3 ways to authenticate: a path to a keyfile.json, the contents of a keyfile.json or an API key:
import Gofer from 'goferfs';
import GcsAdapter from 'goferfs-adapter-gcs';
const gcsAdapter = new GcsAdapter({
projectId: 'my-project',
bucket: 'my-bucket',
// provide ONE of the following:
// the path to a keyfile.json...
keyFilename: 'path/to/keyfile.json',
// ...or the contents of a keyfile.json
credentials: require('path/to/keyfile.json'),
});
const gofer = new Gofer(gcsAdapter);For documentation on usage, please visit the main Gofer project, while noting the caveats below:
Google Cloud Storage (GCS) does not have the concept of "directories." createDirectory will do nothing and always returns Promise<null>.
However, you can delete by prefix, so deleteDir('some/directory') will delete all the files prefixed with that, i.e. some/directory/file1.txt and some/directory/file2.txt, etc.
The Public visibility mode will make files publicly viewable via the web (i.e. via the Share checkbox in the console), whereas Private files are not.
To contribute...