Built by

Agilo

Category

Other

Version

1.0.0

Last updated

Mar 22, 2024, 12:15:36 PMa month ago

medusa-file-r2

Cloudflare R2 storage plugin for Medusa. This plugin also supports CSV exports and imports. R2 is S3-compatible object storage service by Cloudflare and has a 10GB/month forever-free tier.
This plugin is written in Typescript and uses ESBuild to create the bundle and files needed to be included in the
Copy to clipboard
medusa.config.js
file.

Getting Started

  1. Create a Cloudflare account: If you don't have one, you can create one here.
  2. Create a R2 bucket: Follow this guide to create a R2 bucket.
  3. Make the bucket public: Follow this guide to make the bucket public. While managed public access for your buckets through r2.dev cloudflare subdomain is relatively easy, it's preferred to use a custom domain as the managed r2.dev subdomain is rate-limited, custom domain also makes use of Cloudflare Cache to accelerate access to your R2 bucket.
  4. Obtain required credentials: You will need the following credentials to configure the plugin:
    • Copy to clipboard
      account_id
      : Login to your Cloudflare account and go to the
      Copy to clipboard
      R2
      section. The
      Copy to clipboard
      account_id
      is the
      Copy to clipboard
      Account ID
      in the top right corner.
    • Copy to clipboard
      access_key
      and
      Copy to clipboard
      secret_key
      • Follow this guide to generate Access Key ID and Secret Access Key for your R2 bucket.
    • Copy to clipboard
      bucket
      : The name of the R2 bucket you created.
    • Copy to clipboard
      public_url
      : The public URL of the R2 bucket you created.
  5. Install
    Copy to clipboard
    medusa-file-r2
    plugin: Run the following command in your terminal:
    yarn add medusa-file-r2
  6. Add the plugin to medusa.config.js: Add the following code to your medusa.config.js file:
    const plugins = [
    // other plugin configurations
    {
    resolve: "medusa-file-r2",
    options: {
    bucket: "YOUR_R2_BUCKET_NAME",
    endpoint: "https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com",
    access_key: "YOUR_ACCESS_KEY",
    secret_key: "YOUR_SECRET_KEY",
    public_url: "YOUR_R2_BUCKET_PUBLIC_URL",
    // Optional options
    // cache_control: "max-age=31536000",
    // presigned_url_expires: 60 * 60, // 1 hour
    },
    },
    ];

Build your own plugins

Develop your own plugins with our API to speed up your processes.

Make your plugin available via npm for it to be shared in our Plugin Library with the broader Medusa community.