novanda1 / payload-imagekit

Send Payload CMS uploads and deletes to ImageKit
https://www.npmjs.com/package/payloadcms-plugin-imagekit
20 stars 3 forks source link
imagekit payload payload-plugin payloadcms

Payload CMS ImageKit Plugin

This plugin sync your image to ImageKit.

Installation

npm install payloadcms-plugin-imagekit

Usage

Install this plugin within your Payload as follows:

import { buildConfig } from "payload/config";
import imagekitPlugin from "payloadcms-plugin-imagekit";

export default buildConfig({
  // ...
  plugins: [
    imagekitPlugin({
      config: {
        publicKey: "your_public_api_key",
        privateKey: "your_private_api_key",
        endpoint: "https://ik.imagekit.io/your_imagekit_id/",
      },
      collections: {
        media: {
          uploadOption: {
            folder: "some folder",
            extensions: [
              {
                name: "aws-auto-tagging",
                minConfidence: 80, // only tags with a confidence value higher than 80% will be attached
                maxTags: 10, // a maximum of 10 tags from aws will be attached
              },
              {
                name: "google-auto-tagging",
                minConfidence: 70, // only tags with a confidence value higher than 70% will be attached
                maxTags: 10, // a maximum of 10 tags from google will be attached
              },
            ],
          },
          savedProperties: ["url", "AITags"],
        },
      },
    }),
  ],
});

Plugin options

This plugin have 1 parameter that contain an object.

Option Description
config (required) ImageKit Config ImageKitOptions
collections (optional) Collections options

config

Type object

collections

Type object

Payload Cloud

If your project is hosted using Payload Cloud - their default file storage solution will conflict with this plugin. You will need to disable file storage via the Payload Cloud plugin like so:

// ...
plugins: [
  payloadCloud({
    storage: false, // Disable file storage
  }),
  imagekitPlugin({
    // Your imagekit config here
  }),
],
// ...

Screenshot

image