Image 1 of 1

Digital Ocean Spaces

Product information

By Vendure Open Source

Store images and other assets with Digital Ocean Spaces object storage.

npm install @vendure/asset-server-plugin
Support languages
en
Integration type
Core
Category
Storage
Compatible with
^3.0.0
Latest version
3.0.0
Last published
Jul 17, 2024
Downloads in past month
14,775

Digital Ocean Spaces is an S3-compatible object storage solution.

Prerequisite

The AssetServerPlugin is part of a standard Vendure installation, but if it is not already installed, you must install it:

npm install @vendure/asset-server-plugin

Install AWS SDKs

Before using this strategy, make sure you have the @aws-sdk/client-s3 and @aws-sdk/lib-storage packages installed:

npm install @aws-sdk/client-s3 @aws-sdk/lib-storage

Create a new Spaces bucket

In the Digital Ocean dashboard, navigate to “Spaces Object Storage” from the left nav menu and create a new bucket named “vendure-assets”.

Next, navigate to the “API” section and generate a new API key for that bucket. Be sure to note down:

  • The access key
  • The secret key (important!)
  • The bucket url (available from the spaces bucket page)

These can then be used to configure the environment variables SPACES_ACCESS_KEY, SPACES_SECRET_KEY and SPACES_ENDPOINT.

Configure the AssetServerPlugin for Spaces

// vendure-config.ts
import { AssetServerPlugin, configureS3AssetStorage } from '@vendure/asset-server-plugin';
import { DefaultAssetNamingStrategy } from '@vendure/core';

// ...

plugins: [
  AssetServerPlugin.init({
    route: 'assets',
    assetUploadDir: path.join(__dirname, 'assets'),
    namingStrategy: new DefaultAssetNamingStrategy(),
    storageStrategyFactory: configureS3AssetStorage({
      bucket: 'vendure-assets',
      credentials: {
        accessKeyId: process.env.SPACES_ACCESS_KEY,
        secretAccessKey: process.env.SPACES_SECRET_KEY,
      },
      nativeS3Configuration: {
        endpoint: process.env.SPACES_ENDPOINT?? 'http://localhost:9000',
        forcePathStyle: true,
        signatureVersion: 'v4',
        // The `region` is required by the AWS SDK,
        // so we just use a dummy value here.
        region: 'eu-west-1',
      },
    }),
}),

Complete documentation

See the S3AssetStorageStrategy docs for full documentation.

Vendure
Get started

Create your first commerce experience with Vendure in less than 2 minutes

Vendure is a registered trademark. Our trademark policy ensures that our brand and products are protected. Feel free to reach out if you have any questions about our trademarks.

Newsletter

Get the latest product news and announcements delivered directly to your inbox.

© Copyright 2022 - 2024, Vendure GmbH. All rights reserved.