Skip to content

πŸš€ Strapi multiple upload plugin on steroids

License

Notifications You must be signed in to change notification settings

f00b4r/strapi-provider-upload-matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Strapi Matrix Provider

Combine multiple upload plugins together.

πŸ•Ή f3l1x.io | πŸ’» f3l1x | 🐦 @xf3l1x


Usage

To install latest version use NPM.

npm install --save strapi-provider-upload-matrix

Overview

Strapi has great support for plugins and upload providers, but you can register only one upload provider. Let's say you want to deploy images to image service and other files to file service. This provider will help you.

Documentation

  1. Install provider.

  2. Install other upload providers.

  3. Edit configuration.

    We are going to setup 2 providers (ImageKit and S3).

    • Images will use imagekit according to extensions (png, jpg, jpeg, svg, webp, gif, tif, mp4, webm, mov, swf, pdf)
    • Other files will use aws-s3 according to fallback

    {strapi}/config/plugins.js

    module.exports = ({ env }) => ({
        upload: {
            provider: 'matrix',
            providerOptions: {
            resolvers: [
                // ImageKit
                // Images, videos
                {
                    id: 'images',
                    test: {
                        ext: ['png', 'jpg', 'jpeg', 'svg', 'webp', 'gif', 'tif', 'mp4', 'webm', 'mov', 'swf', 'pdf'],
                    },
                    use: {
                        provider: "imagekit",
                        providerOptions: {
                        publicKey: env("IMAGEKIT_PUBLIC_KEY"),
                        privateKey: env("IMAGEKIT_PRIVATE_KEY"),
                        urlEndpoint: env("IMAGEKIT_URL"),
                            params: {
                                folder: env("IMAGEKIT_FOLDER"),
                            }
                        }
                    }
                },
                // AWS S3
                // Fallback
                {
                    id: 'misc',
                    test: '*',
                    use: {
                        provider: 'aws-s3',
                        providerOptions: {
                        accessKeyId: env('AWS_ACCESS_KEY_ID'),
                        secretAccessKey: env('AWS_ACCESS_SECRET'),
                        region: env('AWS_REGION'),
                            params: {
                                Bucket: env('AWS_BUCKET'),
                            },
                        }
                    },
                },
            ]
            },
        }
    });
  4. Profit πŸš€

Development


Consider to support f3l1x. Also thank you for using this package.

Releases

No releases published

Sponsor this project

 

Packages

No packages published