**BREAKING:**
Improves type-safety of collection / global slugs by using `CollectionSlug` / `UploadCollectionSlug` and `GlobalSlug` types instead of `string` in these places:
Adds `UploadCollectionSlug` and `TypedUploadCollection` utility types
This also changes how we suggest to add an upload collection to a cloud-storage adapter:
Before:
```ts
azureStorage({
collections: {
[Media.slug]: true,
},
})
```
After:
```ts
azureStorage({
collections: {
media: true,
},
})
```
52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
# Google Cloud Storage for Payload
|
|
|
|
This package provides a simple way to use [Google Cloud Storage](https://cloud.google.com/storage) with Payload.
|
|
|
|
**NOTE:** This package removes the need to use `@payloadcms/plugin-cloud-storage` as was needed in Payload 2.x.
|
|
|
|
## Installation
|
|
|
|
```sh
|
|
pnpm add @payloadcms/storage-gcs
|
|
```
|
|
|
|
## Usage
|
|
|
|
- Configure the `collections` object to specify which collections should use the Google Cloud Storage adapter. The slug _must_ match one of your existing collection slugs.
|
|
- When enabled, this package will automatically set `disableLocalStorage` to `true` for each collection.
|
|
|
|
```ts
|
|
import { gcsStorage } from '@payloadcms/storage-gcs'
|
|
import { Media } from './collections/Media'
|
|
import { MediaWithPrefix } from './collections/MediaWithPrefix'
|
|
|
|
export default buildConfig({
|
|
collections: [Media, MediaWithPrefix],
|
|
plugins: [
|
|
gcsStorage({
|
|
collections: {
|
|
media: true,
|
|
'media-with-prefix': {
|
|
prefix,
|
|
},
|
|
},
|
|
bucket: process.env.GCS_BUCKET,
|
|
options: {
|
|
apiEndpoint: process.env.GCS_ENDPOINT,
|
|
projectId: process.env.GCS_PROJECT_ID,
|
|
},
|
|
}),
|
|
],
|
|
})
|
|
```
|
|
|
|
### Configuration Options
|
|
|
|
| Option | Description | Default |
|
|
| ------------- | --------------------------------------------------------------------------------------------------- | --------- |
|
|
| `enabled` | Whether or not to enable the plugin | `true` |
|
|
| `collections` | Collections to apply the storage to | |
|
|
| `bucket` | The name of the bucket to use | |
|
|
| `options` | Google Cloud Storage client configuration. See [Docs](https://github.com/googleapis/nodejs-storage) | |
|
|
| `acl` | Access control list for files that are uploaded | `Private` |
|