Currently, usage of Payload on Vercel has a limitation - uploads are limited by 4.5MB file size. This PR allows you to pass `clientUploads: true` to all existing storage adapters * Storage S3 * Vercel Blob * Google Cloud Storage * Uploadthing * Azure Blob And then, Payload will do uploads on the client instead. With the S3 Adapter it uses signed URLs and with Vercel Blob it does this - https://vercel.com/guides/how-to-bypass-vercel-body-size-limit-serverless-functions#step-2:-create-a-client-upload-route. Note that it doesn't mean that anyone can now upload files to your storage, it still does auth checks and you can customize that with `clientUploads.access` https://github.com/user-attachments/assets/5083c76c-8f5a-43dc-a88c-9ddc4527d91c Implements https://github.com/payloadcms/payload/discussions/7569 feature request.
34 lines
922 B
Markdown
34 lines
922 B
Markdown
# Uploadthing Storage for Payload (beta)
|
|
|
|
This package provides a way to use [uploadthing](https://uploadthing.com) with Payload.
|
|
|
|
## Installation
|
|
|
|
```sh
|
|
pnpm add @payloadcms/storage-uploadthing
|
|
```
|
|
|
|
## Usage
|
|
|
|
- Configure the `collections` object to specify which collections should use uploadthing. The slug _must_ match one of your existing collection slugs and be an `upload` type.
|
|
- Get an API key from Uploadthing and set it as `apiKey` in the `options` object.
|
|
- `acl` is optional and defaults to `public-read`.
|
|
- When deploying to Vercel, server uploads are limited with 4.5MB. Set `clientUploads` to `true` to do uploads directly on the client.
|
|
|
|
```ts
|
|
export default buildConfig({
|
|
collections: [Media],
|
|
plugins: [
|
|
uploadthingStorage({
|
|
collections: {
|
|
media: true,
|
|
},
|
|
options: {
|
|
token: process.env.UPLOADTHING_TOKEN,
|
|
acl: 'public-read',
|
|
},
|
|
}),
|
|
],
|
|
})
|
|
```
|