strapi-provider-upload-aws-s3-plus-cdn-public-access

1.0.8 • Public • Published

strapi-provider-upload-aws-s3-plus-cdn-public-access

Background

Forked from Stephen Trainor' strapi-provider-upload-aws-s3-plus-cdn NPM package. See original Github Repo here. This package additionally accomdates projects where the Amazon Cloudfront S3 bucket access is set to "Don't use OAI (bucket must allow public access)". While this isn't best security practice, sometimes this configuration is necessary and this package accomdates this setup.

Configuration

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.

If using a CDN to deliver media files to end users, you can include a cdnUrl property, as shown below.

Example

The allowPublicAccess variable needs to be set to true if your Cloudfront S3 bucket access is set to "Don't use OAI (bucket must allow public access)". Otherwise, make sure the allowPublicAccess variable is set to false.

./config/plugins.js

module.exports = ({ env }) => ({
  // ...
  upload: {
    provider: 'aws-s3-plus-cdn-public-access',
    providerOptions: {
      accessKeyId: env('AWS_ACCESS_KEY_ID'),
      secretAccessKey: env('AWS_ACCESS_SECRET'),
      region: env('AWS_REGION'),
      params: {
        Bucket: env('AWS_BUCKET'),
      },
      cdnUrl: env('CDN_URL'), // Optional CDN URL - include protofol and trailing forward slash, e.g. 'https://assets.example.com/'
      allowPublicAccess: env('AWS_CDN_ALLOW_PUBLIC_ACCESS'),
    },
  },
  // ...
});

Note

Strapi will use the configured S3 bucket for upload and delete operations, but writes the CDN url (if configured) into the database record.

In the event that you need to change the storage backend in the future, to avoid the need to re-upload assets or to write custom queries to update Strapi database records, it is probably best to configure your CDN to use a URL that you control (e.g. use assets.mydomain.com rather than d12345687abc.cloudfront.net). If you need to change the storage backend later, you can simply update your DNS record.

Resources

Package Sidebar

Install

npm i strapi-provider-upload-aws-s3-plus-cdn-public-access

Weekly Downloads

4

Version

1.0.8

License

MIT

Unpacked Size

8.77 kB

Total Files

5

Last publish

Collaborators

  • slee-vpe