1.1.0 • Published 5 months ago
@johngerome/strapi-provider-upload-spaces v1.1.0
@johngerome/strapi-provider-upload-spaces
A Strapi provider for uploading files to DigitalOcean Spaces. Compatible with Strapi v4 and v5.
Installation
npm
npm install @johngerome/strapi-provider-upload-spacesyarn
yarn add @johngerome/strapi-provider-upload-spacespnpm
pnpm add @johngerome/strapi-provider-upload-spacesConfiguration
Edit your Strapi configuration in ./config/plugins.js:
module.exports = ({ env }) => ({
upload: {
config: {
provider: '@johngerome/strapi-provider-upload-spaces',
providerOptions: {
credentials: {
accessKeyId: env('DO_SPACE_ACCESS_KEY'),
secretAccessKey: env('DO_SPACE_SECRET_KEY'),
},
endpoint: env('DO_SPACE_ENDPOINT'), // e.g., 'nyc3.digitaloceanspaces.com'
region: env('DO_SPACE_REGION', 'us-east-1'),
bucket: env('DO_SPACE_BUCKET'),
directory: env('DO_SPACE_DIRECTORY', ''), // Optional, defaults to root
cdn: env('DO_SPACE_CDN'), // Optional, CDN URL if configured
ACL: env('DO_SPACE_ACL', 'public-read'), // Optional, defaults to 'public-read'
},
actionOptions: {
upload: {},
uploadStream: {},
delete: {},
},
},
},
});Security Middleware Configuration
Due to the default settings in the Strapi Security Middleware you will need to modify the contentSecurityPolicy settings to properly see thumbnail previews in the Media Library.
Edit your Strapi configuration in ./config/middlewares.js:
module.exports = [
// ...
{
name: 'strapi::security',
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
'connect-src': ["'self'", 'https:'],
'img-src': [
"'self'",
'data:',
'blob:',
'market-assets.strapi.io',
'yourBucketName.yourRegion.cdn.digitaloceanspaces.com', // with CDN
'yourBucketName.yourRegion.digitaloceanspaces.com',
],
'media-src': [
"'self'",
'data:',
'blob:',
'market-assets.strapi.io',
'yourBucketName.yourRegion.cdn.digitaloceanspaces.com', // with CDN
'yourBucketName.yourRegion.digitaloceanspaces.com',
],
upgradeInsecureRequests: null,
},
},
},
},
// ...
];Environment Variables
Add these variables to your .env file:
DO_SPACE_ACCESS_KEY=your_access_key
DO_SPACE_SECRET_KEY=your_secret_key
DO_SPACE_ENDPOINT=your_space_endpoint
DO_SPACE_REGION=your_space_region
DO_SPACE_BUCKET=your_space_name
DO_SPACE_DIRECTORY=optional_directory_path
DO_SPACE_CDN=optional_cdn_url
DO_SPACE_ACL=optional_acl_settingLicense
MIT
1.1.0
5 months ago
1.0.0
5 months ago
1.0.1-beta.4
5 months ago
1.0.1-beta.3
5 months ago
1.0.1-beta.2
5 months ago
1.0.1-beta.1
5 months ago