This version of provider is identical with the offical one here, the only difference being that the ACL: 'public-read' config is removed. This is useful if you want to keep the bucket private.
Strapi is fetching the images by doing a client side request. You need to allow these request, otherwise the images won't show up in Strapi.
This version added CDN URL for public acces. You can use it by adding cnd option in plugins.js
Your configuration is passed down to the provider. (e.g: new AWS.S3(config)
). You can see the complete list of options here
See the using a provider documentation for information on installing and using a provider. And see the environment variables for setting and using environment variables in your configs.
Example
./config/plugins.js
module.exports = ({ env }) => ({
// ...
upload: {
provider: 'aws-s3-private',
providerOptions: {
accessKeyId: env('AWS_ACCESS_KEY_ID'),
secretAccessKey: env('AWS_ACCESS_SECRET'),
region: env('AWS_REGION'),
cdn: env('AWS_CDN'),
params: {
Bucket: env('AWS_BUCKET'),
},
},
},
// ...
});
This is also working with IAM roles. You just need to omit the accessKeyId and secretAccessKey and AWS SDK will automatically select the IAM credentials.
module.exports = ({ env }) => ({
// ...
upload: {
provider: 'aws-s3-private',
providerOptions: {
region: env('AWS_REGION'),
params: {
Bucket: env('AWS_BUCKET'),
},
},
},
// ...
});