UNPKG

strapi-provider-upload-imagekit

Version:

ImageKit provider for Strapi CMS

108 lines (82 loc) 3.36 kB
## ImageKit provider for the Strapi Upload plugin > [!IMPORTANT] > `MAYOR` and `MINOR` versions of the provider are representing compatability with Strapi, while the `PATCH` version is used to denote changes in the provider itself. > [!TIP] > Consult the compatibility table if using previous versions of Strapi. | Strapi version | Compatible provider | Note | | -------------- | ------------------- | ---------------------------------------------------------------------------------------- | | v3 | v0.x.x | Semver versioning | | v4 | v4.x.x | Providers mayor/minor version equals Strapis mayor/minor version to convey compatibility | | v5 | v5.x.x | Providers mayor/minor version equals Strapis mayor/minor version to convey compatibility | ## Installation **1. Install via npm or yarn** ``` npm install strapi-provider-upload-imagekit --save ``` or ``` yarn add strapi-provider-upload-imagekit ``` **2. Add or modify the plugins configuration file** Global configuration file is located in `./config/plugins.js` Environment configuration files are located in `./config/env/{env}/plugins.js` For more information please check the [official documentation](https://docs.strapi.io/developer-docs/latest/plugins/upload.html#using-a-provider). **3. Define global variables** Example `.env`: ```dotenv IMAGEKIT_PUBLIC_KEY=ed6445336472aef39084720adcf903b9 IMAGEKIT_PRIVATE_KEY=afbca80df2ec032de664aefb3a8579b7 IMAGEKIT_URL_ENDPOINT=https://ik.imagekit.io/username IMAGEKIT_FOLDER=/production/images IMAGEKIT_BASE_URL=ik.imagekit.io ``` **4. Add plugin configuration** Example `./config/plugins.js`: ```js export default ({env}) => ({ upload: { config: { provider: "strapi-provider-upload-imagekit", // Community providers need to have the full package name providerOptions: { publicKey: env('IMAGEKIT_PUBLIC_KEY'), privateKey: env('IMAGEKIT_PRIVATE_KEY'), urlEndpoint: env('IMAGEKIT_URL_ENDPOINT'), // Optional params: { folder: env('IMAGEKIT_FOLDER'), } } } } }); ``` **5. Setting up `strapi::security` middlewares to prevent `contentSecurityPolicy` URL blocking** Modify `./config/middleware.js`: ```js export default ({env}) => ([ // ... { name: 'strapi::security', config: { contentSecurityPolicy: { useDefaults: true, directives: { 'connect-src': ["'self'", 'https:'], 'img-src': ["'self'", 'data:', 'blob:', env('IMAGEKIT_BASE_URL')], 'media-src': ["'self'", 'data:', 'blob:', env('IMAGEKIT_BASE_URL')], upgradeInsecureRequests: null, }, }, }, }, ]); ``` ## Resources - [MIT License](LICENSE.md) ## Links - [Strapi website](https://strapi.io/) - [Strapi community on Discord](https://discord.strapi.io/) - [Strapi news on Twitter](https://twitter.com/strapijs) ## Imagekit links - [Imagekit node library](https://www.npmjs.com/package/imagekit) - [Imagekit API Docs](https://docs.imagekit.io/api-reference/api-introduction)