Skip to content

parse-community/parse-server-gcs-adapter

Repository files navigation

Parse Server GCS Adapter

Build Status Snyk Badge Coverage auto-release

Node Version npm latest version


The Parse Server Google Cloud Storage Adapter.


Installation

npm install --save @parse/gcs-files-adapter

Usage with Parse Server

Config File

{
  // Parse server options
  appId: 'my_app_id',
  masterKey: 'my_master_key',
  // other options
  filesAdapter: {
    module: '@parse/gcs-files-adapter',
    options: {
      projectId: 'projectId',
      keyFilename: '/path/to/keyfile',
      bucket: 'my_bucket',
      // optional:
      bucketPrefix: '', // default value
      directAccess: false // default value
    } 
  }
}

Environment Variables

Set your environment variables:

GCP_PROJECT_ID=projectId
GCP_KEYFILE_PATH=/path/to/keyfile
GCS_BUCKET=bucketName

And update your config / options

{
  // Parse server options
  appId: 'my_app_id',
  masterKey: 'my_master_key',
  // other options
  filesAdapter: '@parse/gcs-files-adapter'
}

Alternatively, you can use

GCLOUD_PROJECT and GOOGLE_APPLICATION_CREDENTIALS environment variables.

Instance Parameters

var GCSAdapter = require('@parse/gcs-files-adapter');

var gcsAdapter = new GCSAdapter(
  'project', 
  'keyFilePath', 
  'bucket' , {
    bucketPrefix: '',
    directAccess: false
  }
);

var api = new ParseServer({
  appId: 'my_app',
  masterKey: 'master_key',
  filesAdapter: gcsAdapter
})

or with an options hash

var GCSAdapter = require('@parse/gcs-files-adapter');

var gcsOptions = {
  projectId: 'projectId',
  keyFilename: '/path/to/keyfile',
  bucket: 'my_bucket',
  bucketPrefix: '',
  directAccess: false
}

var gcsAdapter = new GCSAdapter(gcsOptions);

var api = new ParseServer({
  appId: 'my_app',
  masterKey: 'master_key',
  filesAdapter: gcsAdapter
});

Options

  • directAccess: if set to true, uploaded files will be set as public and files will be served directly by Google Cloud Storage. Default is false and files are proxied by Parse Server.

Obtaining Credentials File

See the Google Cloud documentation for how to generate a key file with credentials.