Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jarvisprestidge/payload-cloud-storage-vercel-adapter
A stop-gap solution for using Vercel Blob Storage with Payload CMS v3
https://github.com/jarvisprestidge/payload-cloud-storage-vercel-adapter
payload payload-cms payloadcms vercel vercel-blob
Last synced: about 2 months ago
JSON representation
A stop-gap solution for using Vercel Blob Storage with Payload CMS v3
- Host: GitHub
- URL: https://github.com/jarvisprestidge/payload-cloud-storage-vercel-adapter
- Owner: JarvisPrestidge
- License: mit
- Created: 2024-03-26T15:54:23.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-11-22T18:55:27.000Z (about 2 months ago)
- Last Synced: 2024-11-22T19:38:54.601Z (about 2 months ago)
- Topics: payload, payload-cms, payloadcms, vercel, vercel-blob
- Language: TypeScript
- Homepage:
- Size: 159 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![Version][version-shield]][version-url]
[![Issues][issues-shield]][issues-url]
[![Pulls][pulls-shield]][pulls-url]
[![Codecov][codecov-shield]][codecov-url]
[![MIT License][license-shield]][license-url]
![header-light](https://github.com/JarvisPrestidge/payload-cloud-storage-vercel-adapter/assets/6669336/b06bd7cb-e9e0-405c-872d-92ecbf86ec63)
A stop-gap solution for using Vercel Blob Storage with Payload CMS v3
Report Bug
ยท
Request Feature
> [!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
## ๐พ Installation
```bash
$ npm install payload-cloud-storage-vercel-adapter
``````bash
$ yarn add payload-cloud-storage-vercel-adapter
``````bash
$ pnpm add payload-cloud-storage-vercel-adapter
```## ๐จ Usage
> [!NOTE]
> Requirements:
>
> - Payload v3Add the plugin within your Payload config as follows, passing in your Vercel Blob Storage token and storeId, and optionally any upload options.
```typescript
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
});
```## โ๏ธ Plugin Configuration
This plugin allows for the following configuration options to be passed to the vercel package:
| Name | Type | Required | Description |
| ---------------------------------- | ------- | -------- | ----------------------------------------------------------------------------------------------- |
| `token` | string | Yes | Your Vercel API token. |
| `storeId` | string | Yes | The identifier of your Vercel storage. |
| `uploadOptions` | object | No | An object specifying options for uploads. |
| `uploadOptions.access` | string | No | Determines the access level for uploaded items. Default: `public`. |
| `uploadOptions.addRandomSuffix` | boolean | No | Indicates whether to add a random suffix to uploaded filenames. Default: `false`. |
| `uploadOptions.cacheControlMaxAge` | number | No | Specifies the maximum age for cache control headers (in seconds). Default: `31536000` (1 year). |## โค๏ธ Contributing
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!### Tooling
- [Changeset](https://github.com/atlassian/changesets) for changes to documentation, changelog generation, and release management.
### Making a Pull Request
1. Fork the project and clone your fork:
```bash
gh repo fork --clone
```2. Create your feature branch:
```bash
git checkout -b feature/AmazingFeature
```3. Commit your changes:
```bash
git commit -m 'Add some AmazingFeature'
```4. Use the changeset cli to create a detailed description of your changes.
```bash
yarn changeset
```> This will be used to generate a changelog when we publish an update. [Learn more about Changeset](https://github.com/atlassian/changesets/tree/master/packages/cli).
5. Push branch and open a Pull Request
```bash
gh pr create
```## ๐ License
Distributed under the MIT License. See `LICENSE` for more information.
## ๐ซ Contact
Jarvis Prestidge - [email protected]
Project Link: [https://github.com/jarvisprestidge/payload-cloud-storage-vercel-adapter](https://github.com/jarvisprestidge/payload-cloud-storage-vercel-adapter)
[typescript-shield]: https://img.shields.io/badge/made%20with-typescript-%23007ACC?style=for-the-badge&link=https://www.typescriptlang.org "TypeScript (External Link)"
[issues-shield]: https://img.shields.io/github/issues/JarvisPrestidge/payload-cloud-storage-vercel-adapter.svg?style=for-the-badge
[issues-url]: https://github.com/JarvisPrestidge/payload-cloud-storage-vercel-adapter/issues
[pulls-shield]: https://img.shields.io/github/issues-pr/JarvisPrestidge/payload-cloud-storage-vercel-adapter.svg?style=for-the-badge
[pulls-url]: https://github.com/JarvisPrestidge/payload-cloud-storage-vercel-adapter/pulls
[license-shield]: https://img.shields.io/github/license/JarvisPrestidge/payload-cloud-storage-vercel-adapter.svg?style=for-the-badge
[license-url]: https://github.com/JarvisPrestidge/payload-cloud-storage-vercel-adapter/blob/master/LICENSE.txt
[codecov-shield]: https://img.shields.io/codecov/c/gh/JarvisPrestidge/payload-cloud-storage-vercel-adapter?style=for-the-badge
[codecov-url]: https://app.codecov.io/gh/JarvisPrestidge/payload-cloud-storage-vercel-adapter
[version-shield]: https://img.shields.io/github/package-json/v/jarvisprestidge/payload-cloud-storage-vercel-adapter?style=for-the-badge
[version-url]: https://www.npmjs.com/package/payload-cloud-storage-vercel-adapter
[check-icon]: https://github.com/bjss/eng-blocks-frontend-exemplar/assets/6669336/5c41ecfa-51c8-475f-964d-af733eb70d51