GitHub | Medusa | MIT License
Author: Evan Hart
This plugin allows you to use UploadThing as a file provider in your Medusa application. Under the hood, it uses UploadThing's UTApi SDK to upload files and retrieve presigned URLs.
Private ACL requires a paid UploadThing account, and the feature must be enabled in your UploadThing app settings.
This plugin is compatible with versions >= 2.4.0 of @medusajs/medusa
.
This plugin is meant to be resolved within the @medusajs/medusa/file
module in the modules
array of your medusa-config.ts
file. It is not meant to be resolved in the plugins
array. As of version 2.4.0, Medusa does not support configuring providers within plugins.
To install the plugin, run the following command in your Medusa project directory:
npm install medusa-uploadthing-file-plugin
Or if you're using Yarn:
yarn add medusa-uploadthing-file-plugin
To configure the plugin, first add your UploadThing API key to your .env
file:
UPLOADTHING_TOKEN=your-uploadthing-api-key
Then add the following to your medusa-config.ts
file:
import { defineConfig } from "@medusajs/medusa/config";
export default defineConfig({
modules: [
{
resolve: "@medusajs/medusa/file",
options: {
providers: [
{
resolve: "medusa-uploadthing-file-plugin",
options: {
token: process.env.UPLOADTHING_TOKEN,
},
},
],
},
},
],
});
There are a few additional options you can configure in the provider's options:
...
options: {
token: string
filePrefix?: string;
logLevel?: "Error" | "Warning" | "Info" | "Debug" | "Trace";
apiUrl?: string;
ingestUrl?: string;
}
logLevel
sets UploadThing's log level. It defaults to "Info".
apiUrl
and ingestUrl
are optional and can be used to override the default UploadThing API and ingest URLs. This can be useful for self-hosting or testing purposes.
filePrefix
is an optional string that can be used to add a prefix to the uploaded file's name.
And that's it! You're ready to start using the UploadThing file provider in your Medusa application.