Google Storage Assets
Store Vendure assets on Google Cloud Storage.
Plugin for storing Vendure assets on Google Cloud Storage with support for pre-generated image presets.
Getting started
- Create a bucket which is publicly available in Google Cloud.
- Add this to your
vendure-config.ts:
- Run a database migration to add the
presetscustom field to theAssetentity.
Image Presets
Presets allow you to pre-generate different versions of uploaded images. These versions are stored directly in your Google Cloud Storage bucket. This means you can get direct URLs to these pre-generated images without having to go through the Vendure asset server.
When an asset is uploaded, all configured presets are automatically generated. Each preset generates a new file in your bucket.
Fetching Preset URLs
You can fetch preset URLs through the Shop API using this query:
:warning: Whenever you change the presets, or set presets for the first time,you need to re-generate the presets for all assets. This can be done by running the generateGoogleStorageAssetPresets mutation.
Generating Presets for Existing Assets
To generate presets for all existing assets, you can use the Admin API. You will need to have Asset Update permission to run this mutation.
Running locally
Using this plugin on your local machine requires you to be logged in to Google Cloud, so that the plugin can upload assets to your bucket.
- Run
gcloud auth application-default login - Create a .env file with the following contents:
- Run
yarn startand go to https://localhost:3050/admin to test asset uploads
Google Cloud Storage Authentication
Internally this plugin uses new Storage(); to instantiate the Storage client, which uses ENV variables to authenticate:
// By default, the client will authenticate using the service account file
// specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable and use
// the project specified by the GCLOUD_PROJECT environment variable. See
// https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application
For more information about Google Cloud authentication, see: https://cloud.google.com/compute/docs/tutorials/nodejs-guide
Changelog
- Upgraded to Vendure 3.5.3
- Documentation update
- Updated official documentation URL
- Allow generating presets only for assets that don't have presets yet
- Added support for presets. The first time you set presets, or change preset settings, you will need to regenerate the presets for all existing assets with
generateGoogleStorageAssetPresets. - Breaking: Config is now passed into
GoogleStorageAssetsPlugin.init({}), instead of to theGoogleStorageStrategyconstructor - Breaking:
Asset.thumbnailis now deprecated, useAsset.presets.<presetName>instead.Asset.thumbnailstill resolves to old thumbnails, but will not work for new assets - Breaking: A database migration is needed, because a custom field is added to the
Assetentity for saving the presets.
- Upgrade to Vendure to 3.3.2
- Update Vendure to 3.1.1
- Use asset server for admin with Vendure V3 support
- Update compatibility range (#480)
- Updated Vendure to 2.2.6
- Updated vendure to 2.1.1