feat: working @payloadcms/plugin-cloud-storage
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
MONGODB_URI=mongodb://localhost/payload-plugin-cloud-storage
|
||||
PAYLOAD_PUBLIC_SERVER_URL=http://localhost:3000
|
||||
PAYLOAD_SECRET=45ligj345ligj4wl5igj4lw5igj45ligj45wlijl
|
||||
PAYLOAD_CONFIG_PATH=src/payload.config.ts
|
||||
PAYLOAD_CONFIG_PATH=config.ts
|
||||
|
||||
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://localhost:10000/devstoreaccount1;QueueEndpoint=http://localhost:10001/devstoreaccount1;
|
||||
AZURE_STORAGE_CONTAINER_NAME=az-media
|
||||
@@ -15,6 +15,7 @@ S3_ACCESS_KEY_ID=payloadAccessKey
|
||||
S3_SECRET_ACCESS_KEY=alwiejglaiwhewlihgawe
|
||||
S3_BUCKET=payload-bucket
|
||||
S3_FORCE_PATH_STYLE=true
|
||||
S3_REGION=us-east-1
|
||||
|
||||
GCS_ENDPOINT=http://localhost:4443
|
||||
GCS_PROJECT_ID=test
|
||||
@@ -28,3 +29,4 @@ R2_BUCKET=payload-bucket
|
||||
R2_FORCE_PATH_STYLE=
|
||||
|
||||
PAYLOAD_DROP_DATABASE=true
|
||||
PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER=s3
|
||||
|
||||
@@ -3,7 +3,7 @@ import type { CollectionConfig } from '../../../packages/payload/src/collections
|
||||
export const Media: CollectionConfig = {
|
||||
slug: 'media',
|
||||
upload: {
|
||||
disableLocalStorage: false, // don't save me
|
||||
disableLocalStorage: true, // don't save me
|
||||
resizeOptions: {
|
||||
position: 'center',
|
||||
width: 200,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import * as AWS from '@aws-sdk/client-s3'
|
||||
import dotenv from 'dotenv'
|
||||
import path from 'path'
|
||||
|
||||
@@ -16,9 +17,13 @@ let adapter: Adapter
|
||||
let uploadOptions
|
||||
|
||||
dotenv.config({
|
||||
path: path.resolve(__dirname, '.env.emulated'),
|
||||
path: path.resolve(process.cwd(), './test/plugin-cloud-storage/.env.emulated'),
|
||||
})
|
||||
|
||||
console.log(
|
||||
`Using plugin-cloud-storage adapter: ${process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER}`,
|
||||
)
|
||||
|
||||
if (process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER === 'azure') {
|
||||
adapter = azureBlobStorageAdapter({
|
||||
connectionString: process.env.AZURE_STORAGE_CONNECTION_STRING,
|
||||
@@ -79,37 +84,9 @@ if (process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER === 'r2') {
|
||||
})
|
||||
}
|
||||
|
||||
console.log(
|
||||
`Using plugin-cloud-storage adapter: ${process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER}`,
|
||||
)
|
||||
|
||||
export default buildConfigWithDefaults({
|
||||
collections: [Media, Users],
|
||||
upload: uploadOptions,
|
||||
admin: {
|
||||
webpack: (config) => ({
|
||||
...config,
|
||||
resolve: {
|
||||
...config.resolve,
|
||||
alias: {
|
||||
...config?.resolve?.alias,
|
||||
[path.resolve(__dirname, '../../packages/plugin-cloud-storage/src/index')]: path.resolve(
|
||||
__dirname,
|
||||
'../../packages/plugin-cloud-storage/src/admin/mock.js',
|
||||
),
|
||||
[path.resolve(__dirname, '../../packages/plugin-cloud-storage/src/adapters/s3/index')]:
|
||||
path.resolve(__dirname, '../../packages/plugin-cloud-storage/src/adapters/s3/mock.js'),
|
||||
[path.resolve(__dirname, '../../packages/plugin-cloud-storage/src/adapters/gcs/index')]:
|
||||
path.resolve(__dirname, '../../packages/plugin-cloud-storage/src/adapters/gcs/mock.js'),
|
||||
[path.resolve(__dirname, '../../packages/plugin-cloud-storage/src/adapters/azure/index')]:
|
||||
path.resolve(
|
||||
__dirname,
|
||||
'../../packages/plugin-cloud-storage/src/adapters/azure/mock.js',
|
||||
),
|
||||
},
|
||||
},
|
||||
}),
|
||||
},
|
||||
plugins: [
|
||||
cloudStorage({
|
||||
collections: {
|
||||
@@ -120,6 +97,24 @@ export default buildConfigWithDefaults({
|
||||
}),
|
||||
],
|
||||
onInit: async (payload) => {
|
||||
/*const client = new AWS.S3({
|
||||
endpoint: process.env.S3_ENDPOINT,
|
||||
forcePathStyle: process.env.S3_FORCE_PATH_STYLE === 'true',
|
||||
region: process.env.S3_REGION,
|
||||
credentials: {
|
||||
accessKeyId: process.env.S3_ACCESS_KEY_ID,
|
||||
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
|
||||
},
|
||||
})
|
||||
|
||||
const makeBucketRes = await client.send(
|
||||
new AWS.CreateBucketCommand({ Bucket: 'payload-bucket' }),
|
||||
)
|
||||
|
||||
if (makeBucketRes.$metadata.httpStatusCode !== 200) {
|
||||
throw new Error(`Failed to create bucket. ${makeBucketRes.$metadata.httpStatusCode}`)
|
||||
}*/
|
||||
|
||||
await payload.create({
|
||||
collection: 'users',
|
||||
data: {
|
||||
|
||||
Reference in New Issue
Block a user