JarvisPrestidge/payload-cloud-storage-vercel-adapter

Repository files navigation

VersionIssuesPullsCodecovMIT License


header-light

A stop-gap solution for using Vercel Blob Storage with Payload CMS v3

Report Bug · Request Feature

Made with TypeScript

Important

Only for use with Payload CMS v3 (currently in alpha).

This package will be deprecated once the official Vercel Blob Storage adapter is released.


Table of Contents
  1. Installation
  2. Usage
  3. API
  4. Contributing
  5. License
  6. Contact
$ npm install payload-cloud-storage-vercel-adapter
$ yarn add payload-cloud-storage-vercel-adapter
$ pnpm add payload-cloud-storage-vercel-adapter

(back to top)

Note

Requirements:

  • Payload v3

Add the plugin within your Payload config as follows, passing in your Vercel Blob Storage token and storeId, and optionally any upload options.

import path from "path";
import { cloudStorage } from "@payloadcms/plugin-cloud-storage";
import { vercelBlobAdapter } from "payload-cloud-storage-vercel-adapter";
import { buildConfig } from "payload/config";

export default buildConfig({
    plugins: [
        cloudStorage({
            collections: {
                [Media.slug]: {
                    adapter: vercelBlobAdapter({
                        token: process.env.BLOB_READ_WRITE_TOKEN || "",
                        storeId: process.env.BLOB_STORE_ID || ""
                    }),
                    disableLocalStorage: true,
                    disablePayloadAccessControl: true
                }
            }
        })
    ]
    // The rest of your config goes here
});

This plugin allows for the following configuration options to be passed to the vercel package:

NameTypeRequiredDescription
tokenstringYesYour Vercel API token.
storeIdstringYesThe identifier of your Vercel storage.
uploadOptionsobjectNoAn object specifying options for uploads.
uploadOptions.accessstringNoDetermines the access level for uploaded items. Default: public.
uploadOptions.addRandomSuffixbooleanNoIndicates whether to add a random suffix to uploaded filenames. Default: false.
uploadOptions.cacheControlMaxAgenumberNoSpecifies the maximum age for cache control headers (in seconds). Default: 31536000 (1 year).

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. Don't forget to give the project a star! Thanks again!

  • Changeset for changes to documentation, changelog generation, and release management.
  1. Fork the project and clone your fork:
gh repo fork --clone
  1. Create your feature branch:
git checkout -b feature/AmazingFeature
  1. Commit your changes:
git commit -m 'Add some AmazingFeature'
  1. Use the changeset cli to create a detailed description of your changes.
yarn changeset

This will be used to generate a changelog when we publish an update. Learn more about Changeset.

  1. Push branch and open a Pull Request
gh pr create

(back to top)

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Jarvis Prestidge - [email protected]

Project Link: https://.com/jarvisprestidge/payload-cloud-storage-vercel-adapter

(back to top)

About

A stop-gap solution for using Vercel Blob Storage with Payload CMS v3

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5