@lucidcms/plugin-s3
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

Lucid - S3 Plugin

The official S3 plugin for Lucid

This plugin registers the required media strategy functions to stream, upload, update and delete media from any S3 compatible storage solution.

Installation

npm install @lucidcms/plugin-s3

lucid.config.ts/js

import LucidS3 from "@lucidcms/plugin-s3";

export default lucid.config({
  // ...other config
  plugins: [
    LucidS3({
      clientConfig: {
        endpoint: `https://${process.env.HEADLESS_CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com`,
        region: "auto",
        credentials: {
          accessKeyId: process.env.HEADLESS_S3_ACCESS_KEY as string,
          secretAccessKey: process.env.HEADLESS_S3_SECRET_KEY as string,
        },
      },
      bucket: "headless-cms",
    }),
  ],
});

Bucket Configuration

As Lucid uses presigned URLs to upload media from the client, you will need to configure your S3 bucket's CORS policy. This will need to allow PUT requests, along with the Content-Type and Origin headers.

Example Cloudflare R2 CORS Policy

[
  {
    "AllowedOrigins": [
      "http://localhost:3000"
    ],
    "AllowedMethods": [
      "GET",
      "PUT"
    ],
    "AllowedHeaders": [
      "Origin",
      "Content-Type"
    ]
  }
]

Package Sidebar

Install

npm i @lucidcms/plugin-s3

Weekly Downloads

20

Version

1.1.2

License

MIT

Unpacked Size

28.9 kB

Total Files

7

Last publish

Collaborators

  • williamyallop