{{{ exports({ to: app.configPath('drive.ts') }) }}} import env from '#start/env'{{#if services.includes('fs')}} import app from '@adonisjs/core/services/app'{{/if}} import { defineConfig, services } from '@adonisjs/drive' const driveConfig = defineConfig({ default: env.get('DRIVE_DISK'), /** * The services object can be used to configure multiple file system * services each using the same or a different driver. */ services: { {{#if services.includes('fs')}} fs: services.fs({ location: app.makePath('storage'), serveFiles: true, routeBasePath: '/uploads', visibility: 'public', }),{{/if}}{{#if services.includes('s3')}} s3: services.s3({ credentials: { accessKeyId: env.get('AWS_ACCESS_KEY_ID'), secretAccessKey: env.get('AWS_SECRET_ACCESS_KEY'), }, region: env.get('AWS_REGION'), bucket: env.get('S3_BUCKET'), visibility: 'public', }),{{/if}}{{#if services.includes('r2')}} r2: services.s3({ credentials: { accessKeyId: env.get('R2_KEY'), secretAccessKey: env.get('R2_SECRET'), }, region: 'auto', bucket: env.get('R2_BUCKET'), endpoint: env.get('R2_ENDPOINT'), visibility: 'public', }),{{/if}}{{#if services.includes('spaces')}} spaces: services.s3({ credentials: { accessKeyId: env.get('SPACES_KEY'), secretAccessKey: env.get('SPACES_SECRET'), }, region: env.get('SPACES_REGION'), bucket: env.get('SPACES_BUCKET'), endpoint: env.get('SPACES_ENDPOINT'), visibility: 'public', }),{{/if}}{{#if services.includes('gcs')}} gcs: services.gcs({ credentials: env.get('GCS_KEY'), bucket: env.get('GCS_BUCKET'), visibility: 'public', }),{{/if}} }, }) export default driveConfig declare module '@adonisjs/drive/types' { export interface DriveDisks extends InferDriveDisks {} }