Google Storage is not a constructor error

The API documentation for Cloud Storage suggests that you should use require to load the module:

const Storage = require('@google-cloud/storage');

This applied to versions of Cloud Storage prior to version 2.x.

In 2.x, there was a breaking API change. You need to do this now:

const { Storage } = require('@google-cloud/storage');

If you would like TypeScript bindings, consider using Cloud Storage via the Firebase Admin SDK. The Admin SDK simply wraps the Cloud Storage module, and also exports type bindings to go along with it. It's easy to use:

import * as admin from 'firebase-admin'
admin.initializeApp()
admin.storage().bucket(...)

admin.storage() gives you a reference to the Storage object that you're trying to work with.


On node 14, using commonJS with babel (although I don't think Babel was interfering here), this is how I eventually got it working on an older project bumping GCS from 1.x to 5.x:

const Storage = require('@google-cloud/storage');
const gcs = new Storage({project_id});

didn't see this captured anywhere on the web