SOLVED:
Digital Ocean is using AWS S3 to store media, so there is no need to use the strapi-provider-upload-do plugin. Instead, install the official @strapi/provider-upload-aws-s3 plugin and configure your plugins.js file like this.
This also enables the uploadStream option with is needed if you want to change e.g. the default Strapi Logo.
upload: {
config: {
provider: 'aws-s3',
providerOptions: {
accessKeyId: env('DO_SPACE_ACCESS_KEY'),
secretAccessKey: env('DO_SPACE_SECRET_KEY'),
endpoint: env('DO_SPACE_ENDPOINT'),
params: {
Bucket: env('DO_SPACE_BUCKET'),
},
},
actionOptions: {
upload: {},
uploadStream: {},
delete: {},
},
},
},
Then update your middleware.js, too
module.exports = [
'strapi::errors',
{
name: 'strapi::security',
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
'connect-src': ["'self'", 'https:'],
'img-src': [
"'self'",
'data:',
'blob:',
'dl.airtable.com',
'*.digitaloceanspaces.com',
],
'media-src': [
"'self'",
'data:',
'blob:',
'dl.airtable.com',
'*.digitaloceanspaces.com',
],
upgradeInsecureRequests: null,
},
},
},
},
'strapi::cors',
'strapi::poweredBy',
'strapi::logger',
'strapi::query',
'strapi::body',
'strapi::session',
'strapi::favicon',
'strapi::public',
];
And finally, to enable video preview you need to configure CORS at your DigitalOcean account at your space. Simply click on “add” and enter “*” for Origin.