strapi-provider-upload-do-stream
v4.0.6
Published
Strapi Provider for Digital Ocean Spaces
Downloads
36
Maintainers
Readme
Strapi Upload Provider for Digital Ocean Spaces
- This provider is a fork of shorwood/strapi-provider-upload-do for Digital Ocean spaces.
This provider will upload to the space using the AWS S3 API
+ Compatible with version 4 of STRAPI (upgraded)
Parameters
- key : Space access key
- secret : Space access secret
- endpoint : Base URL of the space (e.g.
fra.digitaloceanspaces.com
) - space : Name of the space in the Digital Ocean panel.
- directory : Name of the sub-directory you want to store your files in. (Optionnal - e.g.
/example
) - cdn : CDN Endpoint - URL of the cdn of the space (Optionnal - e.g.
cdn.example.com
)
How to use
- Install this package using npm or yarn
npm i strapi-provider-upload-dos
yarn add strapi-provider-upload-dos
- Create config in
./config/plugins
with content (create if not exist (plugins.js))
module.exports = {
upload: {
config: {
provider: "strapi-provider-upload-dos",
providerOptions: {
key: process.env.DO_SPACE_ACCESS_KEY,
secret: process.env.DO_SPACE_SECRET_KEY,
endpoint: process.env.DO_SPACE_ENDPOINT,
space: process.env.DO_SPACE_BUCKET,
directory: process.env.DO_SPACE_DIRECTORY,
cdn: process.env.DO_SPACE_CDN,
},
},
},
};
- Create
.env
and add to them
DO_SPACE_ACCESS_KEY
DO_SPACE_SECRET_KEY
DO_SPACE_ENDPOINT
DO_SPACE_BUCKET
DO_SPACE_DIRECTORY
DO_SPACE_CDN
with values obtained from tutorial:
https://www.digitalocean.com/community/tutorials/how-to-create-a-digitalocean-space-and-api-key
Parameter DO_SPACE_DIRECTORY
and DO_SPACE_CDN
is optional and you can ommit them both in .env
and settings
.
Modify the CSP roules and define the source
config/middlewares.js
module.exports = [
"strapi::errors",
{
name: "strapi::security",
config: {
contentSecurityPolicy: {
useDefaults: true,
directives: {
"connect-src": ["'self'", "https:"],
"img-src": [
"'self'",
"data:",
"blob:",
"*.digitaloceanspaces.com"
],
"media-src": ["'self'", "data:", "blob:"],
upgradeInsecureRequests: null,
},
},
},
},
"strapi::cors",
"strapi::poweredBy",
"strapi::logger",
"strapi::query",
"strapi::body",
"strapi::favicon",
"strapi::public",
];